Posts Tagged MacPorts

Macにzsh-develを入れる。

忘れちゃったのでメモ。
MacPortsが入っていること前提。
入れ方わかんない人は古い記事まで。

Variantsはこんな感じ。

McLaren:~ yuxx$ port variants zsh-devel
zsh-devel has the variants:
doc: Install extra documentation
examples: Install configuration examples
mp_completion: Install port(1) completion file
pcre: Add regular expressions support in builtin functions through PCRE
universal: Build for multiple architectures

早速インストール。

McLaren:~ yuxx$ sudo port install zsh-devel  +mp_completion +pcre

で、終了時に

If you want MacPorts' zsh as login shell, you should run:
% sudo sh -c "echo '/opt/local/bin/zsh' >> /etc/shells"
% chsh -s /opt/local/bin/zsh
--->  Cleaning zsh-devel

なんて出なかったら

McLaren:~ yuxx$ sudo port uninstall zsh
--->  Deactivating zsh @4.2.7_0+dp_completion+mp_completion
--->  Cleaning zsh
--->  Uninstalling zsh @4.2.7_0+dp_completion+mp_completion
--->  Cleaning zsh

でアンインストール。

で、続き。
さっきの指示通りにする。

McLaren:~ yuxx$ sudo sh -c "echo '/opt/local/bin/zsh' >> /etc/shells"
Password:
McLaren:~ yuxx$ chsh -s /opt/local/bin/zsh
Changing shell for yuxx.
Password for yuxx:

こんな感じ。
うまく行かない場合は /opt/local/bin へのPATHをもう一度通し直すと良かったりする可能性もある。

zsh最強シェル入門

著者/訳者:中島 能和

出版社:翔泳社( 2008-12-04 )

定価:

Amazon価格:¥ 2,592

単行本(ソフトカバー) ( 272 ページ )

ISBN-10 : 479811815X

ISBN-13 : 9784798118154


Post to Twitter

, , ,

No Comments

psptoolchainをSnow LeopardなMacBook Airに入れようとして失敗中

世の中にはPSPをクラックして自作ソフトを使おうと言う人たちがいる。
で、今Cを勉強中だから、それに勢いを付けるために、その非公式開発環境であるところのpsptoolchainをMacで揃えようかと思った次第。
でもね、世の中そんなに甘くないんだよねぇ〜、と言うお話。

実はここ数月、Snow LeopardなMacBook Airにそのpsptoolchainをインストールしようと四苦八苦してたんだよね。
でも今のところダメ。
と言うわけで、自分がどこまで調べて、何をやって、どこまでダメなのかを備忘録として残すことに。

2010/02/11追記
よっふぃ〜さんがインストールに成功された模様なので、そちらを参照してください。
http://yoffy.dyndns.org/2010/02/pspsdk_on_mac_os_x_106.html
追記終了。。。

まずやったことは、いろいろなサイト(例えばこことか)に書いてある通り、一般的なツール類をMacPortsからインストールした。
必要なものは、
autoconf
automake
wget
Subversion
とか。

とある場所では
autoconf
automake
bison
flex
gcc
make
ncurses
paptch
subversion
texinfo
wget
なんだとか?
ただ、ここではdoxygenがあると便利とか?
まぁ、おおむねそんな感じの物が必要です、と。

と言うわけで、

McLaren% sudo port install autoconf automake wget subversion

とかやっちゃうわけです。
心配な人は

McLaren% sudo port install autoconf automake bison flex gcc make ncurses paptch subversion texinfo wget doxygen

とかね。

で、どっかにテケトーなディレクトリを作るわけです。
俺はとりあえずDownloadsに置いてみた。

McLaren% mkdir pspdev_temp
Mclaren% cd pspdev_temp

お次はシェルの設定ファイルにPATHを通す。
普通のMacでは.bashrcに以下を書き込む。

export PSPDEV=/usr/local/pspdev
export PATH=$PATH:$PSPDEV/bin

俺はzshなので.zshrc。
でもこの構文は同じだから同じ記述でOK。
で、PSPDEVの対象がインストール先になる。
実はこれ、どこでもいいらしく、/usr/localじゃなくてもMacPortsの/opt/localとかでもいいし、$HOMEでもぶっちゃけいいらしい。

書き換えが終ったらSubversionでダウンロード。

McLaren% svn checkout svn://svn.ps2dev.org/psp/trunk/psptoolchain

(checkoutをcoにしてもOK)
これで作業用ディレクトリにpsptoolchainが出来たはず。
そこに移動して、

McLaren% ./toolchain.sh

とするとコンパイルおよびインストールが進みますよ〜、と言うふれこみ。

するとどうでしょう。

configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+.
Try the --with-gmp and/or --with-mpfr options to specify their locations.
Copies of these libraries' source code can be found at their respective
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
See also http://gcc.gnu.org/install/prerequisites.html for additional info.
If you obtained GMP and/or MPFR from a vendor distribution package, make
sure that you have installed both the libraries and the header files.
They may be located in separate packages.
../scripts/002-gcc-4.3.2-stage1.sh: Failed.

GMPかMPFR(もしくはその両方)がおかしいですよ〜、だって。

あ、ちなみに、それ以前に見つからないよ〜系のエラーは恐らくpsptoolchain/dependsのチェック処理でgmpとmpfrのチェックディレクトリが違うから。
そのファイルを開いて下記のように書き換えること。
check-gmp.sh

