|
Obtain Intel C++ compiler 11.0 for linux
(l_cproc_p_11.0.074_ia32.tgz) and
its license (NCOM_L_CMP_CPP_*.lic) from Intel website.
Extract RPM files :
for i in intel*.rpm ; do
echo $i
rpm2cpio $i | ( cd / ; cpio -idv )
done
Install license file :
mkdir /opt/intel/licenses
cp NCOM_L_CMP_CPP_*.lic /opt/intel/licenses
Adjust shell scripts :
ln -s /usr/local/bin/bash /bin
INSTALLDIR=/opt/intel/Compiler/11.0/074
for i in `find ${INSTALLDIR} -type f -print` ; do
if ! grep -q -i '<INSTALLDIR>' $i ; then continue ; fi
echo $i
tmp=`mktemp /tmp/intel.XXXXXX`
cp $i $tmp
cat $tmp | sed -e s%"<INSTALLDIR>"%"${INSTALLDIR}"%g \
-e s%"<installdir>"%"${INSTALLDIR}"%g > $i
rm $tmp
done
Enable linux compatibility (see FreeBSD documentation)
and install g++ for linux (taken from Slackware 12.2 here) :
gzip -cd gcc-g++-4.2.4-i486-1.tgz | ( cd /compat/linux ; tar xvf - )
Adjust compiler scripts :
cat << "EOF" >> ${INSTALLDIR}/bin/ia32/iccvars_ia32.sh
export GXX_ROOT=/compat/linux/usr/libexec/gcc/i486-slackware-linux/4.2.4/
# export LC_ALL=C
EOF
cat << "EOF" | tee -a ${INSTALLDIR}/bin/ia32/icc.cfg \
>> ${INSTALLDIR}/bin/ia32/icpc.cfg
-U__linux
-U__linux__
-U__gnu_linux__
-Ulinux
-D__FreeBSD__
-Qlocation,link,/opt/intel
EOF
cat << "EOF" > /opt/intel/ld
#!/usr/bin/env python
import os,sys
# sys.stderr.write('BEFORE LD %s\n' % sys.argv)
dyn=True
args=['/usr/bin/ld']
for i in sys.argv[1:]:
if i=='elf_i386':
args.append('elf_i386_fbsd')
elif i=='/lib/ld-linux.so.2':
args.append('/libexec/ld-elf.so.1')
elif i=='-Bdynamic':
dyn=True
args.append(i)
elif i=='-Bstatic':
dyn=False
args.append(i)
elif i in ['-ldl','-lirc','-lintlc']:
pass
elif i in ['-limf','-lsvml','-lcxaguard']:
if dyn:
args.append('-Bstatic')
args.append(i)
args.append('-Bdynamic')
else:
args.append(i)
else:
args.append(i)
# sys.stderr.write('AFTER LD %s\n' % args)
os.execvp(args[0],args)
EOF
chmod +x /opt/intel/ld
|