OS	      =	BSD

MAKEFILE      = Makefile

DEBUGOPT      = -O

DEFINES	      =	-D$(OS)

CFLAGS        = $(DEBUGOPT) $(DEFINES)

OSLIBS	      =

DEST	      = /usr/local/lib

CPP	      =	/lib/cpp $(DEFINES)

CO	      =	co
CI	      =	ci

SHELL	      = /bin/sh

M4FILES       = cmfnc.h4 \
		cmconf.h4 \
		cmfnc.top \
		cmfncs.top \
		cmcfm.cnf \
		cmchar.cnf \
		cmfil.cnf \
		cmfld.cnf \
		cmgnrc.cnf \
		cmgrp.cnf \
		cmkey.cnf \
		cmnoi.cnf \
		cmnum.cnf \
		cmpara.cnf \
		cmqst.cnf \
		cmswi.cnf \
		cmtad.cnf \
		cmtok.cnf \
		cmtxt.cnf \
		cmusr.cnf

HDRS	      = ccmd.h \
		ccmdmd.h \
		cmfil.h \
		cmfnc.h \
		cmfncs.h \
		cmgrp.h \
		cmkeyval.h \
		cmusr.h \
		cmver.h \
		datime.h \
		dtpat.h \
		filelist.h \
		machdep.h \
		tzone.h

LIBRARY	      = ccmd.a

OBJS	      =	ccmd.o \
		ccmdio.o \
		ccmdmd.o \
		ccmdst.o \
		ccmdut.o \
		cmcfm.o \
		cmchar.o \
		cmfil.o \
		cmfld.o \
		cmgrp.o \
		cmkey.o \
		cmmisc.o \
		cmnoi.o \
		cmnum.o \
		cmpara.o \
		cmqst.o \
		cmswi.o \
		cmtad.o \
		cmtok.o \
		cmtxt.o \
		cmusr.o \
		cmver.o \
		datime.o \
		dir.o \
		filelist.o \
		stdact.o \
		wild.o

SRCS	      = ccmd.c \
		ccmdio.c \
		ccmdmd.c \
		ccmdst.c \
		ccmdut.c \
		cmcfm.c \
		cmchar.c \
		cmfil.c \
		cmfld.c \
		cmgrp.c \
		cmkey.c \
		cmmisc.c \
		cmnoi.c \
		cmnum.c \
		cmpara.c \
		cmqst.c \
		cmswi.c \
		cmtad.c \
		cmtok.c \
		cmtxt.c \
		cmusr.c \
		cmver.c \
		datime.c \
		dir.c \
		filelist.c \
		stdact.c \
		wild.c \
		incversion.c \
		cmkeyval.c \
		test.c \
		skel.c

PROGS	      = test \
		skel

all:		$(LIBRARY) $(PROGS)

$(LIBRARY):	$(OBJS)
		ar cru $(LIBRARY) $(OBJS)
		ranlib $(LIBRARY)

test:		test.o $(LIBRARY)
		$(CC) -o $@ $@.o $(LIBRARY) -ltermlib $(OSLIBS)

skel:		skel.o $(LIBRARY)
		$(CC) -o $@ $@.o $(LIBRARY) -ltermlib $(OSLIBS)

split.awk:;	rm -f split.awk
		echo 'BEGIN { output = "/dev/null" }' > split.awk
		echo '/^#file/ { output = $$2; next }' >> split.awk
		echo '{ print >output; next }' >> split.awk

cmfncs.h cmfnc.h: $(M4FILES) split.awk
		m4 cmfnc.h4 | awk -f split.awk

site.h:;	touch site.h

cmkeyval.h:	cmkeyval.c
		$(CC) $(CFLAGS) -o cmkeyval cmkeyval.c
		./cmkeyval > cmkeyval.h
		rm cmkeyval

clean:;		rm -f $(OBJS) cmkeyval incversion

realclean:;	rm -f $(OBJS) cmkeyval cmkeyval.h cmfncs.h cmfnc.h \
			split.awk dependencies

checkout:;	$(CO) $(HDRS) $(SRCS) $(M4FILES) README Makefile

