# $LynxId: makefile.in,v 1.30 2010/09/19 19:29:35 tom Exp $
# Make WWW under unix for a.n.other unix system (bsd)
# Use this as a template

# For W3 distribution, machine type for subdirectories
WWW_MACH	= Implementation
WWWINC		= $(top_srcdir)/WWW/Library/Implementation

ECHO =		
LFLAGS =

prefix		= /usr/local
exec_prefix	= ${prefix}
top_srcdir	= ../../..
srcdir		= .


LYFLAGS		= # FIXME: set in parent makefile

CC		= /usr/local/bin/gcc
DEFS		= -DHAVE_CONFIG_H
EXTRA_CPPFLAGS	= 
CPPFLAGS	=   -D_XOPEN_SOURCE=500  -D_POSIX_C_SOURCE=199506L

AR		= ar
ARFLAGS		= -curv

RANLIB		= ranlib

o		= .o
x		= 

INTLDIR_CPPFLAGS= # -I$(top_srcdir)/intl

CPP		= /usr/local/bin/gcc -E
CPPOPTS		= $(DEFS) $(LYFLAGS) \
		-I../../.. \
		-I../../../src \
		-I$(top_srcdir) \
		-I$(top_srcdir)/src \
		$(INTLDIR_CPPFLAGS) -I$(WWWINC) $(EXTRA_CPPFLAGS) $(CPPFLAGS)

LY_CFLAGS	= -O0 
CFLAGS		= $(CPPOPTS) $(LY_CFLAGS)

LINT		= 
LINTOPTS	=

CTAGS		= ctags

# Directory for installed binary:
BINDIR		= ${exec_prefix}/bin

# Where is the W3 object library to be installed (not normally done)?
#_________________ OK if normal W3 distribution
# Where is the WWW source root?
WWW = $(top_srcdir)/WWW

#  Where should temporary (object) files go?
WTMP = ../..

# (Version.make)
VC = 2.14
#______________________________________________________________________
# (originally CommonMakefile)

#  If this env var is set to something else Some makes will use that instead
SHELL = /bin/sh

#	.h files are distributed but originally are made from the
#	self-documenting hypertext files.

.SUFFIXES: .h .html
.html.h:
#	- chmod +w $*.h
	www -w90 -na -to text/x-c $*.html > $*.h
#	chmod -w $*.h

# If this is actually run in a subdirectory,
#
# WWW = ../../..
# WWW = ../..	For [cernlib] build in this directory

CMN = $(WWW)/Library/Implementation/

# Where shall we put the objects and built library?

LOB = .

# Only needed if HTWAIS.c is to be compiled. Put into your Makefile.include
#  uncomment these and fill in WAISINC for adding direct wais access
#  to Lynx.
#HTWAIS_c = $(CMN)/HTWAIS.c
#HTWAIS_o = $(LOB)/HTWAIS$o
#WAIS = YES
#WAISINC = -I../../../../freeWAIS-0.202/ir
#WAISCFLAGS = -DDIRECT_WAIS
#

# add -DNEW_GATEWAY here for the new gateway config stuff
CFLAGS2 = $(CFLAGS) $(LYFLAGS) $(WAISCFLAGS) -I$(CMN) -DACCESS_AUTH

COMPILE	= $(ECHO) $(CC) $(CFLAGS2) -c

COMMON = $(LOB)/HTParse$o $(LOB)/HTAccess$o $(LOB)/HTTP$o \
	$(LOB)/HTFile$o	$(LOB)/HTBTree$o $(LOB)/HTFTP$o $(LOB)/HTTCP$o \
	$(LOB)/SGML$o $(LOB)/HTMLDTD$o $(LOB)/HTChunk$o \
	$(LOB)/HTPlain$o \
	$(LOB)/HTMLGen$o \
	$(LOB)/HTAtom$o $(LOB)/HTAnchor$o $(LOB)/HTStyle$o \
	$(LOB)/HTList$o $(LOB)/HTString$o \
	$(LOB)/HTRules$o $(LOB)/HTFormat$o  $(LOB)/HTMIME$o \
	$(LOB)/HTNews$o  $(LOB)/HTGopher$o \
	$(LOB)/HTTelnet$o $(LOB)/HTFinger$o $(LOB)/HTWSRC$o $(HTWAIS_o) \
	$(LOB)/HTAAUtil$o $(LOB)/HTAABrow$o \
	$(LOB)/HTGroup$o \
	$(LOB)/HTAAProt$o \
	$(LOB)/HTAssoc$o  $(LOB)/HTLex$o    $(LOB)/HTUU$o \
	$(LOB)/HTDOS$o

