#
# pre-Makefile for SCORE
#
# Files and Directories
#

LibName=score

TGTBin = none
TGTLib = ${LibDir}/lib${LibName}${ThreadLibExt}.a
TGTInc = ${Hdrs} sclexan.h

#
# Compiler/Loader Options
#
UniFlags =
CcFlags = ${COptimize} -I${IncDir} ${MachDepInc}
FcFlags =
LdFlags = -L${LibDir} ${LDFLAGS}

#
# Files to Save for Backup (make save)
#
SaveFiles = *.c *.h *.r

#
# Files to remove in directory clean (pact clean)
#
CleanFiles = scf77lr.c *~ core

#
# Things upon which install depends (pact install)
#
InstallDep = ${TGTLib}
BinDep =
BinObj =

#
# Source Files
#
FocalLst = score.focal
FocalSrc = ${Hdrs} scctl.c scctla.c scfnca.c scfia.c scfis.c schash.c scstr.c scpar.c

#
# Required Libraries
#
Libs = ${LSCORE} -lm ${MachDepLib}

#
# Headers Files
#
Hdrs = scstd.h score.h

#
# Object Files
#
Objs = scctl.o scctla.o scfia.o scfis.o scfnca.o schash.o scpar.o \
       scstr.o scf77lr.o scvers.o

ArObjs = ${TGTLib}(scctl.o) ${TGTLib}(scctla.o) \
	 ${TGTLib}(scfia.o) ${TGTLib}(scfis.o) \
         ${TGTLib}(scfnca.o) ${TGTLib}(schash.o) ${TGTLib}(scstr.o) \
	 ${TGTLib}(scpar.o) ${TGTLib}(scf77lr.o) ${TGTLib}(scvers.o)

scf77lr.o : scf77lr.l sclexan.h
${Objs} : ${Hdrs}
${LibDep} : ${Hdrs}

#
# CONFIG
#
config : scctla.c
	${CC} -DMM_CONFIG ${LdFlags} scctla.c -o config -lc

#
# PS-DIFF
#
${BinDir}/ps-diff : scpsd.c
	${CC} ${LdFlags} scpsd.c -o ${BinDir}/ps-diff ${Libs}

#
# shared memory parallel test
#
smp : ${BinDir}/scsmp ${BinDir}/scsmpb

${BinDir}/scsmp : scsmp.c ${TGTLib}
	${CC} ${LdFlags} scsmp.c -o ${BinDir}/scsmp ${Libs}

${BinDir}/scsmpb : scsmpb.c ${TGTLib}
	${CC} ${LdFlags} scsmpb.c -o ${BinDir}/scsmpb ${Libs}
#
# memory management test
#
mm : ${BinDir}/scmm

${BinDir}/scmm : scmm.c ${TGTLib}
	${CC} ${LdFlags} scmm.c -o ${BinDir}/scmm ${Libs}
#
# lexical scanner test
#
scan : ${BinDir}/sclsts

${BinDir}/sclsts : ${TGTLib} sclsts.c
	${CC} ${LdFlags} sclsts.c -o ${BinDir}/sclsts ${Libs}
#
# hash/alist test
#
ha : ${BinDir}/scatst

${BinDir}/scatst : ${TGTLib} scatst.c
	${CC} ${LdFlags} scatst.c -o ${BinDir}/scatst ${Libs}

#
# fortran hash test
#
fha : ${BinDir}/schtst

${BinDir}/schtst : schtst.f ${TGTLib} ${Hdrs}
	${FC} ${FDebug} ${LdFlags} schtst.f -o ${BinDir}/schtst ${Libs}

#
# comprehensive test suite
#
compre : ${BinDir}/tscstr ${BinDir}/tscctl ${BinDir}/tscctla ${BinDir}/interact

${BinDir}/tscstr : ${TGTLib} tscstr.c
	${CC} ${LdFlags} tscstr.c -o ${BinDir}/tscstr ${Libs}

${BinDir}/tscctl : ${TGTLib} tscctl.c
	${CC} ${LdFlags} tscctl.c -o ${BinDir}/tscctl ${Libs}

${BinDir}/tscctla : ${TGTLib} tscctla.c
	${CC} ${LdFlags} tscctla.c -o ${BinDir}/tscctla ${Libs}

${BinDir}/interact : ${TGTLib} interact.c
	${CC} ${LdFlags} interact.c -o ${BinDir}/interact ${Libs}

#
# install 
#
install: ${InstallDep} ${BinDir}/ps-diff
	pact incinstall

#
# inform
#
inform :
	@rm -f required.objs
	@echo ${Objs} > required.objs

#
# Run the SCORE test suite
#
test :
	@sctest



