#
# libfiles/Makefile:
#
# Copyright (c) 2000 James McKenzie <james@fishsoup.dhs.org>,
# All rights reserved.
#
# $Id: Makefile,v 1.17 2002/06/23 17:16:39 root Exp root $
#
# $Log: Makefile,v $
# Revision 1.17  2002/06/23 17:16:39  root
# #
#
# Revision 1.16  2001/10/04 18:00:36  root
# #
#
# Revision 1.15  2001/01/30 06:16:18  root
# #
#
# Revision 1.14  2000/12/01 04:13:42  root
# #
#
# Revision 1.13  2000/11/23 23:45:19  root
# #
#
# Revision 1.12  2000/10/07 18:30:03  root
# #
#
# Revision 1.11  2000/10/06 19:52:18  root
# #
#
# Revision 1.10  2000/09/24 01:58:21  root
# #
#
# Revision 1.9  2000/09/24 01:48:12  root
# #
#
#

include make.inc


PSRCS= inode.c eweid.c util.c mtd.c uri.c text.c filesystem.c collection.c group.c http.c work.c user.c buffer.c history.c

SRCS=object.c ${PSRCS}
YSRCS=mtd_file.y
LSRCS=mtd_file.lex
HSRCS=libfiles.src.h project.h collection.h object.h libfiles.pst.h libfiles.pre.h


OBJ=libfiles.o
LIB=libfiles.a
LIBS=${DBLIB} 
PROTOSE=ext_protos.h
PROTOSI=int_protos.h

RCSGUFF=${SRCS} ${HSRCS} ${YSRCS} ${LSRCS} builddb.c Makefile buildhtml.c


OBJS=${SRCS:%.c=%.o} ${YSRCS:%.y=%.yy.o} ${LSRCS:%.lex=%.tab.o}

YGUFF=${YSRCS:%.y=%.yy.c} ${LSRCS:%.lex=%.tab.c} ${LSRCS:%.lex=%.tab.h}

DEFINES= #-DYYDEBUG=1

INCLUDES  = -I../shared ${DBINC}
CFLAGS= $(OPT) $(DEFINES) $(INCLUDES)  ${WARN} 

all:builddb ${LIB}  buildhtml

${LIB}:${LIB}(${OBJS})

buildhtml:buildhtml.o ${LIB}
	${CC} ${CFLAGS} -o $@ buildhtml.o ${LIB} ${LIBS}

builddb:builddb.o ${LIB}
	${CC} ${CFLAGS} -o $@ builddb.o ${LIB} ${LIBS}

buildhtml.o: libfiles.h
builddb.o: libfiles.h

libfiles.h:${HSRCS} ${PROTOSE} 
	cat libfiles.pre.h > $@
	${PRECOMPILE} libfiles.src.h | grep -v '^# ' >> $@
	cat libfiles.pst.h >> $@
	-${INDENT} -i2 -ts0 libfiles.h

${LIB}(%.o):%.o
	ar rcs ${LIB} $<

%.o:%.c libfiles.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

%.tab.c:%.y
	${YACC} -d -b ${@:%.tab.c=%} $<

%.tab.h:%.y
	${YACC} -d -b ${@:%.tab.h=%} $<

%.yy.c:%.lex
	${LEX} -o$@ $<

mtd_file.yy.o:mtd_file.tab.h

clean:
	/bin/rm -rf *% *~ ${OBJS} core a.out ${LIB} libfiles.h
	/bin/rm -rf ${YGUFF} builddb.o builddb buildhtml.o buildhtml

depend: libfiles.h ${HSRCS} ${PROTOSE} ${PROTOSI}
	${MAKEDEPEND} -f- -s "# DO NOT DELETE" -- $(INCLUDES) -- $(SRCS) builddb.c buildhtml.c  > .depend
nodepend:
	/bin/rm -f .depend

protos:
	echo > ${PROTOSE}
	echo > ${PROTOSI}
	echo > protos.tmp
	/bin/rm -f libfiles.h
	${MAKE} libfiles.h
	for i in ${PSRCS}; do ${CPROTO} -U__GNUC__ -DEXTERNAL= -v ${INCLUDES} $$i | grep -v ^__ >> protos.tmp; done
	cat protos.tmp > ${PROTOSE}
	echo > protos.tmp
	for i in ${PSRCS}; do ${CPROTO} -U__GNUC__ -DINTERNAL= -v ${INCLUDES} $$i | grep -v ^__ >> protos.tmp; done
	cat protos.tmp > ${PROTOSI}
	/bin/rm -f protos.tmp

checkin:
	${RCSCI} -m# -l ${RCSGUFF}
	
tidy:checkin
	${INDENT} -kr -di1 -ts0 -i2 ${SRCS} ${HS} builddb.c buildhtml.c

ifeq (.depend,$(wildcard .depend))
  include .depend
endif

