#!/bin/sh if [ $# -ne 0 ]; then echo 'usage: mkmake' >&2 exit 1 fi i=`(ls *.c | sed 's/\.c$//') 2>/dev/null` set a $i if [ $# -eq 1 ]; then echo "No files to make -- makefile unchanged" exit 1 fi shift if [ ! -f makefile ]; then echo "making new makefile" else cp makefile .makefile.old echo "# +mkmake+ " >> makefile ed makefile << EOF > /dev/null /+mkmake+/ .,\$d w q EOF fi echo "# +mkmake+ -- Everything after this line is automatically generated" \ >> makefile echo "" >> makefile echo "EXECUTABLES = $*" >> makefile echo "" >> makefile echo 'all: $(EXECUTABLES)' >> makefile echo "" >> makefile echo "clean:" >> makefile echo ' rm -f core *.o $(EXECUTABLES) a.out' >> makefile echo "" >> makefile echo ".SUFFIXES: .c .o" >> makefile echo ".c.o:" >> makefile echo ' $(CC) $(CFLAGS) -c $*.c' >> makefile echo "" >> makefile for i do echo "" >> makefile echo "$i: $i.o" >> makefile echo " $(CC) $(CFLAGS) -o $i $i.o" >> makefile done