# Makefile for library - aide
#
# History:  95/12/05 kmflynn

# Usage:  make [libdir=path_to_install_to] [install] [| tee makeout]
#
# Examples:  make
#            make install libdir=/usr/lib
#            make install libdir=$HOME/lib

# Compiler flags (Fortran - Green Hills):
#    C - check subranges and array bounds
#    u - default data type for undeclareds is undefined
#    g - generate source level symbolic debug information
#   OM - optimization
# (NOTE: set OpgDbg to: OptM to generate optimized code
#                       DbgF to generate debug code)
DbgF   = -g
OptM   = -OM
OptDbg =
FFLAGS = -u $(OptDbg)

# Compiler names
F77    = f77

# symbol table for library archive may need to be explicitly built;
# System V ar does this automatically, BSD ar does not
BSD    = ranlib $@
SYS_V  =
SymTbl = $(SYS_V)

# library archive options
#    r - replace the named files in the archive file
#    v - give a verbose file-by-file description of the making
#    c - suppress the message that is produced by default when
#        the archive file is created
#    q - quickly append the named files to the end of the
#        archive file
ArOpt = rv

# this description file uses the Bourne shell
SHELL = /bin/sh

# Object files, installation specific
# where zsys[dg vx pc ly ot].o
ObjDG   = zsysdg.o
ObjSun  = zsysdg.o
ObjSGI  = zsysdg.o
ObjRISC = zsysdg.o
ObjDec  = zsysdg.o
ObjHP   = zsysdg.o
ObjVrsn = $(ObjDG)

#*******************************************************************
#***** You should not need to modify anything below this line. *****
#*******************************************************************

library = aidelib.a
Objects = aninit.o qtchar.o qtfile.o qtnumb.o qtnums.o prtaid.o \
          qtscn1.o utmisc.o utuprm.o z0util.o z1util.o z4util.o \
          ztscn1.o zutil.o  zutilx.o zutily.o qtstgt.o zclbak.o \
          zcbch1.o zcbch2.o zcbch3.o zcbch4.o zcbch5.o \
          zcbch6.o zcbch7.o zcbch8.o zcbch9.o \
          zcbfl1.o zcbfl2.o zcbfl3.o zcbfl4.o zcbfl5.o \
          zcbfl6.o zcbfl7.o zcbfl8.o zcbfl9.o \
          zcbex1.o zcbex2.o zcbex3.o zcbex4.o zcbex5.o \
          zcbex6.o zcbex7.o zcbex8.o zcbex9.o
Sutil   = const.inc color.inc
Sadwdm  = cclbak.inc cfbuff.inc cqrsp.inc  cscren.inc czglvl.inc \
          czhide.inc czoptn.inc fmsgwd.inc pmxfld.inc pmxrsl.inc zcntrl.inc

libdir  = ../../lib
binary  = ../../lib
libMake = $(binary)/$(library)
libInst = $(libdir)/$(library)

# Rules
all: includes $(binary) $(libMake) install
	@echo "\nDone making all, files are now up-to-date.\n"

# Library and utility dependencies:
$(libMake):   $(Objects) $(ObjVrsn)
	@echo "\n" making $(libMake)
	ar $(ArOpt) $@ $?
	$(SymTbl)
$(binary):
	@if [ ! -d $(binary) ]   ; then        \
	   mkdir $(binary)  ;                  \
	   echo Created directory $(binary) ;  \
        fi
install:
# Create directory for binary file, if necessary
	@if [ ! -d $(libdir) ]   ; then        \
	   mkdir $(libdir) ;                   \
	   echo  Created directory $(libdir) ; \
	fi
# Link executable to libdir if installing elsewhere
	@if [ ! -s $(libMake) ] ; then                              \
	   echo library $(libMake) does not exist, ;                \
	   echo use one of the following commands to generate it:;  \
	   echo "     make" ;  echo "     make all" ;               \
	else                                                        \
	   if [ $(libdir) != $(binary) ] ; then                     \
	      rm -f $(libInst) ;                               \
	      cd ../..; ln -s `pwd`/lib/$(library) $(libInst); \
	      chmod 644 $(libInst) ;                           \
	      echo "\n"Library $(libInst) has been updated.;   \
	   fi ; \
	fi
