CCL Home Page
Up Directory CCL makefile
#  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)
#################################################
Modified: Thu Mar 23 17:00:00 1995 GMT
Page accessed 9378 times since Sat Apr 17 21:33:54 1999 GMT