# $Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/vector/RCS/MAKEFILE,v 3.0 90/05/20 21:04:07 kgorlen Rel $
# C++ compiler
CC = CC

# C++ debug switch
CCDEBUG =
#CCDEBUG = -g

# C++ flags
# NOTE: Disable +p option when compiling with AT&T R2.1
CCFLAGS = +p
#CCFLAGS =

# C++ include files
I = /usr/include/CC

# If using BSD
SYS = BSD
# If using System V
#SYS = SYSV

# Compile with nested types (works with AT&T R2.1 and GNU C++)
NESTED_TYPES =
#NESTED_TYPES = -DNESTED_TYPES

# Disable AT&T R2.0/R2.1 bug work-around code
BUGDEFS =
#BUGDEFS = -DBUG_bC2728 -DBUG_38 -DBUG_39 -DBUG_OPTYPECONST
# Defining BUG_TOOBIG disables code that prevents C compiler "yacc stack overflows"
#BUGDEFS = -DBUG_bC2728 -DBUG_38 -DBUG_39 -DBUG_OPTYPECONST -DBUG_TOOBIG

# Enable debug code
DEBUGDEFS =
#DEBUGDEFS = -DDEBUG_OBJIO -DDEBUG_PROCESS

# For no multiple inheritance support
MI =
# Enable support for multiple inheritance
#MI = -DMI

NIHCLLIB = ../lib/libnihcl.a
NIHVECLIB = libnihclvec.a

CFLAGS = -I${NIHCLINCDIR} ${MI} ${CCDEBUG} ${CCFLAGS} ${NESTED_TYPES} ${BUGDEFS} ${DEBUGDEFS}

# Target Directories
NIHCLLIBDIR = /usr/lib
NIHCLINCDIR = ../lib

VECS = BitVec.c ByteVec.c DoubleVec.c FloatVec.c IntVec.c LongVec.c ShortVec.c
OBJECTS = BitVec.o ByteVec.o ByteVect.o DoubleVec.o DoubleVect.o FloatVec.o FloatVect.o IntVec.o IntVect.o LongVec.o LongVect.o ShortVec.o ShortVect.o Vector.o

.SUFFIXES: ..c .s
.c.o:
	${CC} ${CFLAGS} -c $<
.c..c:
	${CC} ${CFLAGS} +i -c $<
.c.s:
	${CC} ${CFLAGS} +i -S $<

.PRECIOUS: ${NIHVECLIB}

all: always ${NIHVECLIB}

${NIHVECLIB}: ${OBJECTS}
	ar rv $@ $?
	if test ${SYS} = BSD ; then ranlib ${NIHVECLIB}; fi
	rm $?

always:
	${MAKE} generic

generic:
	${MAKE} -f genericmake ${VECS}

install:
	cp lib*.a ${NIHCLLIBDIR}
	if test ${SYS} = BSD ; then \
		for i in lib*.a; do (cd ${NIHCLLIBDIR}; ranlib -t $$i); done; \
	fi
	-mkdir ${NIHCLINCDIR}
	cp *.h ${NIHCLINCDIR}

clean:
	-chmod u+w *Vec.c
	-rm -f targetlist *.o *Vec.c *..c *.s *.a make.tdep*

# DO NOT DELETE THIS LINE -- make depend depends on it.

BitVec.o: IntVec.h Vector.h ${NIHCLINCDIR}/Object.h
BitVec.o: BitVec.h bitstreams.h ${NIHCLINCDIR}/nihclconfig.h
BitVec.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
BitVec.o: ${NIHCLINCDIR}/OIOfd.h
ByteVec.o: ByteVec.h Vector.h ${NIHCLINCDIR}/Object.h
ByteVec.o: BitVec.h IntVec.h ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
ByteVect.o: ByteVec.h Vector.h ${NIHCLINCDIR}/Object.h
ByteVect.o: BitVec.h IntVec.h
ByteVect.o: ${NIHCLINCDIR}/nihclconfig.h
ByteVect.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
ByteVect.o: ${NIHCLINCDIR}/OIOfd.h
DoubleVec.o: DoubleVec.h Vector.h ${NIHCLINCDIR}/Object.h
DoubleVec.o: BitVec.h IntVec.h
DoubleVec.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
DoubleVect.o: DoubleVec.h Vector.h ${NIHCLINCDIR}/Object.h
DoubleVect.o: BitVec.h IntVec.h FloatVec.h
DoubleVect.o: ${NIHCLINCDIR}/nihclconfig.h
DoubleVect.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
DoubleVect.o: ${NIHCLINCDIR}/OIOfd.h
FloatVec.o: FloatVec.h Vector.h ${NIHCLINCDIR}/Object.h
FloatVec.o: BitVec.h IntVec.h
FloatVec.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
FloatVect.o: FloatVec.h Vector.h ${NIHCLINCDIR}/Object.h
FloatVect.o: BitVec.h IntVec.h DoubleVec.h
FloatVect.o: ${NIHCLINCDIR}/nihclconfig.h
IntVec.o: IntVec.h Vector.h ${NIHCLINCDIR}/Object.h
IntVec.o: BitVec.h ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
IntVect.o: IntVec.h Vector.h ${NIHCLINCDIR}/Object.h
IntVect.o: BitVec.h ${NIHCLINCDIR}/nihclconfig.h
IntVect.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
IntVect.o: ${NIHCLINCDIR}/OIOfd.h
LongVec.o: LongVec.h Vector.h ${NIHCLINCDIR}/Object.h
LongVec.o: BitVec.h IntVec.h ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
LongVect.o: LongVec.h Vector.h ${NIHCLINCDIR}/Object.h
LongVect.o: BitVec.h IntVec.h
LongVect.o: ${NIHCLINCDIR}/nihclconfig.h
LongVect.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
LongVect.o: ${NIHCLINCDIR}/OIOfd.h
ShortVec.o: ShortVec.h Vector.h ${NIHCLINCDIR}/Object.h
ShortVec.o: BitVec.h IntVec.h
ShortVec.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
ShortVect.o: ShortVec.h Vector.h ${NIHCLINCDIR}/Object.h
ShortVect.o: BitVec.h IntVec.h
ShortVect.o: ${NIHCLINCDIR}/nihclconfig.h
ShortVect.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h
ShortVect.o: ${NIHCLINCDIR}/OIOfd.h
Vector.o: Vector.h ${NIHCLINCDIR}/Object.h
Vector.o: ${NIHCLINCDIR}/nihclIO.h ${NIHCLINCDIR}/OIO.h ${NIHCLINCDIR}/OIOfd.h
