# $LynxId: makefile.in,v 1.35 2021/07/16 20:01:00 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		= /dev/env/DJDIR
exec_prefix	= ${prefix}
datarootdir	= ${prefix}/share
top_srcdir	= ../../.././..
srcdir		= ../../.././../WWW/Library/Implementation
VPATH		= $(srcdir)

LYFLAGS		= # FIXME: set in parent makefile

CC		= gcc
DEFS		= -DHAVE_CONFIG_H
EXTRA_CPPFLAGS	= 
CPPFLAGS	= -I/dev/env/WATT_ROOT/inc -I/dev/env/DJDIR/include -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=199506L -DDOSPATH -DNOUSERS -I/dev/env/DJDIR/lib/../include -I/dev/env/DJDIR/include/openssl

AR		= ar
ARFLAGS		= -curvU

RANLIB		= ranlib

o		= .o
x		= .exe

INTLDIR_CPPFLAGS= # -I$(top_srcdir)/intl

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

LY_CFLAGS	= -g2 -O2 -std=gnu99 -march=i386 -mtune=i586  
CFLAGS		= $(CPPOPTS) $(LY_CFLAGS)

LINT		= 
LINTOPTS	=

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

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

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

HTAABROW_H      = $(CMN)HTAABrow.h  $(CMN)HTAAUtil.h
HTAAPROT_H      = $(CMN)HTAAProt.h  $(CMN)HTGroup.h  $(CMN)HTAssoc.h
HTAAUTIL_H      = $(CMN)HTAAUtil.h  $(CMN)HTList.h
HTACCESS_H      = $(CMN)HTAccess.h  $(CMN)HTAnchor.h $(CMN)HTFormat.h
HTANCHOR_H      = $(CMN)HTAnchor.h  $(CMN)HTList.h   $(CMN)HTBTree.h $(CMN)HTChunk.h $(CMN)HTAtom.h $(CMN)UCDefs.h $(CMN)HTFormat.h
HTASSOC_H       = $(CMN)HTAssoc.h   $(CMN)HTList.h
HTATOM_H        = $(CMN)HTAtom.h    $(CMN)HTList.h
HTBTREE_H       = $(CMN)HTBTree.h   $(CMN)HTUtils.h
HTCJK_H         = $(CMN)HTCJK.h     $(CMN)HTUtils.h
HTCHUNK_H       = $(CMN)HTChunk.h   $(CMN)HTUtils.h  $(CMN)UCMap.h
HTDOS_H         = $(CMN)HTDOS.h     $(CMN)HTUtils.h
HTFTP_H         = $(CMN)HTFTP.h     $(CMN)HTAnchor.h $(CMN)HTStream.h $(CMN)HTParse.h
HTFWRITER_H     = $(CMN)HTFWriter.h $(CMN)HTStream.h $(CMN)HTFormat.h
HTFILE_H        = $(CMN)HTFile.h    $(CMN)HTFormat.h $(CMN)HTAccess.h $(APP)HTML.h
HTFINGER_H      = $(CMN)HTFinger.h  $(CMN)HTAccess.h $(CMN)HTAnchor.h
HTFORMAT_H      = $(CMN)HTFormat.h  $(CMN)HTStream.h $(CMN)HTAtom.h $(CMN)HTList.h $(CMN)HTAnchor.h $(CMN)HTChunk.h
HTGOPHER_H      = $(CMN)HTGopher.h  $(CMN)HTAccess.h $(CMN)HTAnchor.h
HTGROUP_H       = $(CMN)HTGroup.h   $(CMN)HTList.h
HTINIT_H        = $(CMN)HTInit.h    $(CMN)HTUtils.h
HTLEX_H         = $(CMN)HTLex.h     $(CMN)HTUtils.h
HTLIST_H        = $(CMN)HTList.h    $(CMN)HTUtils.h
HTMIME_H        = $(CMN)HTMIME.h    $(CMN)HTStream.h $(CMN)HTAnchor.h
HTMLDTD_H       = $(CMN)HTMLDTD.h   $(CMN)SGML.h     $(APP)HTFont.h $(CMN)hdr_HTMLDTD.h
HTMLGEN_H       = $(CMN)HTMLGen.h   $(APP)HTML.h $(CMN)HTStream.h
HTNEWS_H        = $(CMN)HTNews.h    $(HTTLS_H)   $(CMN)HTAccess.h $(CMN)HTAnchor.h
HTPARSE_H       = $(CMN)HTParse.h   $(CMN)HTUtils.h
HTPLAIN_H       = $(CMN)HTPlain.h   $(CMN)HTStream.h $(CMN)HTAnchor.h
HTRULES_H       = $(CMN)HTRules.h   $(CMN)HTUtils.h
HTSTREAM_H      = $(CMN)HTStream.h  $(CMN)HTUtils.h
HTSTRING_H      = $(CMN)HTString.h  $(CMN)HTUtils.h
HTSTYLE_H       = $(CMN)HTStyle.h   $(CMN)HTAnchor.h
HTTCP_H         = $(CMN)HTTCP.h     $(CMN)HTUtils.h
HTTLS_H         = $(CMN)HTTLS.h     $(CMN)HTUtils.h
HTTP_H          = $(CMN)HTTP.h      $(CMN)HTAccess.h
HTTELNET_H      = $(CMN)HTTelnet.h  $(CMN)HTAccess.h
HTUU_H          = $(CMN)HTUU.h      $(CMN)HTUtils.h
HTUTILS_H       = $(CMN)HTUtils.h   $(TOP)lynx_cfg.h $(CMN)HTString.h $(CMD)LYexit.h $(top_srcdir)/userdefs.h 
HTWAIS_H        = $(CMN)HTWAIS.h    $(CMN)HTAccess.h
HTWSRC_H        = $(CMN)HTWSRC.h    $(CMN)HTFormat.h
HTEXT_H         = $(CMN)HText.h     $(CMN)HTAnchor.h $(CMN)HTStyle.h $(CMN)HTStream.h $(CMN)SGML.h
LYLEAKS_H       = $(CMN)LYLeaks.h   $(CMN)HTUtils.h
LYEXIT_H        = $(CMN)LYexit.h    $(CMN)HTUtils.h
SGML_H          = $(CMN)SGML.h      $(CMN)HTStream.h $(CMN)HTAnchor.h $(APP)LYJustify.h
UCAUX_H         = $(CMN)UCAux.h     $(CMN)HTUtils.h $(CMN)UCDefs.h $(CMN)HTStream.h $(CMN)UCMap.h
UCDEFS_H        = $(CMN)UCDefs.h    $(CMN)HTUtils.h
UCMAP_H         = $(CMN)UCMap.h     $(CMN)HTUtils.h
SRC0_HTMLDTD_H  = $(CMN)src0_HTMLDTD.h $(HTMLDTD_H)
SRC1_HTMLDTD_H  = $(CMN)src1_HTMLDTD.h $(HTMLDTD_H)
WWW_WAIT_H      = $(CMN)www_wait.h  $(CMN)HTUtils.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) $(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)

DIFFC	= diff -u -I LynxId
check: dtd_util$x
	@echo "** comparing builtin src0_HTMLDTD.txt"
	./dtd_util$x >HTMLDTD.log
	-$(DIFFC) src0_HTMLDTD.txt HTMLDTD.log

	@echo "** comparing reloaded src0_HTMLDTD.txt"
	./dtd_util$x -l src0_HTMLDTD.txt >HTMLDTD.log
	-$(DIFFC) src0_HTMLDTD.txt HTMLDTD.log

	@echo "** comparing reloaded src1_HTMLDTD.txt"
	./dtd_util$x -t -l src1_HTMLDTD.txt >HTMLDTD.log
	-$(DIFFC) src1_HTMLDTD.txt HTMLDTD.log

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

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

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

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

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

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

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