CFILES = $(CMN)HTParse.c $(CMN)HTAccess.c $(CMN)HTTP.c $(CMN)HTFile.c \
	$(CMN)HTBTree.c \
	$(CMN)HTFTP.c	$(CMN)HTTCP.c	  $(CMN)SGML.c \
	$(CMN)HTMLDTD.c \
	$(CMN)HTPlain.c	\
	$(CMN)HTMLGen.c \
	$(CMN)HTChunk.c $(CMN)HTAtom.c    $(CMN)HTAnchor.c $(CMN)HTStyle.c \
	$(CMN)HTList.c  $(CMN)HTString.c  $(CMN)HTRules.c \
	$(CMN)HTFormat.c $(CMN)HTMIME.c \
	$(CMN)HTNews.c  $(CMN)HTGopher.c  $(CMN)HTTelnet.c \
	$(CMN)HTFinger.c $(HTWAIS_c)	  $(CMN)HTWSRC.c \
	$(CMN)HTAABrow.c \
	$(CMN)HTGroup.c  \
	$(CMN)HTAAProt.c \
	$(CMN)HTAssoc.c  $(CMN)HTLex.c    $(CMN)HTUU.c

HFILES = $(CMN)HTParse.h $(CMN)HTAccess.h $(CMN)HTTP.h $(CMN)HTFile.h \
	$(CMN)HTBTree.h $(CMN)HTFTP.h $(CMN)HTTCP.h \
	$(CMN)SGML.h $(CMN)HTML.h $(CMN)HTMLDTD.h $(CMN)HTChunk.h \
	$(CMN)HTPlain.h	\
	$(CMN)HTFWriter.h	$(CMN)HTMLGen.h \
	$(CMN)HTStream.h \
	$(CMN)HTAtom.h $(CMN)HTAnchor.h $(CMN)HTStyle.h \
	$(CMN)HTList.h \
	$(CMN)HTString.h $(CMN)HTRules.h \
	$(CMN)HTFormat.h $(CMN)HTInit.h \
	$(CMN)HTMIME.h $(CMN)HTNews.h \
	$(CMN)HTGopher.h \
	$(CMN)HTUtils.h $(CMN)www_tcp.h $(CMN)HText.h \
	$(CMN)HTTelnet.h $(CMN)HTFinger.h \
	$(CMN)HTWAIS.h  $(CMN)HTWSRC.h \
	$(CMN)HTAABrow.h \
	$(CMN)HTGroup.h  \
	$(CMN)HTAAProt.h \
	$(CMN)HTAssoc.h  $(CMN)HTLex.h    $(CMN)HTUU.h

C_SRC		= $(COMMON:$o=.c)

all : $(LOB)/libwww.a

lint:
	$(LINT) $(LINTOPTS) $(CPPOPTS) $(C_SRC) 2>&1 |tee ../../../lint.libwww

.SUFFIXES: $o .i .h .html

.c$o:
	
	$(CC) $(CPPOPTS) $(CFLAGS) -c $(srcdir)/$*.c

.c.i:
	
	$(CPP) -C $(CPPOPTS) $(srcdir)/$*.c >$@

depend :
	makedepend -fmakefile -- $(CFLAGS) -- $(CFILES)

#	Library
#
#  On SGI, ranlib is unnecessary and does not exist so we ignore errors
# for that step
$(LOB)/libwww.a : $(COMMON)
	$(AR) $(ARFLAGS) $(LOB)/libwww.a $(COMMON)
	-$(RANLIB) $(LOB)/libwww.a

