#
# Makefile for ULTRA
#
# Files and Directories
#

TGTBin = ${BinDir}/ultra
TGTLib = ${LibDir}/libultra.a
TGTInc = none
TGTScmA = applications/ultra.scm applications/consts.scm applications/func.scm
TGTScmB = applications/annotate.scm applications/compare.scm applications/trig.scm
TGTScmC = applications/help.scm applications/synon.scm ultra.ini
TGTScmD = applications/toolbox.scm applications/ultra.pui
TGTScm  = ${TGTScmA} ${TGTScmB} ${TGTScmC} ${TGTScmD}

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

#
# Files to Save for Backup (pact save)
#
SaveFiles = *.c *.h .scm

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

#
# Things upon which install depends (pact install)
#
DepLib = ${LibDir}/libscheme.a ${LibDir}/libpanacea.a ${LibDir}/libpgs.a \
	 ${LibDir}/libppc.a ${LibDir}/libpdb.a ${LibDir}/libpml.a \
	 ${LibDir}/libscore.a ${LibDir}/libsx.a

InstallDep = ${TGTLib} ${TGTBin}
BinDep = ${Hdrs} ${TGTLib} ultra.c ${DepLib}
BinObj = ${LdFlags} ultra.c

#
# Source Files
#
FocalLst = ultra.focal
FocalSrc = ${Hdrs} ultra.c ulio.c ulhand.c ulfunc.c ulauxf.c ulcntl.c

#
# Required Libraries
#
Libs = -lultra -lsx -lscheme -lpanacea -lpgs ${MachDepGraphicsLib} -lppc -lpdb -lpml -lscore -lm ${MachDepLib}

#
# Headers Files
#
Hdrs = ultra.h

#
# Object Files
#
Objs = ulfunc.o ulauxf.o ulio.o ulhand.o ulcntl.o

ArObjs = ${TGTLib}(ulfunc.o) ${TGTLib}(ulauxf.o) ${TGTLib}(ulio.o) \
	 ${TGTLib}(ulhand.o) ${TGTLib}(ulcntl.o)

${Objs} : ${Hdrs}
${LibDep} : ${Hdrs}

#
# pixie version
#
pixie : ${TGTBin}
	pixie -o ultra.pixie ultra
	ultra.pixie -s -l ulperf.scm
	rm -f pixie.stats
	prof -pixie ultra ultra.Addrs ultra.Counts > pixie.stats

#
# install 
#
install: ${InstallDep}
	mv ultra.ini ultra.ini.dev
	cp ultra.ini.user ultra.ini
	pact scminstall
	rm ultra.ini
	mv ultra.ini.dev ultra.ini

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

#
# Run the ULTRA test suite
#
test :
	@ultest
