70 lines
		
	
	
	
		
			871 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			871 B
		
	
	
	
		
			Text
		
	
	
	
	
	
trap "rm -f x$$.c" 0 1 2 3 15
 | 
						|
EMHOME=/usr/em
 | 
						|
CFLAG=0
 | 
						|
TARGET=a.out
 | 
						|
while :
 | 
						|
do
 | 
						|
	case $# in
 | 
						|
	0)	break;;
 | 
						|
	esac
 | 
						|
	case $1 in
 | 
						|
	-I*|-D*|-U*)
 | 
						|
		PREP=$PREP" "$1
 | 
						|
		;;
 | 
						|
	-c)	CFLAG=1
 | 
						|
		;;
 | 
						|
	-o)	shift
 | 
						|
		TARGET=$1
 | 
						|
		;;
 | 
						|
	-F)	shift
 | 
						|
		LFLAG="-F $1"
 | 
						|
		;;
 | 
						|
	-*)	FLAGS=$FLAGS" "$1
 | 
						|
		;;
 | 
						|
	*)	ARG=$ARG" "$1
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
	shift
 | 
						|
done
 | 
						|
for i in $ARG
 | 
						|
do
 | 
						|
	case $i in
 | 
						|
	*.c)
 | 
						|
		nm=`basename $i .c`
 | 
						|
		if [ -x $EMHOME/lib/cpp ]
 | 
						|
		then
 | 
						|
			cpp=$EMHOME/lib/cpp
 | 
						|
			cppf=-P
 | 
						|
		else
 | 
						|
			cpp=/bin/cc
 | 
						|
			cppf=-E
 | 
						|
		fi
 | 
						|
		if $cpp $cppf $PREP $i > x$$.c && /bin/cc $FLAGS -c x$$.c
 | 
						|
		then
 | 
						|
			mv x$$.o $nm.o
 | 
						|
			LDARG=$LDARG" "$nm.o
 | 
						|
		else
 | 
						|
			rm -f x$$.c
 | 
						|
			exit 1
 | 
						|
		fi
 | 
						|
		rm -f x$$.c
 | 
						|
		;;
 | 
						|
	*.s)
 | 
						|
		if /bin/cc $FLAGS -c $i
 | 
						|
		then
 | 
						|
			LDARG=$LDARG" "`basename $i .s`.o
 | 
						|
		else	exit 1
 | 
						|
		fi
 | 
						|
		;;
 | 
						|
	*)	LDARG=$LDARG" "$i
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
done
 | 
						|
case $CFLAG in
 | 
						|
1)	;;
 | 
						|
*)	if /bin/cc $FLAGS $LFLAG $LDARG -o $TARGET
 | 
						|
	then :
 | 
						|
	else exit 1
 | 
						|
	fi
 | 
						|
	;;
 | 
						|
esac
 |