# Makefile for WorldWideWeb HTML Gateway (HTMLGate)
#
# (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
# WWW Root of WWW source tree
# USELIBDIR Directory in which libwww.a should be found
#
# Macros needed for make install:
#
# BINDIR Directory for installed binary
#______________________________________________________________________
# If this is actually run in a subdirectory.
#
# WWW = ../../..
# If it is run in this directory:
#
# WWW = ../.. For [cernlib] build in this directory
LM = $(WWW)/HTMLGate/Implementation/
LMD = $(WWW)/HTMLGate/Defaults
DM = $(WWW)/Daemon/Implementation/
CMN = $(WWW)/Library/Implementation/
DEFAULTS = $(WWW)/HTMLGate/Defaults
CFLAGS2 = $(CFLAGS) -I$(CMN) -I$(LM)
CERNLIBBIN = $(WWW)/bin
USELIBDIR = $(WTMP)/Library/$(WWW_MACH)
OBJ = $(WTMP)/HTMLGate/$(WWW_MACH)
OE = $(OBJ)/.created
WWWLIB = -L$(USELIBDIR) -lwww
OBJS = $(OBJ)/HTDaemon.o $(OBJ)/HTMLGate.o $(OBJ)/HTAnchor.o \
$(OBJ)/DefaultStyles.o
# $(OBJ)/GateWay.o
PROD = HTMLGate
SOURCES = $(LM)HTMLGate.c $(LM)HTBrowse.h \
$(LM)HTAnchor.c \
$(LM)GateWay.c $(LM)GridText.h \
$(LM)HTFont.h $(LM)Version.make\
$(LM)DefaultStyles.c $(LM)CommonMakefile
SPECIFIC = \
$(LM)/apollo_m68k/Makefile \
$(LM)/decstation/Makefile \
$(LM)/next/Makefile \
$(LM)/pc-nfs/makefile \
$(LM)/pc-nfs/README \
$(LM)/pc-nfs/topc \
$(LM)/rs6000/Makefile \
$(LM)/sgi/Makefile \
$(LM)/snake/Makefile \
$(LM)/sun3/Makefile \
$(LM)/sun4/Makefile \
$(LM)/unix/Makefile \
$(LM)/vax_ultrix/Makefile \
$(LM)/vax_ultrix_cc/Makefile \
$(LM)/vms/descrip.mms \
$(LM)/vms/setup.com
# 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 $(ABS)$(LM)Version.make
$(PROD) : $(OBJS) $(USELIBDIR)/libwww.a
$(CC) -o $(PROD) $(OBJS) $(WWWLIB) $(LFLAGS)
$(USELIBDIR)/libwww.a :
@echo You must get and make the WWWLibrary product first!
(cd $(WWW)/Library/$(WWW_MACH) && make)
lib :
(cd $(WWW)/Library/$(WWW_MACH) && make)
# Make a copy of the binary and documentation on this machine
install : $(PROD)
cp $(PROD) $(BINDIR)/$(PROD)
- 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/$(PROD)
ln -s `pwd`/$(PROD) $(BINDIR)/$(PROD)
- mkdir /usr/local
- mkdir /usr/local/lib
ln -s $(DEFAULTS) /usr/local/lib/WWW
uninstall :
rm $(BINDIR)/$(PROD)
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 $(PROD)
# Binary release
#
# Must be done on anonymous FTP server!
#
# This makefile does not knw how to make $(PROD)_$(VL) so that trying
# to make binay or asis on a weird machine doesn't try to build $(PROD)!
binary : $(PROD)_$(VL)
-mkdir /pub/www/bin/$(WWW_MACH)
cp $(PROD)_$(VL) /pub/www/bin/$(WWW_MACH)/$(PROD)_$(VL)
# 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/$(PROD)
echo ASIS distribution is now up-to-date.
/asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD) : $(PROD)_$(VL)
cp $(PROD)_$(VL) /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD)
/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 : $(PROD)
- mkdir $(CERNLIBBIN)
cp $(PROD) $(CERNLIBBIN)
#_________________________________________________________________________
# Compiling the Objects (Dependenies incomplete)
# Check directory exists
$(OE) :
-mkdir $(WTMP)
-mkdir $(WTMP)/$(PROD)
-mkdir $(WTMP)/$(PROD)/$(WWW_MACH)
touch $(OE)
#
$(OBJ)/HTMLGate.o : $(OE) $(LM)HTMLGate.c $(LM)GridText.h $(LM)Version.make \
$(CMN)HTUtils.h $(CMN)HTAccess.h
$(CC) -c -o $@ $(CFLAGS2) -DVL=\"$(VL)\" $(LM)HTMLGate.c
$(OBJ)/HTDaemon.o : $(OE) $(DM)HTDaemon.c
$(CC) -c -o $@ $(CFLAGS2) -DVL=\"$(VL)\" $(DM)HTDaemon.c
$(OBJ)/GateWay.o : $(OE) $(LM)GateWay.c $(LM)GridText.h $(LM)Version.make \
$(CMN)HTUtils.h $(CMN)HTAccess.h
$(CC) -c -o $@ $(CFLAGS2) -DVL=\"$(VL)\" $(LM)GateWay.c
$(OBJ)/GridText.o : $(OE) $(LM)GridText.c $(LM)GridText.h\
$(CMN)HTAnchor.h $(CMN)HTStyle.h
$(CC) -c -o $@ $(CFLAGS2) $(LM)GridText.c
$(OBJ)/DefaultStyles.o : $(OE) $(LM)DefaultStyles.c $(CMN)HTStyle.h
$(CC) -c -o $@ $(CFLAGS2) $(LM)DefaultStyles.c
$(OBJ)/HTAnchor.o : $(OE) $(LM)HTAnchor.c
$(CC) -c -o $@ $(CFLAGS2) $(LM)HTAnchor.c
#_________________________________________________________________
# For W3 Administrative use only:
# W3 Source + documentation release
# ---------------------------------
distribute : /pub/www/README.txt /pub/www/Copyright.txt
(cd $(WWW)/.. && WWW=WWW ABS=`pwd`/ make $(MFLAGS) \
-f WWW/HTMLGate/Implementation/CommonMakefile \
/pub/www/src/WWWHTMLGate_$(VL).tar.Z)
echo Distribution of $(PROD) version $(VC) up to date.
# THIS MUST BE BUILT FROM THE DIRECTORY ABOVE WWW ! USE distribute above!
/pub/www/src/WWWHTMLGate_$(VL).tar.Z : $(SOURCES) $(LMD)/line-mode-guide.txt
tar cf /pub/www/src/WWWHTMLGate_$(VL).tar \
$(SOURCES) $(LMD)/line-mode-guide.txt \
$(WWW)/HTMLGate/*/Makefile $(LM)/vms/descrip.mms
compress /pub/www/src/WWWHTMLGate_$(VL).tar
# Hypertext supplied in text format
# ---------------------------------
$(WWW)/README.txt : $(WWW)/../README.html
www -n -p66 http://info.cern.ch/hypertext/README.html \
> $(WWW)/README.txt
/pub/www/README.txt : $(WWW)/README.txt
cp $(WWW)/README.txt /pub/www/README.txt
$(WWW)/Copyright.txt : $(WWW)/../Copyright.html
www -n -p66 http://info.cern.ch/hypertext/Copyright.html \
> $(WWW)/Copyright.txt
/pub/www/Copyright.txt : $(WWW)/Copyright.txt
cp $? $@
# Manual
#
QUICKGUIDE = \
$(LMD)/QuickGuide.html \
$(LMD)/Commands.html \
$(LMD)/SourceExamples.html \
$(LMD)/CommandLine.html \
$(LMD)/Shortcuts.html \
$(LMD)/VMS_Shortcuts.html \
$(LMD)/Installation.html \
$(LMD)/Installation_VMS.html \
$(LMD)/Installation_VMS_NewTCP.html \
$(LMD)/Distribution.html \
$(LMD)/Porting.html \
$(LMD)/MachineTypes.html \
$(LMD)/InstallNotSU.html \
$(LMD)/Path.html \
$(LMD)/LoginScript.html \
$(LMD)/Customisation.html \
$(LMD)/EnvVariables.html \
$(LMD)/GlobalV.html \
$(LMD)/NewsServer.html \
$(LMD)/Bugs.html \
$(LMD)/Features.html
doc : /pub/www/doc/line-mode-guide.txt
echo line mdeo browser guide exists.
/pub/www/doc/line-mode-guide.txt : $(LMD)/line-mode-guide.txt
cp $? $@
$(LMD)/line-mode-guide.txt : $(QUICKGUIDE)
-rm $@
for i in $(QUICKGUIDE) ; do www -n -na -p66 $$i >> $@; done
#________________________________________________________________________
# Common code - OBSOLETE SECTION
HTList.o : $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTList.c
HTAnchor.o : $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTAnchor.c
HTFormat.o : $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTFormat.c
HTHistory.o : $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTHistory.c
HTNews.o : $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTNews.c
HTGopher.o : $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h
$(CC) -c $(CFLAGS2) $(CMN)HTGopher.c
HTStyle.o : $(CMN)HTStyle.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTStyle.c
HTAtom.o : $(CMN)HTAtom.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTAtom.c
HTChunk.o : $(CMN)HTChunk.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTChunk.c
HTString.o : $(CMN)HTString.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTString.c
SGML.o : $(CMN)SGML.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)SGML.c
HTML.o : $(CMN)HTML.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTML.c
# Communications & Files
HTTP.o : $(CMN)HTTP.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTTP.c
HTTCP.o : $(CMN)HTTCP.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTTCP.c
HTFile.o : $(CMN)HTFile.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTFile.c
HTFTP.o : $(CMN)HTFTP.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTFTP.c
HTAccess.o : $(CMN)HTAccess.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTAccess.c
HTParse.o : $(CMN)HTParse.c $(CMN)HTUtils.h
$(CC) -c $(CFLAGS2) $(CMN)HTParse.c
#_________________________________________________________________
#