##makefile for lynx
##lynx written by Lou Montulli University of Kansas

##change the next line if you want lynx installed somewhere 
##besides /usr/local/bin

exec= /usr/local/bin

##change the next line if you want the lynx man file installed somewhere
##besides /usr/man/man1

doc= /usr/man/man1

#set the relative location of the WWW library Implementation directory, 
#from this directory
#do not set this to be an absolute path!!!
WWWINC= WWW/Library/Implementation

# !!!!!!!!!!!!!  IMPORTANT NEW INSTRUCTIONS   !!!!!!!!!!!!!!!!!!!!!
# You NO longer need to set the location of the WWW Library here.
# When you run this makefile the WWW library that is included in
# this distribution will be compiled and used to link Lynx.
# The location of the WWW library is specified in the specific 
# entry for your machine.  (see aix32: or ultrix: for examples below)
LIBWWW= NO LONGER RELEVENT!!!!!

# !!!!!!!!!!!!!  DIRECT WAIS ACCESS !!!!!!!!!!!!!!!!!!!!!!!!!!
# If you are adding direct wais access you must fill in the
# location of wais.a, client.a and the standard math library, libm.a.  
# You can pick up the freeWAIS source from sunsite.unc.edu.  
# Plese put an ABSOLUTE address here if you want it to work! 
# WAISLIB= /homea/local/lynx-dev/lynx2-0-10/wais.a /homea/local/lynx-dev/freeWAIS-0.1/bin/client.a /usr/lib/libm.a

# if you are on one of the supported systems (see all: list below)
# you should not have to modify anything from here down!
MYWWWLIB = WWW/mywww_lib.a
MYEMULATORLIB = emulator/myemulator_lib.a

all:  
	@echo
	@echo "Please run make with one of the following arguments"
	@echo "aix32      -- for RS/6000 running AIX 3.2"
	@echo "aix31      -- for RS/6000 running AIX 3.1 with curses bug"
	@echo "next       -- for NeXT OS"
	@echo "sun3       -- for SUN 3 OS"
	@echo "sun4       -- for SUN 4 OS"
	@echo "ultrix     -- for DEC Ultrix"
	@echo "linux      -- for PC linux"
	@echo "decstation -- for DEC Ultrix (same as ultrix above)"
	@echo "generic    -- for generic UNIX"
	@echo "low_curses -- for generic systems with faulty curses"
	@echo "stripped   -- stripped down version"
	@echo "clean      -- removes all '.o' and 'core' files"
	@echo "tar        -- runs clean, removes executable, and tars the whole directory"
	@echo "compress   -- runs tar, then compresses the result"
	@echo

# Map some extra commands to existing ones
unix: generic
decstation: ultrix

# if you are compiling on a previously unsupported system, modify
# this generic entry!!
generic:  
	@echo "You must first compile the WWW library in WWW/Library"
	cd WWW/Library/unix; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-O -DUNIX -I../../$(WWWINC) \
		-DFANCY_CURSES"
	cd src/WWW; make ranlib
	cd src/gopher; make all CC="cc" MCFLAGS="-O -DUNIX -I../../$(WWWINC)\
		-DHAVE_SIGIO"
	cd src/gopher; make ranlib
	cd src; make all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \
		-DREXEC -I../$(WWWINC)" LIBS="-lcurses -ltermcap \
		../WWW/Library/generic/libwww.a $(MYWWWLIB)"

dbg:   
	cd WWW/Library/rs6000; make
	cd src/WWW; make lib MCFLAGS="-g -DAIX -I../../$(WWWINC) \
		-DFANCY_CURSES"
	cd src/gopher; make all CC="cc" MCFLAGS="-g -DUNIX -I../../$(WWWINC)"
	cd src; make aix CC="cc" MCFLAGS="-g -DFANCY_CURSES -DUNIX \
		-DREXEC -I../$(WWWINC) -DDEBUG" LIBS="-lcurses \
		-ltermcap -lbsd ../WWW/Library/rs6000/libwww.a $(MYWWWLIB)" 

sgi:
	cd WWW/Library/sgi; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-O -DUNIX -I../../$(WWWINC) \
                -DFANCY_CURSES -DSYSV -Dvfork=fork -DPERFORMANCE"
	cd src/WWW; make ranlib
	cd src/gopher; make all CC="cc" MCFLAGS="-O -DUNIX -I../../$(WWWINC)\
                -DHAVE_SIGIO -DSYSV -Dvfork=fork -DPERFORMANCE"
	cd src/gopher; make ranlib
	cd src; make all CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \
                -Dvfork=fork -DREXEC -I../$(WWWINC)" LIBS="-lcurses \
		-ltermcap ../WWW/Library/generic/libwww.a $(MYWWWLIB) \
		-DSYSV -DPERFORMANCE"

linux: 
	cd WWW/Library/unix; make
	cd src/WWW; make lib CC="gcc" MCFLAGS="-O -I../../$(WWWINC)"
	cd src/gopher; make all CC="gcc" MCFLAGS="-O -DUNIX \
		-I../../$(WWWINC) -DHAVE_SIGIO"
	cd src; make all CC="gcc" MCFLAGS="-O -DUNIX -DREXEC -I../$(WWWINC)" 
		LIBS="-lcurses -ltermcap ../WWW/Library/unix/libwww.a $(MYWWWLIB)"

