#	Makefile for WorldWideWeb Character Grid browser (www)
#	(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 install	Copy it into the system (implies make)
#	make update	Copy installed version into installed version
#	make uninstall	Unlink installed version from the system
#	make clean	Remove intermediate files
#	make cleanall	Remove intremediate files and products
#	
# Macros required to be defined already for make:
#
# CC		The C compiler
# CFLAGS	Flags for $(CC)
# LFLAGS	Flags for ld
#
# Macros needed for make install:
#
# BINDIR	Directory for installed binary
#______________________________________________________________________

# Assume that this is actually run in a subdirectory.

# WWW = ../../..
WWW = ..	

LM =  ./
CMN = ../Library/Implementation/
DMN = ../Daemon/Implementation/
#DEFAULTS = $(WWW)/LineMode/Defaults
CFLAGS =  -I$(LM) -I$(CMN) -g -DDEBUG -DAIX

COMMON = HTParse.o HTAccess.o HTTP.o HTFile.o HTFTP.o HTTCP.o \
	SGML.o HTML.o HTChunk.o HTAtom.o  HTStyle.o HTList.o \
	HTString.o HTFormat.o HTHistory.o HTNews.o HTGopher.o

DAEMON = HTDaemon.o 

OBJS = HTMLgate.o DefaultStyles.o HTAnchor.o $(COMMON) $(DAEMON)
# V for viola
# VOBJS = HTBrowse_v.o GridText_v.o $(COMMON) DefaultStyles.o


HTMLGate :	$(OBJS)
	$(CC) $(CFLAGS) -o HTMLGate  $(OBJS) $(LFLAGS)

HTMLgate.o : $(LM)HTMLgate.c $(CMN)HTUtils.h  
	$(CC) -c $(CFLAGS) $(LM)HTMLgate.c

DefaultStyles.o : $(LM)DefaultStyles.c $(CMN)HTUtils.h  
	$(CC) -c $(CFLAGS) $(LM)DefaultStyles.c

HTAnchor.o : $(LM)HTAnchor.c $(CMN)HTUtils.h  
	$(CC) -c $(CFLAGS) $(LM)HTAnchor.c


# 			Daemon code

HTDaemon.o : $(DMN)HTDaemon.c $(CMN)HTUtils.h 
	$(CC) -c  $(CFLAGS) $(DMN)HTDaemon.c

# 			Common code

HTList.o : $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c  $(CFLAGS) $(CMN)HTList.c

HTFormat.o : $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c  $(CFLAGS) $(CMN)HTFormat.c

HTHistory.o : $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c  $(CFLAGS) $(CMN)HTHistory.c

HTNews.o : $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c  $(CFLAGS) $(CMN)HTNews.c

HTGopher.o : $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h
	$(CC) -c  $(CFLAGS) $(CMN)HTGopher.c

HTStyle.o : $(CMN)HTStyle.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTStyle.c

HTAtom.o : $(CMN)HTAtom.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTAtom.c

HTChunk.o : $(CMN)HTChunk.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTChunk.c

HTString.o : $(CMN)HTString.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTString.c

SGML.o : $(CMN)SGML.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)SGML.c

HTML.o : $(CMN)HTML.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTML.c

#	Communications & Files

HTTP.o : $(CMN)HTTP.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTTP.c

HTTCP.o : $(CMN)HTTCP.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTTCP.c

HTFile.o : $(CMN)HTFile.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTFile.c

HTFTP.o : $(CMN)HTFTP.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTFTP.c

HTAccess.o :  $(CMN)HTAccess.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTAccess.c

HTParse.o : $(CMN)HTParse.c $(CMN)HTUtils.h
	$(CC) -c  $(CFLAGS) $(CMN)HTParse.c
#_________________________________________________________________
#

#	Make a copy of the binary and documentation on this machine
install :	www
	cp www $(BINDIR)/www
	- mkdir /usr/local
	- mkdir /usr/local/lib
	- mkdir /usr/local/lib/WWW
	cp $(DEFAULTS)/*.html /usr/local/lib/WWW

#	Link system to the binary and documentation in this tree

link : Works/www
	ln -s `pwd`/www $(BINDIR)/www
	- mkdir /usr/local
	- mkdir /usr/local/lib
	ln -s $(DEFAULTS) /usr/local/lib/WWW

uninstall :
	rm $(BINDIR)/www
	rm -r /usr/local/lib/WWW

#	Clean up everything generatable except final products
clean :
	rm *.o

#	Clean up everything generatable including final products

cleanall : clean
	rm www


#	ASIS installation
#	-----------------
#	Can only happen on an allocated ASIS development machine and
#	with uid of the controlling user for the project.
#
asis : /asis/share/usr.local/lib/WWW/default.html \
	/asis/specific/$(ASIS_MACH)/usr.local/bin/www
	echo ASIS distribution is now up-to-date.

/asis/specific/$(ASIS_MACH)/usr.local/bin/www : www
	cp www /asis/specific/$(ASIS_MACH)/usr.local/bin/www

/asis/share/usr.local/lib/WWW/default.html : $(DEFAULTS)/default.html
	- mkdir /asis/share/usr.local/lib/WWW
	cp $(DEFAULTS)/*.html /asis/share/usr.local/lib/WWW

#	CERNLIB installation
#	--------------------
#	Assuming the cernlib-style directory structure
#	Warning: Not suitable for machine-shared file structure.
#
cernlib :	www
	- mkdir $(CERNLIBBIN)
	cp www $(CERNLIBBIN)
