debian で intel compiler を使う(その2)

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 &#39;.*[ei]\(cc\|cpc\|fort\|fc\)$\|.*cfg$\|.*pcl$\|.*vars[^/]*.c?sh$&#39; 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 &#39;INSTALLDIR&#39;
echo "done."