- 開発が早いため、あるソフトを動かすためにはバージョンx.y.zが必要、ということが間々ある
- 自作や拾い物のパッチを当てたい
- 何か一つくらいソースコードいじったりしているといざと言うときに自慢できる
- そもそも、Wineの開発を追うのが趣味
#! /bin/sh(あまりシェルスクリプトは慣れていないので変な書き方になっているかもしれない)
CONFIGURE_OPTS=""
while getopts c:ip OPT
do
case $OPT in
"c" ) CONFIGURE_OPTS=$OPTARG ;;
"i" ) INSTALL="true" ;;
"p" ) PATCH="true" ;;
esac
done
shift $(($OPTIND - 1))
WINEVER=$1
DOWNLOAD_TMP="/tmp/wine-"$WINEVER".tar.bz2"
abort () {
echo $1
exit 1
}
if [ -e "wine-"$WINEVER ]
then
echo "Already wine-"$WINEVER" is exist. Compile start."
cd wine-$WINEVER || abort "error: move current directory to latest wine"
else
if [ -e $DOWNLOAD_TMP ]
then
echo "Already "$DOWNLOAD_TMP" is exist. Melt start."
else
echo "wine-"$WINEVER" isn't exist. Download start."
wget http://jaist.dl.sourceforge.net/sourceforge/wine/wine-$WINEVER.tar.bz2 -O $DOWNLOAD_TMP || abort "error: file download"
fi
echo "Start melt "$DOWNLOAD_TMP
tar jxf $DOWNLOAD_TMP || abort "error: decompress"
rm $DOWNLOAD_TMP
cd wine-$WINEVER || abort "error: move current directory to latest wine"
if [ $PATCH = 1 ]
then
for i in ../*.patch
do
patch -p 1 -R < $i || abort "error: patch " $i
done
fi
fi
./configure $CONFIGURE_OPTS || abort "error: executing ./configure $CONFIGURE_OPTS"
make depend || abort "error: make depend"
nice -n 19 make CC="ccache gcc" CXX="ccache g++" || abort "error: compiling"
echo "no errors, success to compile."
if [ $INSTALL = 1 ]
then
sudo make install || abort "install missing"
else
echo "please \`make install' for root to install wine for your system."
fi
例えばこれを書いている時点での最新版(1.1.17)をインストールしたいなら、
$ mkwine.sh 1.1.17
と実行すれば、
- wineの公式サイトから/tmp以下にwine-1.1.17.tar.bz2がダウンロードされ、
- カレントディレクトリに解凍、
- -pが指定されていればカレントディレクトリに置いてあるパッチを当てる
- ./configure; make depend; makeを実行
- -iが指定されていればmake installする
# もうあったりして・・・?
0 件のコメント:
コメントを投稿