# $Header: Makefile,v 2.204 89/10/08 15:04:57 keith Stab $
CC = CC				# C++ compiler
CCDEBUG =			# C++ debug switch
I = /usr/include/CC		# C++ include files
LIB_ID = libC			# Error Facility library

# Target Directories for Installation
NIHCLLIBDIR = /usr/lib			# directory for libnihcl.a
NIHCLINCDIR = /usr/include/nihcl	# directory for NIHCL include files
NIHCLSRCDIR = /usr/local/src/nihcl	# directory for NIHCL source files
CLIBDIR = /usr/local/lib/C++R2.0	# directory where ${LIB_ID}.a resides
ERRGENDIR = /usr/local/bin		# directory for errgen utility
ERRTABDIR = /usr/local/lib		# directory for errgen table file

# Other directories
ERRFAC = errfac
CLASSES = lib
TEST = test
VECTOR = vector
VECTEST = vectest
EX = ex
SUBDIRS = ${ERRFAC} ${CLASSES} ${TEST} ${VECTOR} ${VECTEST} ${EX}
 
all: nihclclasses nihcltest vectorclasses vectortest

mi: nihclmiclasses nihclmitest vectormiclasses vectormitest

errorfacility:
	cd ${ERRFAC}; \
		${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I}; \
		${MAKE} -f MAKEFILE ${MFLAGS} install \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		ERRGENDIR=${ERRGENDIR} ERRTABDIR=${ERRTABDIR} \
		CLIBDIR=${CLIBDIR} LIB_ID=${LIB_ID}

nihclclasses:
	cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I}

nihcltest:
	cd ${TEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I}

vectorclasses:
	cd ${VECTOR}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		NIHCLLIB=../lib/libnihclmi.a generic
	cd ${VECTOR}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		NIHCLLIB=../lib/libnihclmi.a

vectortest:
	cd ${VECTEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I}

nihclmiclasses:
	cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		MI=-DMI NIHCLLIB=libnihclmi.a

nihclmitest:
	cd ${TEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		MI=-DMI NIHCLLIB=../lib/libnihclmi.a

vectormiclasses:
	cd ${VECTOR}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		MI=-DMI NIHVECLIB=nihclvecmi.a generic
	cd ${VECTOR}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		MI=-DMI NIHVECLIB=nihclvecmi.a

vectormitest:
	cd ${VECTEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I} \
		MI=-DMI NIHCLLIB=../lib/libnihclmi.a NIHVECLIB=../vector/nihclvecmi.a

verify:
	cd ${TEST}; verify
	cd  ${VECTEST}; verify

install:
	for i in ${CLASSES} ${VECTOR}; do \
		(echo $$i; cd $$i; ${MAKE} -f MAKEFILE ${MFLAGS} install \
		NIHCLLIBDIR=${NIHCLLIBDIR} NIHCLINCDIR=${NIHCLINCDIR} NIHCLSRCDIR=${NIHCLSRCDIR} \
		); done

examples:
	cd ${EX}; ${MAKE} -f MAKEFILE ${MFLAGS} \
		CC=${CC} CCDEBUG=${CCDEBUG} I=${I}

exverify:
	cd ${EX}; verify

cleantest:
	cd test; make -f MAKEFILE clean
	cd vectest; make -f MAKEFILE clean

clean:
	for i in ${SUBDIRS}; do \
		(echo $$i; cd $$i; ${MAKE} -f MAKEFILE ${MFLAGS} clean); done

newdistribution:
	-mkdir new-distribution
	cd share;tar cf - .  | (cd ../new-distribution;tar xf -)
	(cd new-distribution; make clean; cd ..)
	(cd new-distribution/RCS; chmod u+w *; cd ..; rm -r RCS)
	for i in ${SUBDIRS}; do \
	(cd new-distribution/$$i/RCS; chmod u+w *; cd ..; rm -r RCS); done

tape:
	tar cvf /dev/rmt0 -C distribution .

cpiotape:
	find distribution -depth -print | cpio -ocv >/dev/rmt0

cartridge:
	tar cvf /dev/rst0 -C distribution .
