68 lines
1.1 KiB
Plaintext
Executable file
68 lines
1.1 KiB
Plaintext
Executable file
: create a directory Xsrc with name clashes resolved
|
|
: and run make in that directory
|
|
: '$Header$'
|
|
|
|
case $# in
|
|
1)
|
|
;;
|
|
*) echo "$0: one argument expected" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
PW=`pwd`
|
|
options=
|
|
case $1 in
|
|
main|emain)
|
|
target=$PW/$1
|
|
;;
|
|
omain)
|
|
target=$PW/$1
|
|
options=-DPEEPHOLE
|
|
;;
|
|
cemain)
|
|
target=$PW/$1
|
|
options=-DCODE_EXPANDER
|
|
;;
|
|
Xlint)
|
|
target=$1
|
|
;;
|
|
*) echo "$0: $1: Illegal argument" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
if test -d ../Xsrc
|
|
then
|
|
:
|
|
else mkdir ../Xsrc
|
|
fi
|
|
make EMHOME=$EMHOME longnames
|
|
: remove code generating routines from the clashes list as they are defines.
|
|
: code generating routine names start with C_
|
|
sed '/^C_/d' < longnames > tmp$$
|
|
cclash -c -l7 tmp$$ > ../Xsrc/Xclashes
|
|
rm -f tmp$$
|
|
cd ../Xsrc
|
|
if cmp -s Xclashes clashes
|
|
then
|
|
:
|
|
else
|
|
mv Xclashes clashes
|
|
fi
|
|
rm -f Makefile
|
|
for i in `cat $PW/Cfiles`
|
|
do
|
|
cat >> Makefile <<EOF
|
|
|
|
$i: clashes $PW/$i
|
|
cid -Fclashes < $PW/$i > $i
|
|
EOF
|
|
done
|
|
make EMHOME=$EMHOME `cat $PW/Cfiles`
|
|
rm -f Makefile
|
|
ed - $PW/Makefile <<'EOF'
|
|
/^#EXCLEXCL/,/^#INCLINCL/d
|
|
w Makefile
|
|
q
|
|
EOF
|
|
make EMHOME=$EMHOME COPTIONS=$options CURRDIR=$PW $target
|