# $Header: Makefile,v 2.204 89/10/07 23:20:19 keith Stab $
CC = CC
CCDEBUG =
# For no multiple inheritance support
MI =
# Enable support for multiple inheritance
#MI = -DMI
I = /usr/include/CC
NIHCLLIB = libnihcl.a
CFLAGS = ${MI} ${CCDEBUG} +p
# Target Directories
NIHCLLIBDIR = /usr/lib
NIHCLINCDIR = /usr/include/nihcl
NIHCLSRCDIR = /usr/local/src/nihcl
ERRGENDIR = /usr/local/bin
ERRTABDIR = /usr/local/lib

include make.all

.SUFFIXES: ..c .s
.c.a:
	echo $< >>targetlist
.c..c:
	${CC} ${CFLAGS} +i -c $<
.c.s:
	${CC} ${CFLAGS} +i -S $<

.PRECIOUS: ${NIHCLLIB}

all: always nihclerrsx.h ${NIHCLLIB}(regex.o) ${NIHCLLIB}

always:
	-rm -f targetlist *.o
	${MAKE} generic

nihclerrsx.h: nihclerrs.err
	if test -f /usr/bin/errcom ; then errcom nihclerrs.err ; else ${ERRGENDIR}/errgen -R${ERRTABDIR} nihclerrs.err; fi
	sed -f nihclerrs.sed <nihclerrs.c >nihclerrs.tmp
	mv nihclerrs.tmp nihclerrs.c
	sed -n -e "s/^\([A-Z][a-zA-Z]*\).*/int NIHCL_\1	= NIHCL__\1;/p" <nihclerrs.err >nihclerrsx.h

generic: Arraychar.h Arraychar.c

Arraychar.h: Array_h.m4
	-chmod u+w $@; rm -f $@
	echo "ARRAYDECLARE(Arraychar,char)" | m4 Array_h.m4 - >Arraychar.h
	chmod a-w $@

Arraychar.c: Array_c.m4 Arraychar.p
	-chmod u+w $@; rm -f $@
	m4 Array_c.m4 Arraychar.p >Arraychar.c
	chmod a-w $@

${NIHCLLIB}(regex.o): regex/regex.c regex.h
#	cc -O -I. -D'SIGN_EXTEND_CHAR(c)=(((c) & 0x80) ? ((c) | 0xffffff80) : (c))' -c regex/regex.c
	cc -O -I. -c regex/regex.c
	touch targetlist

${NIHCLLIB}: ${OBJECTS}
	${CC} ${CFLAGS} -c `cat targetlist`
	ar rv $@ *.o
	rm -f *.o
	-ranlib ${NIHCLLIB}

install:
	cp lib*.a ${NIHCLLIBDIR}
	-for i in lib*.a; do (cd ${NIHCLLIBDIR}; ranlib -t $$i); done
	-mkdir ${NIHCLINCDIR}
	-chmod u+w ${NIHCLINCDIR}/*.h
	-rm -f ${NIHCLINCDIR}/*.h
	cp *.h ${NIHCLINCDIR}
	-mkdir ${NIHCLSRCDIR}
	-chmod u+w ${NIHCLSRCDIR}/*.c ${NIHCLSRCDIR}/Template_*
	-rm -f ${NIHCLSRCDIR}/*.c ${NIHCLSRCDIR}/Template_*
	cp *.c ${NIHCLSRCDIR}
	cp Template_[hc] ${NIHCLSRCDIR}

depend:	nihclerrsx.h generic
	-rm -f *..c
	echo 'OBJECTS = $${NIHCLLIB}(regex.o)' *.c | sed -e 's#\([a-zA-Z0-9_]*\)\.c#$${NIHCLLIB}(\1.o)#g' >make.all
	touch make.tdep
	makedepend -I$I -f make.tdep -- ${CFLAGS} -- *.c
	sed -e 's#\([a-zA-Z0-9_]*\.o\)#$${NIHCLLIB}(\1)#g' make.tdep | sed -e 's#$I/#$$I/#g' >make.dep
	sed -e 's#$I/#$$I/#g' make.tdep >MAKE.dep
	rm make.tdep*

clean:
	-rm -f targetlist *.o *..c ${NIHCLLIB} nihclerrsx.h make.tdep*

include make.dep
