# makefile.m4 Written by Ron Shepard, shepard@tcg.anl.gov version V VERSION which WHICH: # setup echo for the version info. @echo makefile.m4 file version 17-Oct-91 -Ron Shepard @echo rs6000 makefile created Tue Dec 10 15:14:57 NFT 1991 # # Note the distinction between the COLUMBUS_DIR make variable and the # $COLUMBUS shell variable. By default, the former is assigned to the # latter, and this requires that the environment variable (e.g. exported # variable) $COLUMBUS be defined as the directory that contains the # columbus shell scripts and executable files. However, this definition # may be overridden in the make command line. This is useful for # debugging, temporary reassignments, etc. # e.g. %make COLUMBUS_DIR=a/b/c target # COLUMBUS_DIR=$$COLUMBUS # AIX test version for RS6000 ... TK FORTRAN=f77 -c FFLAGS=-O LOADER=f77 LIBS=$(COLUMBUS_DIR)/colib.a -lessl AR=ar rv RANLIB=ranlib .SUFFIXES: .SUFFIXES: .x .o .f .o.x: # default loader. $(LOADER) -o $@ $*.o $(LIBS) .f.o: #default fortran compilation: $(FORTRAN) $(FFLAGS) $< # some versions of make cannot put the above two rules together, # so this explicit rule should be the same as the above rules. .f.x: #default compile and load for single-file programs: $(FORTRAN) $(FFLAGS) $< $(LOADER) -o $@ $*.o $(LIBS) ################################################# CMDCOBS=cmdc.o colib6.o colib7.o colib6.f colib7.f : # if necessary, copy the library files cp $(COLUMBUS_DIR)/source/colib/$@ . cmdc.x: $(CMDCOBS) $(LOADER) -o $@ $(CMDCOBS) ################################################# COLIBROOT=colib1.f colib2.f colib3.f colib4.f colib5.f \ colib6.f colib7.f colib8.f colib9.f COLIBFORS=$(COLIBROOT) # # this complicated procedure is used for building libraries because # otherwise, members are loaded by file and not by subroutine. # # [make must spawn processes with /bin/sh for this script to work # correctly. This is almost always the default, but in case it # isn't, try "setenv SHELL /bin/sh" in your ~.login. -rls] # colib.a: $(COLIBFORS) (WORK_DIR=TMP.$$$$ ;\ mkdir $$WORK_DIR ;\ cd $$WORK_DIR ;\ pwd ;\ for i in $? ;do \ fsplit ../$$i ;\ rm -f zzz*.f ;\ for j in *.f ;do \ $(FORTRAN) $(FFLAGS) $$j ;\ done ;\ $(AR) ../$@ *.o ;\ rm * ;\ done ;\ cd ../ ;\ rmdir $$WORK_DIR ;\ $(RANLIB) $@ ) # (21-mar-91) -rls # The previous sequence is equivalent to the following: # $(COLUMBUS_DIR)/libupdate $@ "$(FORTRAN)" "$(FFLAGS)" "$(AR)" $? # $(RANLIB) $@ colib.x: colib.a #fictitious target. another way to make colib.a echo colib.x target redirected to colib.a ################################################# tpack.x: tpack.o colib3.o #for debugging bit-packing routines. $(LOADER) -o $@ tpack.o colib3.o $(LIBS) ################################################# testmm.x: testmm.o colib1.o #for debugging matrix routines. $(LOADER) -o $@ testmm.o colib1.o $(LIBS) ################################################# mmulb.x: mmulb.o colib1.o #for benchmarking and tuning matrix routines. $(LOADER) -o $@ mmulb.o colib1.o $(LIBS) ################################################# ARGOSOBS=argos1.o argos2.o argos3.o argos4.o argos5.o argos6.o argos.x: $(ARGOSOBS) $(LOADER) -o $@ $(ARGOSOBS) $(LIBS) p_argos.x: $(ARGOSOBS) # parallel version $(LOADER) -o $@ $(ARGOSOBS) $(PLIBS) $(LIBS) ################################################# CNVRTOBS=cnvrt.o cnvrt.x: $(CNVRTOBS) $(LOADER) -o $@ $(CNVRTOBS) $(LIBS) p_cnvrt.x: $(CNVRTOBS) # parallel version $(LOADER) -o $@ $(CNVRTOBS) $(PLIBS) $(LIBS) ################################################# SCFPQOBS=scfpq1.o scfpq2.o scfpq.x: $(SCFPQOBS) $(LOADER) -o $@ $(SCFPQOBS) $(LIBS) p_scfpq.x: $(SCFPQOBS) # parallel version $(LOADER) -o $@ $(SCFPQOBS) $(PLIBS) $(LIBS) ################################################# MCDRTOBS=mcdrt1.o mcdrt2.o mcdrt.x: $(MCDRTOBS) $(LOADER) -o $@ $(MCDRTOBS) $(LIBS) ################################################# SIF2ANLOBS=sif2anl1.o sif2anl2.o # temporary file-conversion program sif2anl.x: $(SIF2ANLOBS) $(LOADER) -o $@ $(SIF2ANLOBS) $(LIBS) ################################################# MCSCFOBS=mcscf1.o mcscf2.o mcscf3.o mcscf4.o mcscf5.o mcscf6.o \ mcscf7.o mcscf8.o mcscf9.o mcscf.x: $(MCSCFOBS) $(LOADER) -o $@ $(MCSCFOBS) $(LIBS) ################################################# CIDRTOBS=cidrt1.o cidrt2.o cidrt3.o cidrt4.o cidrt.x: $(CIDRTOBS) $(LOADER) -o $@ $(CIDRTOBS) $(LIBS) ################################################# CIUFTOBS=ciuft1.o ciuft2.o ciuft.x: $(CIUFTOBS) $(LOADER) -o $@ $(CIUFTOBS) $(LIBS) ################################################# CISRTOBS=cisrt1.o cisrt2.o cisrt3.o cisrt.x: $(CISRTOBS) $(LOADER) -o $@ $(CISRTOBS) $(LIBS) ################################################# TRANOBS=tran1.o tran2.o tran3.o tran4.o tran5.o \ tran6.o tran7.o tran8.o tran9.o tran.x: $(TRANOBS) $(LOADER) -o $@ $(TRANOBS) $(LIBS) ################################################# CIDENOBS=ciden1.o ciden2.o ciden3.o ciden4.o ciden5.o \ ciden6.o ciden7.o ciden8.o ciden9.o ciden10.o \ ciden11.o ciden.x: $(CIDENOBS) $(LOADER) -o $@ $(CIDENOBS) $(LIBS) ################################################# CIGRDOBS=cigrd1.o cigrd2.o cigrd3.o cigrd4.o cigrd5.o \ cigrd6.o cigrd.x: $(CIGRDOBS) $(LOADER) -o $@ $(CIGRDOBS) $(LIBS) ################################################# BATRAOBS=batra1.o batra2.o batra3.o batra.x: $(BATRAOBS) $(LOADER) -o $@ $(BATRAOBS) $(LIBS) ################################################# AOGRDOBS=aogrd1.o aogrd2.o aogrd3.o aogrd4.o aogrd.x: $(AOGRDOBS) $(LOADER) -o $@ $(AOGRDOBS) $(LIBS) ################################################# CIUDGOBS1=ciudg1.o ciudg9.o ciudg11.o CIUDGOBS2=ciudg2.o ciudg3.o ciudg4.o ciudg5.o ciudg6.o \ ciudg7.o ciudg8.o ciudg10.o ciudg.x: $(CIUDGOBS1) $(CIUDGOBS2) $(LOADER) -lessl -o $@ $(CIUDGOBS1) $(CIUDGOBS2) $(LIBS) ###################################################################### ###################################################################### ## ## ## production command section ## ## ## ###################################################################### ###################################################################### # # This section defines file dependencies among the COLUMBUS programs # for production runs. A complete series of codes may be executed # with a single command such as "make cienergy". # If desired, this production section may be separated from the above # program-construction section provided the COLUMBUS_DIR variable # definition is copied. # # The executable filenames are defined such that they may be reassigned # on the make command line. For example: # %make ARGOS.X=some/other/directory/a.out aoints # Also, there is a PREFIX symbol which can be used to insert a command # line string immediately before each program. For example: # %make PREFIX="hpm -g 0" cienergy # will cause hpm to monitor each program step on a cray. Also, each # individual program has its own prefix and postfix string for temporary # modification of individual program steps. ################################################# ARGOS.X=$(COLUMBUS_DIR)/argos.x argosls aoints: argosin $(PREFIX) $(PRE_ARGOS) $(ARGOS.X) $(POST_ARGOS) ################################################# MCUFT.X=$(COLUMBUS_DIR)/mcuft.x mcuftls mcoftfl: mcdrtfl mcuftin $(PREFIX) $(PRE_MCUFT) $(MCUFT.X) $(POST_MCUFT) mcuftin: #not required yet touch mcuftin ################################################# SIF2ANL.X=$(COLUMBUS_DIR)/sif2anl.x anlints sif2anlls: aoints $(PREFIX) $(PRE_SIF2ANL) $(SIF2ANL.X) $(POST_SIF2ANL) MCSCF.X=$(COLUMBUS_DIR)/mcscf.x mcenergy restart mcscfls mcscfsm: mcscfin mcoftfl anlints $(PREFIX) $(PRE_MCSCF) $(MCSCF.X) $(POST_MCSCF) ################################################# MOFMT.X=$(COLUMBUS_DIR)/mofmt.x mocoef mofmtls: restart mofmtin $(PREFIX) $(PRE_MOFMT) $(MOFMT.X) $(POST_MOFMT) mofmtls ################################################# TRAN.X=$(COLUMBUS_DIR)/tran.x moints tranls: aoints cidrtfl mocoef tranin $(PREFIX) $(PRE_TRAN) $(TRAN.X) $(POST_TRAN) ################################################# CIUFT.X=$(COLUMBUS_DIR)/ciuft.x ciuftls ciftofl: cidrtfl ciuftin $(PREFIX) $(PRE_CIUFT) $(CIUFT.X) $(POST_CIUFT) ciuftin: #not required yet touch ciuftin ################################################# CISRT.X=$(COLUMBUS_DIR)/cisrt.x cisrtls fil4x: moints cisrtin $(PREFIX) $(PRE_CISRT) $(CISRT.X) $(POST_CISRT) ################################################# CIUDG.X=$(COLUMBUS_DIR)/ciudg.x cienergy ciudgls ciudgsm: ciudgin fil4x ciftofl $(PREFIX) $(PRE_CIUDG) $(CIUDG.X) $(POST_CIUDG) #################################################