FreeBSD + MinGWのGCCにGCC 4.1.1を加える
FreeBSDのMinGWで使うコンパイラにGCC 4.1.1を加えるメモ。
GCC 4.1.1を使ってWindowsアプリをクロスコンパイル出来る様にする。
準備
あらかじめPortsでdevel/mingw32-gccをインストールしておく。
GCC 4.1.1のインストール場所を${HOME}/mingw/gcc41として、${HOME}/mingw/gcc41/mingw32ディレクトリを作り、その下に/usr/local/mingw32以下のincludeとlibをコピーする。
$ mkdir -p ~/mingw/gcc41 $ cd ~/mingw/gcc41 $ mkdir mingw32 ; cd mingw32 $ cp -R /usr/local/mingw32/include include $ cp -R /usr/local/mingw32/lib lib
GCC 4.1.1のソースを用意する。
ftp://ftp.riken.go.jp/GNU/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2
GCC 4.1.1のコンパイル&インストール
ソースを展開して、configureを下記の通りにする。
CFLAGSのオプションは自分の環境に合わせる。
$ CFLAGS="-O2 -march=pentium4 -fno-strict-aliasing -pipe" \
./configure \
--prefix=${HOME}/mingw/gcc41 \
--target=mingw32 \
--enable-languages=c,c++ \
--with-gcc \
--with-as=/usr/local/bin/mingw32-as \
--with-ld=/usr/local/bin/mingw32-ld \
--enable-threads \
--disable-debug \
--disable-nls \
--disable-shared \
--disable-win32-registry
あとは、「gmake && gmake install」でインストールされる。
${HOME}/mingw/gcc41/bin/mingw32-gccを${HOME}/bin/mingw32-gcc41にシンボリックリンクを貼って、${HOME}/binにパスを通しておく。
Windows版Firefoxのビルドメモ・libpngを差し替える
Windows XP + Visual Studio 2005でFirefoxをビルドするメモ。
Firefox 2.0.0.1のソースに含まれてるlibpngを差し替える改造をする。
改造するポイントは2点。
- libpngのバージョンを現時点の最新版(1.2.16)にする。
- MMXのコードを使って速度を上げる。
以下手順
Windowsの改行コードをUNIXの改行コードに変換するスクリプトを作る
シェルスクリプトやPerlスクリプト等にWindowsの改行コードを使われると正しく動かない。
UNIXの改行コードに変換してやればいいのだが、いちいち「tr」コマンド等を使うのは面倒なので、改行コード変換スクリプトを作っておく。
一番下の内容を「dos2unix」と言う名前で保存して、
$ dos2unix hoge.txt または $ dos2unix hoge.txt 644
としてやれば、Windowsの改行コード(CR LF)がUNIXの改行コード(LF)に変換される。
#!/bin/sh # # dos2unix # TMPDIR=/tmp MODE=644 if [ $# -lt 1 ]; then echo "Usage: dos2unix file [mode]" exit fi if [ $# -gt 1 ]; then MODE=$2 fi if [ -x ${TMPDIR}/dos2unix-tmp ]; then rm ${TMPDIR}/dos2unix-tmp fi perl -pe 's/\r\n/\n/' $1 > ${TMPDIR}/dos2unix-tmp mv -f ${TMPDIR}/dos2unix-tmp $1 chmod ${MODE} $1
portupgradeのカテゴリが変更してる
portupgradeのカテゴリがsysutilsから新しく出来たports-mgmtに移動してる。
おかげでportsnapの後にportversionでバージョンを確認しようとしたらエラーで止まる。
エラーメッセージを見ると、/usr/ports/sysutils/portupgradeに移動できないみたい事を言われてる。
PortsのINDEXファイルを消して、「portsdb -Fu」とコマンドを入力して、「portupgrade -v portupgrade」でportupgradeを入れ直したらエラーメッセージが出なくなった。
もっとスマートな対処方がある気がする…
/usr/ports/UPDATINGの中身より。
20070205: AFFECTS: everybody AUTHOR: pav@FreeBSD.org New ports category was created - /usr/ports/ports-mgmt Most significant port moved to this new category is portupgrade. So don't be alarmed, it was not deleted. You can find it now in /usr/ports/ports-mgmt/portupgrade
Vine Linux 4.0でOpenALを試す
Vine Linux 4.0でOpenALの3Dオーディオはどんな感じなのか試してみた。
★OpenALを使うプログラムをインストール
以前にインストールしたMPlyaerはOpenALを使うみたいで、これをコンパイルし直せばいいらしい。
MPlayerのコンパイル時に、特にconfigureにはオプションを付けなくてもOpenALのライブラリを勝手にリンクしてくれる。
MPlayerをインストールし直したら、「mplayer -ao help」でopenalが使えるのを確認できる。
$ mplayer -ao help MPlayer 1.0rc1-3.3.6 (C) 2000-2006 MPlayer Team CPU: Mobile Intel(R) Pentium(R) 4 - M CPU 2.20GHz (Family: 15, Model: 2, Stepping: 9) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Available audio output drivers: oss OSS/ioctl audio output alsa ALSA-0.9.x-1.x audio output arts aRts audio output esd EsounD audio output sdl SDLlib audio output openal OpenAL audio output mpegpes DVB audio output null Null audio output pcm RAW PCM/WAVE file writer audio output
$ mplayer -ao openal hoge.wav
よく聴いてみると、3Dサウンドに聞こえる…様な気もする。