aix32: 
	cd WWW/Library/rs6000; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-O -DAIX -I../../$(WWWINC) \
		-DFANCY_CURSES"
	cd src/gopher; make all CC="cc" MCFLAGS="-O -DAIX -DUNIX \
		-I../../$(WWWINC) -DHAVE_SIGIO"
	cd src; make aix CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX \
		-DREXEC -I../$(WWWINC)" LIBS="-lcurses -ltermcap -lbsd \
		../WWW/Library/rs6000/libwww.a $(MYWWWLIB) $(WAISLIB)"

aix31: 
	cd WWW/Library/rs6000; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-O -DAIX -I../../$(WWWINC)"
	cd src/gopher; make all CC="cc" MCFLAGS="-O -DAIX -DUNIX \
		-I../../$(WWWINC) -DHAVE_SIGIO"
	cd src; make aix CC="cc" MCFLAGS="-O -DUNIX \
		-DREXEC -I../$(WWWINC)" LIBS="-lcurses -ltermcap -lbsd \
		../WWW/Library/rs6000/libwww.a $(MYWWWLIB)"

ultrix:  
	cd WWW/Library/decstation; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-O -DULTRIX -I../../$(WWWINC) \
		-DFANCY_CURSES"
	cd src/WWW; make contents
	cd src/gopher; make all MCFLAGS="-O -DUNIX -DULTRIX -I../../$(WWWINC)\
		-DHAVE_SIGIO" CC="cc"
	cd src/gopher; make contents
	cd src; make ultrix CC="cc" MCFLAGS="-O -Olimit 600 -DFANCY_CURSES \
		-DUNIX -DREXEC -DULTRIX -I../$(WWWINC)" LIBS="-lcursesX \
		-ltermcap ../WWW/Library/decstation/libwww.a $(MYWWWLIB)"

sun3:    
	cd WWW/Library/sun3; make
	make sun_common

sun4:    
	cd WWW/Library/sun4; make
	make sun_common

sun:
	@echo "Run make again and use \"make sun3\" or \"make sun4\""

sun_common:
	cd src/WWW; make lib MCFLAGS="-O -DUNIX -I../../$(WWWINC) \
		-DFANCY_CURSES -I/usr/5include" CC="gcc"
	cd src/WWW; make ranlib
	cd src/gopher; make all CC="gcc" MCFLAGS="-O -DUNIX -I../../$(WWWINC)\
		-DHAVE_SIGIO -DFANCY_CURSES -DPERFORMANCE -I/usr/5include"
	cd src/gopher; make ranlib
	cd src; make all CC="gcc" MCFLAGS="-O -DUNIX -DFANCY_CURSES\
		-I../$(WWWINC) -DREXEC -DSUN -I/usr/5include"\
		LIBS="-lcurses -ltermcap -L/usr/5lib \
		../WWW/Library/sun4/libwww.a $(MYWWWLIB)"

next: wwwlib
	cd WWW/Library/next; make
	cd src/WWW; make lib CC="cc" MCFLAGS="-g -DUNIX -I../../$(WWWINC)"
	cd src/WWW; make ranlib
	cd src/gopher; make all CC="cc" MCFLAGS="-g -DUNIX \
		-I../../$(WWWINC) -DHAVE_SIGIO"
	cd src/gopher; make ranlib
	cd src; make all CC="cc" MCFLAGS="-g -DUNIX -DNEXT -DREXEC -DNO_CUSERID\
		-I../$(WWWINC) -I../$(WWWINC)" LIBS="-lcurses \
		-ltermcap ../WWW/Library/next/libwww.a $(MYWWWLIB)"

traversal: wwwlib
	cd WWW/Library/rs6000; make
	cd src/WWW; make lib MCFLAGS="-O -DAIX -I../../$(WWWINC) \
		-DFANCY_CURSES"
	cd src/gopher; make all CC="cc" MCFLAGS="-O -DAIX -DUNIX \
		-I../../$(WWWINC)"
	cd src; make traversal CC="cc" MCFLAGS="-O -DFANCY_CURSES -DUNIX  \
		-DTRAVERSAL -DREXEC -I../$(WWWINC)" LIBS="-lcurses \
		-ltermcap -lbsd ../WWW/Library/rs6000/libwww.a $(MYWWWLIB)"

clean:
	rm -f core
	cd WWW/Library/rs6000; rm -f *.a *.o
	cd src;          make clean
	cd src/gopher;   make clean
	cd src/WWW;      make clean
	cd src/emulator; make clean

tar:  clean
	rm -f src/lynx
	rm -f lynx
	rm -f src/a.out
	make save

save:
	cd ..; tar -cvf - lynx2-0-10 > lynx2-0-10.tar

compress: tar
	cd ..; compress lynx2-0-10.tar

install:
	rm  -f $(exec)/lynx
	cp  lynx $(exec)
	rm -f $(doc)/lynx.1
	cp  lynx.1 $(doc)

wwwlib: $(WWWLIB)
