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