newversion:	incversion
		PATH=/bin:/usr/bin test -t 0
		$(CO) -l cmver.h
		./incversion < cmver.h > cmver.h.new
		mv cmver.h.new cmver.h
		$(CI) -u cmver.h

incversion:	incversion.c	
		$(CC) $(CFLAGS) -o $@ $@.c

depend:		dependencies
		rm -f junk
		sed '/^# DO NOT DELETE THIS LINE/,$$d' < $(MAKEFILE) > junk
		(echo '# DO NOT DELETE THIS LINE'; cat dependencies) >> junk
		mv junk $(MAKEFILE)
		rm dependencies

localdepend:;	rm -f junk
		sed -e '1,/^# DO NOT DELETE/!{ /:[ 	]*\//d; }' \
			< $(MAKEFILE) > junk
		mv junk $(MAKEFILE)

dependencies:	$(HDRS) site.h ccmdmd.c cmfbrk.unx
		for f in $(SRCS); do $(CPP) < $$f | \
		    sed -n '/^#[ 0-9line]*"\(..*\)\".*$$/ '"s||$$f: \1|p" | \
		    sort -u ; \
		done | sed -e 's|\.c: |.o: |' -e 's|: *\./|: |' > dependencies

cmfbrk.unx:;	$(CO) $@	

ccmdmd.c:;	$(CO) -p ccmdmd.unx > $@

install:	$(LIBRARY)
		install -c $(LIBRARY) $(DEST)/lib$(LIBRARY)
		ranlib $(DEST)/lib$(LIBRARY)

tags:           $(HDRS) $(SRCS); ctags $(HDRS) $(SRCS)

TAGS:		$(HDRS) $(SRCS); etags $(HDRS) $(SRCS)

ccmd.tar:	$(HDRS) $(SRCS) $(M4FILES) cmfbrk.unx ccmdmd.c README Makefile
		tar cf $@ README Makefile $(HDRS) $(SRCS) $(M4FILES) \
			cmfbrk.unx ccmdmd.c

update:         $(DEST)/$(LIBRARY)

$(DEST)/$(LIBRARY): $(SRCS) $(HDRS) $(EXTHDRS)
		@-ar xo $(DEST)/$(LIBRARY)
		@make -f $(MAKEFILE) DEST=$(DEST) install clean

