.SUFFIXES : .F .f .c .o .a .PRECIOUS : $(LIB) #.SILENT: # Define system commands. RM = /bin/rm -f ECHO = /bin/echo ARCHIVE = ar rs # Define compiler flags from machine dependent make.inc. include ../../configure/make.inc.single INC = ../../include FFLAGS= -f3 LIBDIR= ../../../lib EXEDIR= ../../../exe COMPILE.f = $(FC) $(FFLAGS) -c -I$(INC) # Define main program. MAIN = initbc.f # Define all necessary source files. OBJ = \ $(LIB)(boco.o) $(LIB)(const.o) \ $(LIB)(dutil.o) $(LIB)(interp.o) \ $(LIB)(GRIBST.o) $(LIB)(VFRAC.o) \ $(LIB)(SSTHIRES.o) $(LIB)(SST14K.o) \ $(LIB)(C2K.o) $(LIB)(ZTERPG.o) \ $(LIB)(PRINTAF.o) $(LIB)(PRINTETA.o) \ $(LIB)(SNOHIRES.o) $(LIB)(SNO16GET.o) \ $(LIB)(SNO8GET.o) $(LIB)(PRINTIMS.o) \ $(LIB)(PUTVEG.o) $(LIB)(PUTEM.o) \ $(LIB)(GAULAT.o) $(LIB)(GAUTOETA.o) \ $(LIB)(GAUTOICE.o) $(LIB)(BSSLZ1.o) \ $(LIB)(READSFC.o) $(LIB)(read_ssticesno.o)\ $(LIB)(do_sstice.o) $(LIB)(INTSFC.o)\ $(LIB)(maxmn2b.o) $(LIB)(maxmn1.o)\ $(LIB)(maxmn3.o) # Define library path and name. LIB = $(LIBDIR)/libinitbc.a # Define other libraries needed to link. OTHER_LIB = $(LIBDIR)/libetautil.a ### W3LIB = $(LIBDIR)/w3lib_export $(LIBDIR)/bacio W3LIB = ../../../../libraries/w3lib ../../../../libraries/bacio # Define executable. EXE = $(EXEDIR)/initbc.exe .f.a: $(ECHO) $(ECHO) "Compiling $<" $(COMPILE.f) $< $(ECHO) "Adding $(<:.f=.o) to $@ archive." $(ARCHIVE) $@ $(<:.f=.o) $(RM) $(<:.f=.o) .f.o: $(ECHO) $(ECHO) "Compiling $<" $(COMPILE.f) $< $(ECHO) "Adding $(<:.f=.o) to $(LIB) archive." $(ARCHIVE) $(LIB) $(<:.f=.o) $(RM) $(<:.f=.o) # Default target. $(EXE): $(MAIN) $(LIB) $(OTHER_LIB) $(W3LIB) $(FC) $(FFLAGS) -I$(INC) $(MAIN) $(LIB) $(OTHER_LIB) $(W3LIB) -o $(EXE) $(LIB): $(OBJ) $(ECHO) $(ECHO) "$(LIB) up-to-date" $(ECHO) exe: $(EXE) lib: $(LIB) # Dependencies. $(LIB)(boco.o) : $(INC)/ecommons.h $(LIB)(const.o) : $(INC)/ecommons.h $(INC)/econstants.h $(LIB)(dutil.o) : $(INC)/ecommons.h $(LIB)(interp.o) : $(INC)/ecommons.h $(INC)/econstants.h $(LIB)(SSTHIRES.o) : $(INC)/parmeta $(LIB)(SST14K.o) : $(INC)/parmeta $(LIB)(ZTERPG.o) : $(INC)/parmeta $(LIB)(SNOHIRES.o) : $(INC)/parmeta $(LIB)(PRINTETA.o) : $(INC)/parmeta $(LIB)(PUTVEG.o) : $(INC)/parmeta $(LIB)(PUTEM.o) : $(INC)/parmeta $(LIB)(GAUTOETA.o) : $(INC)/parmeta $(LIB)(GAUTOICE.o) : $(INC)/parmeta $(LIB)(READSFC.o) : $(INC)/parmeta $(INC)/parmsoil $(LIB)(read_ssticesno.o) :/ $(INC)/ecommons.h $(LIB)(do_sstice.o) :/ $(INC)/ecommons.h $(INC)/econstants.h $(LIB)(INTSFC.o) :/ $(INC)/ecommons.h