Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
96 lines
2.4 KiB
Bash
96 lines
2.4 KiB
Bash
#!/bin/sh
|
|
# script to set GNU CPP or CC1, CC1PLUS to be called from gcc
|
|
# ./unset_mcpp.sh $gcc_path $gcc_maj_ver $gcc_min_ver $cpp_call $CC $CXX
|
|
# x$EXEEXT $LN_S $inc_dir $host_system $target_cc
|
|
|
|
gcc_maj_ver=$2
|
|
gcc_min_ver=$3
|
|
cpp_call=$4
|
|
CC=$5
|
|
CXX=$6
|
|
LN_S=$8
|
|
inc_dir=$9
|
|
host_system=${10}
|
|
target_cc=${11}
|
|
cpp_name=`echo $cpp_call | sed 's,.*/,,'`
|
|
cpp_path=`echo $cpp_call | sed "s,/$cpp_name,,"`
|
|
gcc_path=`echo $1 | sed "s,/${CC}\$,,"`
|
|
EXEEXT=`echo $7 | sed 's/^x//'`
|
|
if test x$EXEEXT != x; then
|
|
cpp_base=`echo $cpp_name | sed "s/$EXEEXT//"`
|
|
else
|
|
cpp_base=$cpp_name
|
|
fi
|
|
|
|
echo " rm -fr $inc_dir/mcpp-gcc*"
|
|
rm -fr $inc_dir/mcpp-gcc*
|
|
if test $host_system = SYS_CYGWIN; then
|
|
echo " rm -fr $inc_dir/mingw"
|
|
rm -fr $inc_dir/mingw
|
|
fi
|
|
|
|
echo " cd $cpp_path"
|
|
cd $cpp_path
|
|
|
|
if (test -h $cpp_name || test $host_system = SYS_MINGW) \
|
|
&& test -f ${cpp_base}_gnuc$EXEEXT; then
|
|
rm -f $cpp_name mcpp.sh
|
|
echo " mv ${cpp_base}_gnuc$EXEEXT $cpp_name"
|
|
mv -f ${cpp_base}_gnuc$EXEEXT $cpp_name
|
|
if test x$cpp_base = xcc1; then
|
|
rm -f cc1plus$EXEEXT mcpp_plus.sh
|
|
echo " mv cc1plus_gnuc$EXEEXT cc1plus$EXEEXT"
|
|
mv -f cc1plus_gnuc$EXEEXT cc1plus$EXEEXT
|
|
fi
|
|
fi
|
|
|
|
if test x$gcc_maj_ver = x2; then
|
|
exit 0
|
|
fi
|
|
|
|
echo " cd $gcc_path"
|
|
cd $gcc_path
|
|
|
|
if test $host_system = SYS_MAC && test x${target_cc} != x; then
|
|
CC_=$target_cc
|
|
CXX_=`echo $target_cc | sed 's/gcc/g++/'`
|
|
else
|
|
CC_=$CC
|
|
CXX_=$CXX
|
|
fi
|
|
|
|
for cc in $CC_ $CXX_
|
|
do
|
|
if test $host_system != SYS_MINGW; then
|
|
ref=`readlink $cc`
|
|
fi
|
|
if test x$ref = x; then
|
|
ref=$cc
|
|
fi
|
|
ccache=`grep ccache $ref`
|
|
if test x$ccache != x; then
|
|
## search the real $cc in $PATH
|
|
for path in `echo $PATH | sed 's/:/ /g'`
|
|
do
|
|
if test -f $path/$cc$EXEEXT && test $gcc_path != $path; then
|
|
break;
|
|
fi
|
|
done
|
|
gcc_path=$path
|
|
echo " cd $gcc_path"
|
|
cd $gcc_path
|
|
ref=`readlink $cc`
|
|
fi
|
|
if test x$ref = x$cc.sh || test $host_system = SYS_MINGW; then
|
|
entity=`grep $gcc_path $cc.sh | sed "s,$gcc_path/,," | sed "s/_proper.*$//"`
|
|
rm -f $entity
|
|
echo " mv ${entity}_proper$EXEEXT $entity$EXEEXT"
|
|
mv -f ${entity}_proper$EXEEXT $entity$EXEEXT
|
|
if test $entity != $cc; then
|
|
echo " $LN_S $entity $cc"
|
|
$LN_S -f $entity $cc
|
|
fi
|
|
rm -f $cc.sh
|
|
fi
|
|
done
|