#!/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
