#!/bin/sh
##############################
#
# maketargets 3.01
#
##############################
#
#
# Variables:
#
# TARGETS - targets to make
# NOCLEANT- targets to make, but not to clean,
#           except when using cleanall
#
#   format: target:SOURCE target1:SOURCE1 ...
#
##############################

echo "MakeTargets 3.01"
echo 

echo "Making dependencies for targets"
echo

#### Initialize a makefile

.simplemake/MakefileInit <Makefile >Makefile.target
rm -f Makefile

#### Determine the used OS

.simplemake/makeosconf Makefile
cat Makefile.target >>Makefile
rm -f Makefile.target

#### Now make the targets and
#### keep track of a clean structure.

echo "clean_all:" >/tmp/clean.$$
echo "	@echo \"cleaning up...\""  >>/tmp/clean.$$

echo "" >/tmp/hdr.$$

#### Make the dependencies for all targets

TT=""
IHDR=""
for i in $TARGETS 
do
   T=`echo $i | sed -e s/:.*//`
   TT="$TT $T"

   echo "	@rm -f $T" >>/tmp/clean.$$
   
   S=`echo $i | sed -e s/.*://`
   make -s DEPFILE=$T.dep SRC=\$\($S\) TARGET=$T CLEANFILE=/tmp/clean.$$ HDRFILE=/tmp/hdr.$$ dep

   cat $T.dep >>Makefile
   rm -f $T.dep
done
for i in $NOCLEANT 
do
   T=`echo $i | sed -e s/:.*//`
   TT="$TT $T"

   echo "	@if [ \$(CLEANALL) = 1 ]; then rm -f $T; fi" >>/tmp/clean.$$
   
   S=`echo $i | sed -e s/.*://`
   make -s DEPFILE=$T.dep SRC=\$\($S\) TARGET=$T CLEANFILE=/tmp/clean.$$ HDRFILE=/tmp/hdr.$$ dep

   cat $T.dep >>Makefile
   rm -f $T.dep
done
IHDR=`cat /tmp/hdr.$$ | sort | uniq`
mv /tmp/hdr.$$ /tmp/hdr

#### After making the dependencies, make the targets

echo >>Makefile
echo "targets: $TT" >>Makefile
echo >>Makefile

#### Make the 
#TT1=""
#for i in $TT
#do
#  E=`echo $i | .simplemake/makeExtension`
#  if [ "$E" = "a" -o "$E" = "lib" ]; then
#    echo "# $i not cleaned" >>Makefile
#  else
#    TT1="$TT1 $i"
#  fi
#done
#echo >>Makefile

#### Finish the clean structure

echo "	@echo \"done.\"" >>/tmp/clean.$$
cat /tmp/clean.$$ >>Makefile
rm -f /tmp/clean.$$

echo "Finished making clean: part"

#### Make the installation structure

#### First determine the libraries and the binaries

echo "Making install: part"

IBIN=""
ILIB=""
for i in $TT
do
  E=`echo $i | .simplemake/makeExtension`
  if [ "$E" = "sl" -o "$E" = "so" -o "$E" = "a" ]; then
    ILIB="$ILIB $i"
  else
    IBIN="$IBIN $i"
  fi
done

#### Now make the install structure

HHDR=""
for h in $IHDR
do
  HHDR="$HHDR $h"
done
IHDR=$HHDR

echo >>Makefile
echo "install_all: targets" >>Makefile
echo "	@echo \"installing binaries to INSTALLDIR=\$(INSTALLDIR)\" ">>Makefile
echo "	@INSTALLDIR=\$(INSTALLDIR);export INSTALLDIR;\\" >>Makefile
echo "	CHMOD=555;export CHMOD; \\" >>Makefile
echo "	INSTALLTYPE=\"BIN\";export INSTALLTYPE;\\" >>Makefile
echo "	INSTALLEXE=\$(INSTALLEXE);export INSTALLEXE;\\" >>Makefile
echo "	.simplemake/makeinstall $IBIN \$(INSTALLEXTRA)" >>Makefile
echo "	@echo \"installing libraries to INSTALLLIB=\$(INSTALLLIB)\" ">>Makefile
echo "	@INSTALLDIR=\$(INSTALLLIB);export INSTALLDIR;\\" >>Makefile
echo "	INSTALLTYPE=\"LIB\";export INSTALLTYPE;\\" >>Makefile
echo "	CHMOD=555;export CHMOD; \\" >>Makefile
echo "	INSTALLEXE=\$(INSTALLEXE);export INSTALLEXE;\\" >>Makefile
echo "	.simplemake/makeinstall $ILIB" >>Makefile
echo "	@echo \"installing headers to INSTALLHDR=\$(INSTALLHDR)\" ">>Makefile
echo "	@INSTALLDIR=\$(INSTALLHDR);export INSTALLDIR;\\" >>Makefile
echo "	INSTALLTYPE=\"HDR\";export INSTALLTYPE;\\" >>Makefile
echo "	CHMOD=444;export CHMOD; \\" >>Makefile
echo "	INSTALLEXE=\$(INSTALLEXE);export INSTALLEXE;\\" >>Makefile
echo "	.simplemake/makeinstall $IHDR" >>Makefile

#### Make entries to gzip the whole directory

echo "Making gzip: part"

echo >>Makefile
echo "gzip: clean" >>Makefile
echo "	@echo \"gzip -r...\"" >>Makefile
echo "	@gzip -r ." >>Makefile
echo "	@echo \"gunzip Makefile.gz Makefile.def.gz\"; \\" >>Makefile
echo "	gunzip Makefile.gz Makefile.def.gz" >>Makefile
echo "	@echo \"done.\"" >>Makefile

#### Make entries to gunzip the thing

echo "Making gunzip: part"

echo >>Makefile
echo "gunzip:" >>Makefile
echo "	@echo \"gunzip -r...\"" >>Makefile
echo "	@gunzip -r ." >>Makefile
echo "	@echo \"done.\"" >>Makefile

#### Make entry to tar and gzip the whole directory

echo "Making srcdist: part"

echo >>Makefile
echo "srcdist: clean" >>Makefile
echo "	@echo \"Making source distribution for \$(TAR) \$(TAR_ALIASES)\"" >>Makefile
echo "	@.simplemake/makesrcdist \$(TAR) \$(TAR_ALIASES)" >>Makefile

#### Make entry to make a new version of this directory

echo "Making newversion: part"

echo >>Makefile
echo "newversion: clean" >>Makefile
echo "	@.simplemake/makever \$(TAR)" >>Makefile

#### done

echo "done."