# The rest of this file contains dependencies generated with
# "make depend" -- don't add anything below or it will go away.
# DO NOT DELETE THIS LINE
ccmd.o: ccmd.h
ccmd.o: ccmdmd.h
ccmd.o: cmfnc.h
ccmd.o: cmfncs.h
ccmd.o: cmkeyval.h
ccmd.o: datime.h
ccmd.o: machdep.h
ccmd.o: site.h
ccmdio.o: ccmd.h
ccmdio.o: ccmdmd.h
ccmdio.o: cmfnc.h
ccmdio.o: cmfncs.h
ccmdio.o: cmkeyval.h
ccmdio.o: datime.h
ccmdmd.o: ccmd.h
ccmdmd.o: ccmdmd.h
ccmdmd.o: cmfnc.h
ccmdmd.o: cmfncs.h
ccmdmd.o: cmkeyval.h
ccmdmd.o: datime.h
ccmdst.o: ccmd.h
ccmdst.o: ccmdmd.h
ccmdst.o: cmfnc.h
ccmdst.o: cmfncs.h
ccmdst.o: cmkeyval.h
ccmdst.o: datime.h
ccmdut.o: ccmd.h
ccmdut.o: ccmdmd.h
ccmdut.o: cmfnc.h
ccmdut.o: cmfncs.h
ccmdut.o: cmkeyval.h
ccmdut.o: datime.h
cmcfm.o: ccmd.h
cmcfm.o: ccmdmd.h
cmcfm.o: cmfnc.h
cmcfm.o: cmfncs.h
cmcfm.o: cmkeyval.h
cmcfm.o: datime.h
cmchar.o: ccmd.h
cmchar.o: ccmdmd.h
cmchar.o: cmfnc.h
cmchar.o: cmfncs.h
cmchar.o: cmkeyval.h
cmchar.o: datime.h
cmfil.o: ccmd.h
cmfil.o: ccmdmd.h
cmfil.o: cmfbrk.unx
cmfil.o: cmfil.h
cmfil.o: cmfnc.h
cmfil.o: cmfncs.h
cmfil.o: cmkeyval.h
cmfil.o: datime.h
cmfil.o: filelist.h
cmfld.o: ccmd.h
cmfld.o: ccmdmd.h
cmfld.o: cmfnc.h
cmfld.o: cmfncs.h
cmfld.o: cmkeyval.h
cmfld.o: datime.h
cmgrp.o: ccmd.h
cmgrp.o: ccmdmd.h
cmgrp.o: cmfnc.h
cmgrp.o: cmfncs.h
cmgrp.o: cmgrp.h
cmgrp.o: cmkeyval.h
cmgrp.o: datime.h
cmkey.o: ccmd.h
cmkey.o: ccmdmd.h
cmkey.o: cmfnc.h
cmkey.o: cmfncs.h
cmkey.o: cmkeyval.h
cmkey.o: datime.h
cmmisc.o: ccmd.h
cmmisc.o: ccmdmd.h
cmmisc.o: cmfnc.h
cmmisc.o: cmfncs.h
cmmisc.o: cmkeyval.h
cmmisc.o: datime.h
cmnoi.o: ccmd.h
cmnoi.o: ccmdmd.h
cmnoi.o: cmfnc.h
cmnoi.o: cmfncs.h
cmnoi.o: cmkeyval.h
cmnoi.o: datime.h
cmnum.o: ccmd.h
cmnum.o: ccmdmd.h
cmnum.o: cmfnc.h
cmnum.o: cmfncs.h
cmnum.o: cmkeyval.h
cmnum.o: datime.h
cmpara.o: ccmd.h
cmpara.o: ccmdmd.h
cmpara.o: cmfnc.h
cmpara.o: cmfncs.h
cmpara.o: cmkeyval.h
cmpara.o: datime.h
cmpara.o: machdep.h
cmpara.o: site.h
cmqst.o: ccmd.h
cmqst.o: ccmdmd.h
cmqst.o: cmfnc.h
cmqst.o: cmfncs.h
cmqst.o: cmkeyval.h
cmqst.o: datime.h
cmswi.o: ccmd.h
cmswi.o: ccmdmd.h
cmswi.o: cmfnc.h
cmswi.o: cmfncs.h
cmswi.o: cmkeyval.h
cmswi.o: datime.h
cmtad.o: ccmd.h
cmtad.o: ccmdmd.h
cmtad.o: cmfnc.h
cmtad.o: cmfncs.h
cmtad.o: cmkeyval.h
cmtad.o: datime.h
cmtok.o: ccmd.h
cmtok.o: ccmdmd.h
cmtok.o: cmfnc.h
cmtok.o: cmfncs.h
cmtok.o: cmkeyval.h
cmtok.o: datime.h
cmtxt.o: ccmd.h
cmtxt.o: ccmdmd.h
cmtxt.o: cmfnc.h
cmtxt.o: cmfncs.h
cmtxt.o: cmkeyval.h
cmtxt.o: datime.h
cmusr.o: ccmd.h
cmusr.o: ccmdmd.h
cmusr.o: cmfnc.h
cmusr.o: cmfncs.h
cmusr.o: cmkeyval.h
cmusr.o: cmusr.h
cmusr.o: datime.h
cmusr.o: machdep.h
cmusr.o: site.h
cmver.o: cmver.h
datime.o: datime.h
datime.o: dtpat.h
datime.o: tzone.h
dir.o: machdep.h
dir.o: site.h
filelist.o: ccmd.h
filelist.o: ccmdmd.h
filelist.o: cmfnc.h
filelist.o: cmkeyval.h
filelist.o: datime.h
filelist.o: filelist.h
filelist.o: machdep.h
filelist.o: site.h
stdact.o: ccmd.h
stdact.o: ccmdmd.h
stdact.o: cmfnc.h
stdact.o: cmfncs.h
stdact.o: cmkeyval.h
stdact.o: datime.h
test.o: ccmd.h
test.o: ccmdmd.h
test.o: cmfnc.h
test.o: cmkeyval.h
test.o: datime.h
skel.o: ccmd.h
skel.o: ccmdmd.h
skel.o: cmfnc.h
skel.o: cmkeyval.h
skel.o: datime.h
