intelコンパイラのiccやifcをデビアンで使う方法.debian で intel compiler (icc) - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -の続編.
iccやifcは頻繁にバージョンが上がるので,パッケージを変換するスクリプトと,インストール後設定ファイルを更新するスクリプトを作成した.
まずは変換スクリプト.
#!/bin/sh # # rpm -> deb 変換スクリプト # # 使い方 # ./make_deb hoge.tar.gz # # hoge.tar.gz に含まれる fuga.i386.rpm から fuga.deb を生成し # カレントディレクトリに保存する. function error() { echo $@ exit -1; } TOP=`pwd` SRC=`pwd`/$1 [ -f $SRC ] || error "usage: $0 hoge.tar.gz" TEMP=/tmp # /ram があれば /ram を一時ディレクトリとして使う. [ -d /ram ] && TEMP=/ram mkdir -p $TEMP/$$ cd $TEMP/$$ echo "unpacking..." tar xfz $SRC DIR=`basename $SRC` DIR=${DIR/.tar.gz/} [ -d $DIR ] || error "DIR[$DIR] is not found." cd $DIR echo "converting..." fakeroot alien intel*i386.rpm echo "copy generated deb files." cp *.deb $TOP echo "done."
次に,インストール後の設定スクリプト.インテルコンパイラのバージョンは9.0固定です...
#!/bin/sh function error() { echo $@ exit -1; } function update() { FILE=$1 [ -f $FILE ] || error "FILE is not found" sed s:\<INSTALLDIR\>:$DEST:g $FILE > $FILE.temp mv $FILE.temp $FILE chmod 755 $FILE } for DEST in /opt/intel/*/9.0; do find $DEST -regex '.*[ei]\(cc\|cpc\|fort\|fc\)$\|.*cfg$\|.*pcl$\|.*vars[^/]*.c?sh$' 2> /dev/null | while read FILE; do echo "update $FILE" update $FILE $DEST done done echo "checking files." find /opt/intel -type f | xargs grep 'INSTALLDIR' echo "done."