#! /bin/csh 

# USAGE
#   mkmake
#
# FUNCTION
#   Creates the makefiles for SACLIB.

set MAKEFILE=$saclib/lib/obj/makefile

#
## Write header
#

cat > $MAKEFILE <<\EOF
# FILE
#   makefile (automatically generated by 'mkmake')
#
# USAGE
#   make [SACFLAG=<flag>] [EXTENSION=<character>]
#   where <flag> is a compilation flag such as '-O' and <character> is the
#   corresponding extension character which will be appended to the name of
#   the compiled library.
#       E.g. if <flag> is -g and <character> is d, the library will be
#   compiled with the debug option set and the library name will be
#   "saclibg.a".
# 
# REMARK
#   This file should not be modified. Modify 'mkmake' instead and then use it
#   to create the new makefile. 

# Macros

SRCDIR   = ${saclib}/src
TARGET   = ${saclib}/lib/saclib${EXTENSION}.a
CFLAGS   = -I${saclib}/include -c ${SACFLAG}

# Object files

OBJS1 = \
\EOF

#
## Write list of object files
#

pushd >/dev/null $saclib/src
/bin/ls [A-H]*.[cs] |\
awk -F. '{if (prev) printf("\\\n%s.o",$1);\
          else {printf("%s.o",$1); prev = 1;}}' >>$MAKEFILE
echo " " >> $MAKEFILE
echo "OBJS2a = \" >> $MAKEFILE
/bin/ls I[A-P]*.[cs] |\
awk -F. '{if (prev) printf("\\\n%s.o",$1);\
          else {printf("%s.o",$1); prev = 1;}}' >>$MAKEFILE
echo " " >> $MAKEFILE
echo "OBJS2b = \" >> $MAKEFILE
/bin/ls I[Q-z]*.[cs] |\
awk -F. '{if (prev) printf("\\\n%s.o",$1);\
          else {printf("%s.o",$1); prev = 1;}}' >>$MAKEFILE
echo " " >> $MAKEFILE
echo "OBJS3 = \" >> $MAKEFILE
/bin/ls [J-P]*.[cs] |\
awk -F. '{if (prev) printf("\\\n%s.o",$1);\
          else {printf("%s.o",$1); prev = 1;}}' >>$MAKEFILE
echo " " >> $MAKEFILE
echo "OBJS4 = \" >> $MAKEFILE
/bin/ls [Q-z]*.[cs] |\
awk -F. '{if (prev) printf("\\\n%s.o",$1);\
          else {printf("%s.o",$1); prev = 1;}}' >>$MAKEFILE

#
## Write target dependencies
#

cat >> $MAKEFILE <<EOF
 

# Target dependencies

new: \${OBJS1} \${OBJS2a} \${OBJS2b} \${OBJS3} \${OBJS4}
	rm -f \${TARGET}
	ar cq \${TARGET} \${OBJS1}
	ar cq \${TARGET} \${OBJS2a}
	ar cq \${TARGET} \${OBJS2b}
	ar cq \${TARGET} \${OBJS3}
	ar cq \${TARGET} \${OBJS4}
#       Use "ar ts" if your system does not have "ranlib".
	ar ts \${TARGET}
#       Use "ranlib" if your system's "ar" does not have the option "s".
#       ranlib \${TARGET}
	@echo "Created '\${TARGET}'."

EOF

#
## Write object dependencies
#

cat >> $MAKEFILE <<\EOF


# Object dependencies

\EOF

/bin/ls *.[cs] |\
awk -F. '{printf "%s.o: ${SRCDIR}/%s\n\t${CC} ${CFLAGS} ${SRCDIR}/%s\n",$1,$0,$0}' >>$MAKEFILE

echo " " >>$MAKEFILE
echo "# END OF FILE makefile" >>$MAKEFILE

#
## Done
# 

cp $MAKEFILE $saclib/lib/objo
cp $MAKEFILE $saclib/lib/objd
popd >/dev/null
echo "Made '$MAKEFILE'"
echo "and copies in '$saclib/lib/objo'"
echo "          and '$saclib/lib/objd.'"