#	Clean up everything generatable except final products
clean :
	rm -f core *.core *.leaks *.[oi] *.bak tags TAGS
	rm -f dtd_util$x
	rm -f $(LOB)/*$o

distclean : clean
	@echo made $@

tags:
	$(CTAGS) *.[ch]

#			Common code
#			-----------

$(LOB)/HTList$o : $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTList.c

$(LOB)/HTAnchor$o : $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTAnchor.c

$(LOB)/HTFormat$o : $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTFormat.c

$(LOB)/HTMIME$o : $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTMIME.c

$(LOB)/HTNews$o : $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h\
	 $(CMN)HTMLDTD.h
	$(COMPILE) $(CMN)HTNews.c

$(LOB)/HTGopher$o : $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h \
	 $(CMN)HTMLDTD.h
	$(COMPILE) $(CMN)HTGopher.c

$(LOB)/HTTelnet$o : $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h $(CMN)../../../userdefs.h
	$(COMPILE) $(CMN)HTTelnet.c

$(LOB)/HTFinger$o : $(CMN)HTFinger.c $(CMN)HTUtils.h $(CMN)HTList.h \
	$(CMN)HTMLDTD.h
	$(COMPILE) $(CMN)HTFinger.c

$(LOB)/HTStyle$o : $(CMN)HTStyle.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTStyle.c

$(LOB)/HTAtom$o : $(CMN)HTAtom.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTAtom.c

$(LOB)/HTChunk$o : $(CMN)HTChunk.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTChunk.c

$(LOB)/HTString$o : $(CMN)HTString.c $(CMN)HTUtils.h $(CMN)Version.make
	$(COMPILE) -DVC=\"$(VC)\" $(CMN)HTString.c

$(LOB)/HTRules$o : $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make \
	 $(CMN)HTAAProt.h
	$(COMPILE) -DVC=\"$(VC)\" $(CMN)HTRules.c

$(LOB)/SGML$o : $(CMN)SGML.c $(CMN)HTUtils.h $(CMN)UCAux.h
	$(COMPILE) $(CMN)SGML.c

$(LOB)/HTMLGen$o : $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
	$(COMPILE) $(CMN)HTMLGen.c

$(LOB)/HTMLDTD$o : $(CMN)HTMLDTD.c $(CMN)SGML.h
	$(COMPILE) $(CMN)HTMLDTD.c

$(LOB)/HTPlain$o : $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h \
	 $(CMN)UCAux.h
	$(COMPILE) $(CMN)HTPlain.c

$(LOB)/HTWAIS$o : $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(WAISINC) $(CMN)HTWAIS.c

$(LOB)/HTWSRC$o : $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTWSRC.c

#	Access Authorization

$(LOB)/HTAAUtil$o : $(CMN)HTAAUtil.c $(CMN)HTAAUtil.h \
	 $(CMN)HTUtils.h $(CMN)HTString.h
	$(COMPILE) $(CMN)HTAAUtil.c

$(LOB)/HTGroup$o : $(CMN)HTGroup.c $(CMN)HTGroup.h \
	 $(CMN)HTAAUtil.h \
	 $(CMN)HTAssoc.h $(CMN)HTLex.h
	$(COMPILE) $(CMN)HTGroup.c

$(LOB)/HTAABrow$o : $(CMN)HTAABrow.c $(CMN)HTAABrow.h \
	 $(CMN)HTAAUtil.h $(CMN)HTUU.h \
	 $(CMN)HTUtils.h $(CMN)HTString.h \
	 $(CMN)HTParse.h $(CMN)HTList.h \
	 $(CMN)HTAssoc.h
	$(COMPILE) $(CMN)HTAABrow.c

$(LOB)/HTAAProt$o : $(CMN)HTAAProt.c $(CMN)HTAAProt.h \
	 $(CMN)HTUtils.h $(CMN)HTAAUtil.h \
	 $(CMN)HTAssoc.h $(CMN)HTLex.h
	$(COMPILE) $(CMN)HTAAProt.c

$(LOB)/HTAssoc$o : $(CMN)HTAssoc.c $(CMN)HTAssoc.h \
	$(CMN)HTUtils.h $(CMN)HTString.h $(CMN)HTList.h
	$(COMPILE) $(CMN)HTAssoc.c

$(LOB)/HTLex$o : $(CMN)HTLex.c $(CMN)HTLex.h $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTLex.c

$(LOB)/HTUU$o : $(CMN)HTUU.c $(CMN)HTUU.h $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTUU.c


#	Communications & Files

$(LOB)/HTTP$o : $(CMN)HTTP.c $(CMN)HTUtils.h $(CMN)HTAABrow.h
	$(COMPILE) $(CMN)HTTP.c

$(LOB)/HTTCP$o : $(CMN)HTTCP.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTTCP.c

$(LOB)/HTFile$o : $(CMN)HTFile.c $(CMN)HTUtils.h \
	 $(CMN)HTMLDTD.h
	$(COMPILE) $(CMN)HTFile.c

$(LOB)/HTBTree$o : $(CMN)HTBTree.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTBTree.c

$(LOB)/HTFTP$o : $(CMN)HTFTP.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTFTP.c

$(LOB)/HTAccess$o : $(CMN)HTAccess.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTAccess.c

$(LOB)/HTParse$o : $(CMN)HTParse.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTParse.c

$(LOB)/HTVMS_WaisUI$o : $(CMN)HTVMS_WaisUI.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTVMS_WaisUI.c

$(LOB)/HTDOS$o : $(CMN)HTDOS.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)HTDOS.c

# Utilities
$(LOB)/dtd_util$o : $(CMN)dtd_util.c $(CMN)HTUtils.h
	$(COMPILE) $(CMN)dtd_util.c

DTD_UTIL = $(LOB)/dtd_util$o $(LOB)/HTMLDTD$o

sources: dtd_util$x src0_HTMLDTD.txt src1_HTMLDTD.txt
	-rm -f *_HTMLDTD.h
	./dtd_util$x -l src0_HTMLDTD.txt -s -c -o src0_HTMLDTD.h
	./dtd_util$x -l src1_HTMLDTD.txt -t -c -o src1_HTMLDTD.h
	./dtd_util$x -l src0_HTMLDTD.txt -s -h -o hdr_HTMLDTD.h

dtd_util$x: $(DTD_UTIL)
	$(CC) $(CC_OPTS) $(LDFLAGS) -o $@  $(DTD_UTIL) $(LIBS)

check: dtd_util$x
	@echo "** comparing builtin src0_HTMLDTD.txt"
	./dtd_util$x >HTMLDTD.log
	-diff -u src0_HTMLDTD.txt HTMLDTD.log

	@echo "** comparing reloaded src0_HTMLDTD.txt"
	./dtd_util$x -l src0_HTMLDTD.txt >HTMLDTD.log
	-diff -u src0_HTMLDTD.txt HTMLDTD.log

	@echo "** comparing header generated from builtin"
	./dtd_util$x -s -h -o HTMLDTD.log
	-diff -u hdr_HTMLDTD.h HTMLDTD.log
	./dtd_util$x -t -h -o HTMLDTD.log
	-diff -u hdr_HTMLDTD.h HTMLDTD.log

	@echo "** comparing header generated by load"
	./dtd_util$x -s -h -o HTMLDTD.log -l src0_HTMLDTD.txt
	-diff -u hdr_HTMLDTD.h HTMLDTD.log
	./dtd_util$x -t -h -o HTMLDTD.log -l src1_HTMLDTD.txt
	-diff -u hdr_HTMLDTD.h HTMLDTD.log

	@echo "** comparing strict source generated from builtin"
	./dtd_util$x -s -c -o HTMLDTD.log
	-diff -u src0_HTMLDTD.h HTMLDTD.log

	@echo "** comparing strict source generated by load"
	./dtd_util$x -s -c -o HTMLDTD.log -l src0_HTMLDTD.txt
	-diff -u src0_HTMLDTD.h HTMLDTD.log

	@echo "** comparing tagsoup source generated from builtin"
	./dtd_util$x -t -c -o HTMLDTD.log
	-diff -u src1_HTMLDTD.h HTMLDTD.log

	@echo "** comparing tagsoup source generated by load"
	./dtd_util$x -t -c -o HTMLDTD.log -l src1_HTMLDTD.txt
	-diff -u src1_HTMLDTD.h HTMLDTD.log

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