# Makefile for SISAL
# Generated Mon May  4 11:27:41 PDT 1992 by sinstall.

# ******************************************************************************
# ************************   MACROS TO CONFIGURE MAKEFILE   ********************
# ******************************************************************************
# **** DOCUMENTATION SYMOBLS: [] = optional, {} = pick one
# **** COMMAND LINE MACRO DEFINITIONS WILL OVERRIDE THOSE SHOWN HERE

# **** PATHS TO COMMANDS USED BY THE MAKEFILE--CHECK FOR ACCURACY
CC          = cc
INSTALL     = /bin/cp
RANLIB      = touch
AR          = ar r

# **** HOST SYSTEM
# **** HOST = -D{ENCORE,ALLIANT,etc.}
HOST = -DSGI -DMY_UGH

# *** NUMBER OF AVAILABLE PROCESSORS IN THE HOST SYSTEM
PROCS = 4

# **** FLOATING POINT CHIP (FOR EXAMPLE, SUN)
# **** FPO = -f68881
FPO = 
DPO = 

# **** IS GANGD TO BE USED: ONLY SUPPORTED ON BALANCE
# **** GANGD = [-DGANGD]
GANGD = 

# **** SHOULD THE MAKEFILE GO IN PARALLEL: ONLY SUPPORTED ON BALANCE
# **** PAR = [&]
PAR = 

# **** OPTIMIZE THE GENERATED ASSEMBLY CODE
# **** OPT = [-O]
OPT = -O
ROPT = -O

# **** COMPILE FOR RUN TIME DBX USE
# **** DBX = [-g]
DBX = 

# **** ABSOLUTE PATHS TO EXECUTABLE (BIN_PATH) AND MAN PAGE INSTALLATION
# **** SITES. (Ex. BIN_PATH = /usr/local/bin, MAN_PATH = /usr/man/manl)
BIN_PATH = /d/sisal/a/cann/Bbn/Dist/bin
MAN_PATH = /d/sisal/a/cann/Bbn/Dist/Man/manl


#*******************************************************************************
# ************************* DO NOT MODIFY ANYTHING ELSE ************************
#*******************************************************************************

PR          = -DMAX_PROCS=4
FF          = f77

T_DEF1      = BIN_PATH=${BIN_PATH}
T_DEF2      = MAN_PATH=${MAN_PATH}

LIBM        = sgi

TIMEM       = -DUSE_TIMES

CC_OPTS     = ${HOST} ${PR} ${FPO} ${DPO} ${GANGD} ${DBX} ${TIMEM}


F_CC_CMD    = "CC=${CC}"
T_CC_CMD    = "CC=${CC} ${CC_OPTS} ${OPT}" "${T_DEF1}" "${T_DEF2}" 	      "PAR=${PAR}"
R_CC_CMD    = "CC=${CC} ${CC_OPTS} ${ROPT}" "PAR=${PAR}" "AR=${AR}"
CC_CMD      = "CC=${CC} ${CC_OPTS} ${OPT}" "PAR=${PAR}" "AR=${AR}"


BINSTALL    = ${INSTALL}
SINSTALL    = ${INSTALL}

BINSTALL_CMD = "BINSTALL=${BINSTALL}" "BIN_PATH=${BIN_PATH}"
SINSTALL_CMD = "SINSTALL=${SINSTALL}" "MAN_PATH=${MAN_PATH}"


# **** LOCAL (all without install)
local: tools frontend backend runtime

# **** ALL
all: tools frontend backend runtime install

# **** FRONTEND
frontend:
	cd Frontend; make local ${F_CC_CMD}; cd ..

# **** TOOLS
tools:
	cd Tools; make local ${T_CC_CMD}; cd ..

# **** BACKEND
backend: if1ld if1opt if2mem if2up if2part if2gen
if1ld:
	cd Backend/If1ld;    make local ${CC_CMD}; cd ../..
if1opt:
	cd Backend/If1opt;   make local ${CC_CMD}; cd ../..
if2mem:
	cd Backend/If2mem;   make local ${CC_CMD}; cd ../..
if2up:
	cd Backend/If2up;    make local ${CC_CMD}; cd ../..
if2part:
	cd Backend/If2part;  make local ${CC_CMD}; cd ../..
if2gen:
	cd Backend/If2gen;  make local ${CC_CMD}; cd ../..

# **** RUNTIME
runtime:
	cd Runtime; make local ${R_CC_CMD}; cd ..

# **** INSTALL
install: install_tools install_if1ld install_if1opt install_if2mem \
	 install_if2up install_if2part install_if2gen install_runtime \
	 install_frontend

install_tools:
	cd Tools; \
	make install -i ${T_CC_CMD} ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ..
install_frontend:
	cd Frontend;   make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ..
install_if1ld:
	cd Backend/If1ld;   make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_if1opt:
	cd Backend/If1opt;  make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_if2mem:
	cd Backend/If2mem;  make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_if2up:
	cd Backend/If2up;   make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_if2part:
	cd Backend/If2part; make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_if2gen:
	cd Backend/If2gen; make install -i ${BINSTALL_CMD} ${SINSTALL_CMD};\
	cd ../..
install_runtime:
	cd Runtime;\
	make ${LIBM} install -i ${BINSTALL_CMD} ${SINSTALL_CMD} "FF=${FF}" "AR=${AR}" "RANLIB=${RANLIB}";\
	cd ../..

# **** CLEAN
clean:
	cd Tools;            make clean; cd ..
	cd Frontend;         make clean; cd ..
	cd Backend/If1ld;    make clean; cd ../..
	cd Backend/If1opt;   make clean; cd ../..
	cd Backend/If2mem;   make clean; cd ../..  
	cd Backend/If2up;    make clean; cd ../..  
	cd Backend/If2part;  make clean; cd ../..  
	cd Backend/If2gen;   make clean; cd ../..  
	cd Runtime;          make clean; cd ..
