#  Make WWW under unix for a.n.other unix system (bsd)
#   Use this as a template

#include "../../TkWWW/tkWWW.imake"

# For W3 distribution, machine type for subdirectories
WWW_MACH = unix.x

# The ASIS repository's name for the machine we are on
ASIS_MACH = hardware/os

#_________________ OK if normal W3 distribution
# Where is the WWW source root?
WWW = ../..

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

#	Common Makefile for W3 Library Code
#	-----------------------------------
#
#	(c) CERN 1990, 1991 -- see Copyright.html for conditions
#
# This file should be invariant between systems.
#	DEPENDENCIES NOT COMPLETE @@
#
#	make		Compile and link the software (private version)
#	make clean	Remove intermediate files

WC = $(WWW)/Library
CMN = $(WWW)/Library/Implementation/

# Where shall we put the objects and built library?

LOB = $(WTMP)/Library/$(WWW_MACH)

# Bug: This path, if relative, is taken relative to the directory
# in which this makefile is, not the pwd.  This screws up the 
# recursive invocation

#include "../../Library/Implementation/Version.make"

CFLAGS2 = $(CFLAGS) -I$(CMN)

CERNLIBBIN = $(WWW)/bin

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)/HTML.o $(LOB)/HTMLDTD.o $(LOB)/HTChunk.o \
	$(LOB)/HTPlain.o $(LOB)/HTWriter.o $(LOB)/HTFWriter.o \
	$(LOB)/HTMLGen.o \
	$(LOB)/HTAtom.o $(LOB)/HTAnchor.o $(LOB)/HTStyle.o \
	$(LOB)/HTList.o $(LOB)/HTString.o $(LOB)/HTAlert.o \
	$(LOB)/HTRules.o $(LOB)/HTFormat.o $(LOB)/HTInit.o $(LOB)/HTMIME.o \
	$(LOB)/HTHistory.o $(LOB)/HTNews.o $(LOB)/HTGopher.o \
	$(LOB)/HTTelnet.o  $(LOB)/HTWSRC.o $(HTWAIS)

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)HTML.c	\
	$(CMN)HTMLDTD.c \
	$(CMN)HTPlain.c	$(CMN)HTWriter.c  $(CMN)HTFWriter.c $(CMN)HTMLGen.c	\
	$(CMN)HTChunk.c $(CMN)HTAtom.c   $(CMN)HTAnchor.c $(CMN)HTStyle.c \
	$(CMN)HTList.c  $(CMN)HTString.c $(CMN)HTAlert.c $(CMN)HTRules.c \
	$(CMN)HTFormat.c $(CMN)HTInit.c $(CMN)HTMIME.c $(CMN)HTHistory.c \
	$(CMN)HTNews.c  $(CMN)HTGopher.c $(CMN)HTTelnet.c \
	$(CMN)HTWAIS.c  $(CMN)HTWSRC.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)HTWriter.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)HTAlert.h $(CMN)HTRules.h \
	$(CMN)HTFormat.h $(CMN)HTInit.h \
	$(CMN)HTMIME.h $(CMN)HTHistory.h $(CMN)HTNews.h \
	$(CMN)HTGopher.h \
	$(CMN)HTUtils.h $(CMN)tcp.h $(CMN)WWW.h $(CMN)HText.h \
	$(CMN)HTTelnet.h \
	$(CMN)HTWAIS.h  $(CMN)HTWSRC.h

SOURCES = $(CFILES) $(HFILES) $(CMN)Version.make $(CMN)CommonMakefile \
	$(WWW)/README.txt $(WWW)/Copyright.txt $(WWW)/BUILD
SPECIFIC = $(WWW)/All/*/Makefile.include $(WWW)/All/Implementation/Makefile*


#	Library
#
#  On SGI, ranlib is unnecessary and does not exist so we ignore errors
# for that step
all: $(LOB)/libwww.a
	$(MV) $(LOB)/libwww.a $(WC)/$(WWW_MACH)

$(LOB)/libwww.a : $(COMMON)
	ar r $(LOB)/libwww.a $(COMMON)
	-ranlib $(LOB)/libwww.a

#	Clean up everything generatable except final products
clean ::
	$(RM) $(LOB)/*.o $(LOB)/.created
	-rmdir $(LOB)

#	Clean up everything generatable including final products

cleanall :: clean
	$(RM) $(LOB)/libwww.a

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

#	Directory for object files - .created checks it exists

OE = $(LOB)/.created
$(OE) :
	-mkdir $(WTMP)
	-mkdir $(WTMP)/Library
	-mkdir $(WTMP)/Library/$(WWW_MACH)
	touch $@

$(LOB)/HTList.o : $(OE) $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTList.c

$(LOB)/HTAnchor.o : $(OE) $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAnchor.c

$(LOB)/HTFormat.o : $(OE) $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFormat.c

$(LOB)/HTInit.o : $(OE) $(CMN)HTInit.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTInit.c

$(LOB)/HTMIME.o : $(OE) $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMIME.c

$(LOB)/HTHistory.o : $(OE) $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTHistory.c

$(LOB)/HTNews.o : $(OE) $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTNews.c

$(LOB)/HTGopher.o : $(OE) $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTGopher.c

$(LOB)/HTTelnet.o : $(OE) $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTelnet.c

$(LOB)/HTStyle.o : $(OE) $(CMN)HTStyle.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTStyle.c

$(LOB)/HTAtom.o : $(OE) $(CMN)HTAtom.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAtom.c

$(LOB)/HTChunk.o : $(OE) $(CMN)HTChunk.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTChunk.c

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

$(LOB)/HTAlert.o : $(OE) $(CMN)HTAlert.c $(CMN)HTUtils.h $(CMN)Version.make
	$(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTAlert.c

$(LOB)/HTRules.o : $(OE) $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make
	$(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTRules.c

$(LOB)/SGML.o : $(OE) $(CMN)SGML.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)SGML.c

$(LOB)/HTML.o : $(OE) $(CMN)HTML.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTML.c

$(LOB)/HTMLGen.o : $(OE) $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLGen.c

$(LOB)/HTMLDTD.o : $(OE) $(CMN)HTMLDTD.c $(CMN)SGML.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLDTD.c

$(LOB)/HTPlain.o : $(OE) $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTPlain.c

$(LOB)/HTWAIS.o : $(OE) $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(WAISINC) $(CMN)HTWAIS.c

$(LOB)/HTWSRC.o : $(OE) $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWSRC.c

$(LOB)/HTWriter.o : $(OE) $(CMN)HTWriter.c $(CMN)HTWriter.h $(CMN)HTStream.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWriter.c

$(LOB)/HTFWriter.o : $(OE) $(CMN)HTFWriter.c $(CMN)HTFWriter.h $(CMN)HTStream.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFWriter.c

#	Communications & Files

$(LOB)/HTTP.o : $(OE) $(CMN)HTTP.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTP.c

$(LOB)/HTTCP.o : $(OE) $(CMN)HTTCP.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTCP.c

$(LOB)/HTFile.o : $(OE) $(CMN)HTFile.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFile.c

$(LOB)/HTBTree.o : $(OE) $(CMN)HTBTree.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTBTree.c

$(LOB)/HTFTP.o : $(OE) $(CMN)HTFTP.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFTP.c

$(LOB)/HTAccess.o : $(OE)  $(CMN)HTAccess.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAccess.c

$(LOB)/HTParse.o : $(OE) $(CMN)HTParse.c $(CMN)HTUtils.h
	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTParse.c