clean:
	@if [ $(libdir) != $(binary) ] ; then rm -f $(libInst) ; fi
	rm -f *.o $(libMake)
	@echo Removed files generated by make."\n"
includes:
	@for inc in $(Sutil) ; do                                       \
	   if [ -f $$inc ] ; then                                       \
	     if diff $$inc ../util/$$inc ; then                         \
	        continue ;                                              \
	     else                                                       \
	        echo "NOTICE:--different $$inc appended to ERROR.inc" ; \
	        echo ;                                                  \
	        echo "different $$inc, `date`" >> ERROR.inc ;           \
	        cat $$inc >> ERROR.inc ;                                \
	        rm $$inc ;                                              \
	        cp ../util/$$inc . ;                                    \
	     fi ;                                                       \
	   else                                                         \
	     echo "NOTICE:--copying missing $$inc from ../util" ;       \
	     cp ../util/$$inc . ;                                       \
	   fi ;                                                         \
	done
	@for inc in $(Sadwdm) ; do                                      \
	   if [ -f $$inc ] ; then                                       \
	     if diff $$inc ../adwdm/$$inc ; then                        \
	        continue ;                                              \
	     else                                                       \
	        echo "NOTICE:--different $$inc appended to ERROR.inc" ; \
	        echo ;                                                  \
	        echo "different $$inc, `date`" >> ERROR.inc ;           \
	        cat $$inc >> ERROR.inc ;                                \
	        rm $$inc ;                                              \
	        cp ../adwdm/$$inc . ;                                   \
	     fi ;                                                       \
	   else                                                         \
	     echo "NOTICE:--copying missing $$inc from ../adwdm" ;      \
	     cp ../adwdm/$$inc . ;                                      \
	   fi ;                                                         \
	done

# Define object file dependencies:
aninit.o: cterif.inc faidep.inc fversn.inc fmsgwd.inc
qtchar.o: pmesfl.inc cscren.inc cqrsp.inc  pmxfld.inc zcntrl.inc pmxrsl.inc
qtfile.o: pmesfl.inc zcntrl.inc pmxrsl.inc
qtnumb.o: cscren.inc pmxfld.inc zcntrl.inc pmxrsl.inc
qtscn1.o: pmesfl.inc color.inc  cqrsp.inc  cscren.inc pmxfld.inc \
          zcntrl.inc pmxrsl.inc
qtstgt.o: const.inc  cscren.inc czhide.inc czoptn.inc zcntrl.inc \
          pmxrsl.inc pmxfld.inc
utmisc.o: cterif.inc cscren.inc zcntrl.inc pmxrsl.inc pmxfld.inc
utuprm.o: cusrpm.inc pmesfl.inc pmxprm.inc faidep.inc
z0util.o: const.inc  cscren.inc czhide.inc czoptn.inc cclbak.inc \
          zcntrl.inc pmxrsl.inc pmxfld.inc
z1util.o: cscren.inc zcntrl.inc pmxrsl.inc pmxfld.inc
z4util.o: cqrsp.inc  zcntrl.inc  pmxrsl.inc
zclbak.o: cclbak.inc
zsyslh.o: zcntrl.inc pmxrsl.inc
zsysot.o: zcntrl.inc pmxrsl.inc
zsyspc.o: zcntrl.inc pmxrsl.inc
ztscn1.o: const.inc  cscren.inc zcntrl.inc pmxrsl.inc pmxfld.inc
zutil.o:  faidep.inc const.inc  color.inc  cqrsp.inc  cscren.inc czhide.inc \
          czoptn.inc zcntrl.inc pmxrsl.inc czglvl.inc pmxfld.inc
zutilx.o: faidep.inc const.inc  czhide.inc czoptn.inc cscren.inc \
          cqrsp.inc  zcntrl.inc pmxrsl.inc pmxfld.inc
zutily.o: zcntrl.inc  pmxrsl.inc

# end of make