#!/bin/sh
# check-gmp.sh by Dan Peori (danpeori@oopo.net)
## Check for the gmp library.
# ls /usr/local/gmp-4.3.1/include/gmp.h 1> /dev/null || { echo "ERROR: Install gmp before continuing."; exit 1; }
## Custm for Mac
ls /opt/local/include/gmp.h 1> /dev/null || { echo "ERROR: Install gmp before continuing."; exit 1; }

check-mpfr.sh

#!/bin/sh
# check-mpfr.sh by Dan Peori (danpeori@oopo.net)
## Check for the mpfr library.
#ls /usr/include/mpfr.h 1> /dev/null || { echo "ERROR: Install mpfr before continuing."; exit 1; }
## Custom for Mac
ls /opt/local/include/mpfr.h 1> /dev/null || { echo "ERROR: Install mpfr before continuing."; exit 1; }

こうすれば、MacPortsにインストールされたGMPとMPFRを見るようになる。

んで、いろいろ調べた結果、MacOS X 10.6 Snow LeopardのMPFRにはバグがあります、と。。
いろいろ調べたんだけどねぇ〜。
それこそ毎日調べた。
GMPとMPFRのソースを落としてきて、独自にビルドもした。

わかったことと言えば、GMPとMPFRは数値計算用ライブラリで、GMPが無いとMPFRがインストールできない。
要は拡張ライブラリみたいな物かね?MPFRは。
そしてなぜpsptoolchainに必要なのか?
それは、PSP用のコンパイラを作るため。
UNIXでのデファクトスタンダードであるGCCなんだけど、このGCCがGMPとMPFRを必要とするんだとか。
そもそもなんでGMPとMPFRがおかしくなっているかと言えば、Snow LeopardのOS内部が64ビットにかなり舵取りを決めたから。
とは言いつつも、ラップトップだと32ビットモードで起動しているとかなんだかややこしいんですけれども。。。それどうなのよ?アップルさん。
恐らくその辺りの問題でGMPとMPFRがおかしい。
数少ない情報をたぐり寄せると、恐らくはMPFRだけがおかしい。
おまけにソースからコンパイルしてテストすると、やっぱりエラーが出る(これは両方)。

で、それらをコンパイルできない理由がコンパイラがおかしいからとか読んだから、GCCをビルドすることに。
いや、このときはまだGCCのコンパイルにGMPとMPFRが必要だとはイマイチピンと来ていなかったんだけれども。。
結局出来なくて、MacPortsの各バージョンのGCCをインスコして、/usr/bin/gccのシンボリックリンクをそれらに修正。

更にMac用GCCのコンパイルトラブルの記事を読みあさっていて見つけた記事からすると、psptoolchainのGCCはSnow Leopardではコンパイルできなくて、4.3.2以降から出来る、と。
と言うことはpsptoolchainのGCCを最新版にすれば良いのかと思って、psptoolchainのGCCに関する場所を最新版(現時点で4.4.2)に書き換えて、更に手動でDL。
Diffに書いてある箇所を何となく見つけてきて書き換えてビルとを試みるも、そもそも内部構造が結構変わっていて断念。
問題を解決したとされる4.3.4にして書き換えを試みると、ソース的にはほぼOK。
で、ようやくコンパイルしてみると。。。
なんか、意味不明なコンパイルエラー。。。。
も〜、いや。

MacPortsのmpfrがバージョンアップされていたから、何度目かの正直を実践中。
で、やっぱダメ。。<今ここ
助けてくれそうな人は
http://www.lan.st/forumdisplay.php?f=43&daysprune=-1&order=desc&sort=lastpost
http://arnold.hyperphp.com/forums/
http://forums.qj.net/developers-dungeon/162579-psptoolchain-mac-os-x.html
辺りに居そう。
もうちょっと張り込みます。

そんだけ。

Post to Twitter

, , , , , , , ,

2 Comments

MacPorts

最近のMacを弄っていると驚くほどUNIXなことに気がつく。
MacPortsもそんな一つ。
http://www.macports.org/
これはFreeBSD由来のPorts CollectionのMac版で、そのOSで使えるUNIXプログラムのソースコードを取ってきて、設定、およびインストールをしてくれると言う優れもの。
今回はその使い方をメモついでに書いておくことに。
(よく手帳を読み返すんだよね、これ。。)

準備するもの。

  • OSX 10.4 以降が走るMac
  • OSX 10.4 以降のMacOS X
  • ネット環境
  • Xcodeの最新版

最低でもこれくらいは必要かと。
で、総本山に行って、最新版のMacPortsを落としてくる。
http://www.macports.org/install.php
ここの「Mac OS X Package (.pkg) Installer」と書いてある場所の該当OSをクリック。
macpotrs.org_download_page
で、dmgからインスコしてとりあえずインストール完了。

更に、シェルにパスを通さないとportとだけ書いても動かないので、下記の記述を.bashrcなどに追加する。
(ついでにマニュアルも記述しておく)

export PATH=/opt/local/bin:/op/loca/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH

あとはインストールしたいUNIXツールを見つけたら

% sudo port install ソフトウェア名

と言った感じ。

こっから先はコマンドリファレンス的なもの。
Read the rest of this entry »

Post to Twitter

, , , ,

No Comments