# $Header: /home/amb/wwwoffle/RCS/Makefile 2.23 1998/04/06 18:14:14 amb Exp $
#
# WWWOFFLE - World Wide Web Offline Explorer - Version 2.1b.
#
# Program Makefile.
#
# Written by Andrew M. Bishop
#
# This file Copyright 1996,97,98 Andrew M. Bishop
# It may be distributed under the GNU Public License, version 2, or
# any higher version.  See section COPYING of the GNU Public license
# for conditions under which this file may be redistributed.
#

########

INSTDIR=/usr/local
SPOOLDIR=/var/spool/wwwoffle
CONFDIR=/var/spool/wwwoffle

########

CC=gcc
CFLAGS=-O2 -Wall -g

LD=gcc
LDFLAGS=-g

LEX=flex -i -L

########

INCLUDE=
LIBRARY=
# For Solaris you need the following instead.
#LIBRARY=-lnsl -lsocket

COMPILE=$(CC) -c $(CFLAGS)

LINK=$(LD) $(LDFLAGS)

INSTALL=install
# For Solaris you need the following instead.
#INSTALL=/usr/ucb/install

########

all : programs
	@

programs : wwwoffle wwwoffled wwwoffle-tools upgrade-cache
	@

########

install : programs
	@[ ! -d $(SPOOLDIR) -o -d $(SPOOLDIR)/http ] || \
	(echo '' ;\
	 echo 'You *MUST* upgrade the existing cache before you can use this version.' ;\
	 echo 'Read the file UPGRADE for details.' ;\
	 echo '' && exit 1 )
	[ -x $(INSTDIR)/bin ] || $(INSTALL) -d $(INSTDIR)/bin
	$(INSTALL) -c -m 755 wwwoffle  $(INSTDIR)/bin
	$(INSTALL) -c -m 755 wwwoffle-tools  $(INSTDIR)/bin
	ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-ls
	ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-mv
	ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-rm
	[ -x  $(INSTDIR)/sbin ] || $(INSTALL) -d $(INSTDIR)/sbin
	$(INSTALL) -c -m 755 wwwoffled $(INSTDIR)/sbin
	[ -x $(INSTDIR)/man ] || $(INSTALL) -d $(INSTDIR)/man
	[ -x  $(INSTDIR)/man/man1 ] || $(INSTALL) -d $(INSTDIR)/man/man1
	$(INSTALL) -c -m 644 wwwoffle.man $(INSTDIR)/man/man1/wwwoffle.1
	[ -x  $(INSTDIR)/man/man5 ] || $(INSTALL) -d $(INSTDIR)/man/man5
	sed -e 's%SPOOLDIR%$(SPOOLDIR)%' -e 's%CONFDIR%$(CONFDIR)%' < wwwoffle.conf.man > wwwoffle.conf.man.install
	$(INSTALL) -c -m 644 wwwoffle.conf.man.install $(INSTDIR)/man/man5/wwwoffle.conf.5
	[ -x  $(INSTDIR)/man/man8 ] || $(INSTALL) -d $(INSTDIR)/man/man8
	$(INSTALL) -c -m 644 wwwoffled.man $(INSTDIR)/man/man8/wwwoffled.8
	[ -x  $(SPOOLDIR) ] || $(INSTALL) -d $(SPOOLDIR)
	[ -x  $(SPOOLDIR)/outgoing ] || $(INSTALL) -d $(SPOOLDIR)/outgoing
	[ -x  $(SPOOLDIR)/monitor ] || $(INSTALL) -d $(SPOOLDIR)/monitor
	[ -x  $(SPOOLDIR)/lasttime ] || $(INSTALL) -d $(SPOOLDIR)/lasttime
	[ -x  $(SPOOLDIR)/http ] || $(INSTALL) -d $(SPOOLDIR)/http
	@echo 'GET http://www.gedanken.demon.co.uk/wwwoffle/version-2.1/user.html HTTP/1.0'        > $(SPOOLDIR)/outgoing/Owwwoffle-user ;\
	 echo 'Host: www.gedanken.demon.co.uk'                                                    >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;\
	 echo 'Accept: */*'                                                                       >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;\
	 echo ''                                                                                  >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;\
	 awk 'BEGIN{printf("http://www.gedanken.demon.co.uk/wwwoffle/version-2.1/user.html");}'    > $(SPOOLDIR)/outgoing/Uwwwoffle-user < /dev/null
	@echo 'GET http://www.gedanken.demon.co.uk/wwwoffle/version-2.1/browser.html HTTP/1.0'     > $(SPOOLDIR)/outgoing/Owwwoffle-browser ;\
	 echo 'Host: www.gedanken.demon.co.uk'                                                    >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;\
	 echo 'Accept: */*'                                                                       >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;\
	 echo ''                                                                                  >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;\
	 awk 'BEGIN{printf("http://www.gedanken.demon.co.uk/wwwoffle/version-2.1/browser.html");}' > $(SPOOLDIR)/outgoing/Uwwwoffle-browser < /dev/null
	sed -e 's%SPOOLDIR%$(SPOOLDIR)%' -e 's%CONFDIR%$(CONFDIR)%' < wwwoffle.conf > wwwoffle.conf.install
	@[ ! -f $(CONFDIR)/wwwoffle.conf ] || echo There is already a configuration file $(CONFDIR)/wwwoffle.conf
	[  ! -f $(CONFDIR)/wwwoffle.conf ] || $(INSTALL) -c -m 644 wwwoffle.conf.install $(CONFDIR)/wwwoffle.conf.install
	[    -f $(CONFDIR)/wwwoffle.conf ] || $(INSTALL) -c -m 644 wwwoffle.conf.install $(CONFDIR)/wwwoffle.conf

########

clean :
	-rm -f wwwoffle.conf.install wwwoffle.conf.man.install
	-rm -f wwwoffle wwwoffled wwwoffle-tools upgrade-cache
	-rm -f core *.o *~

########

WWWOFFLE_OBJ=wwwoffle.o \
	     html.o \
	     config.o errors.o io.o misc.o proto-simple.o sockets.o md5.o

wwwoffle : $(WWWOFFLE_OBJ)
	$(LINK) $(WWWOFFLE_OBJ) -o $@ $(LIBRARY)

########

WWWOFFLED_OBJ=wwwoffled.o wwwoffles.o \
	      http.o ftp.o finger.o \
	      connect.o control.o configedit.o html.o index.o messages.o monitor.o parse.o purge.o refresh.o spool.o \
	      config.o errors.o io.o misc.o proto.o sockets.o md5.o

wwwoffled : $(WWWOFFLED_OBJ)
	$(LINK) $(WWWOFFLED_OBJ) -o $@ $(LIBRARY)

########

WWWOFFLE_TOOLS_OBJ=wwwoffle-tools.o \
	      spool.o \
	      config-simple.o errors.o io.o misc.o proto-simple.o md5.o

wwwoffle-tools : $(WWWOFFLE_TOOLS_OBJ)
	$(LINK) $(WWWOFFLE_TOOLS_OBJ) -o $@ $(LIBRARY)

########

UPGRADE_OBJ=upgrade-cache.o \
	    config-simple.o errors.o io.o misc.o proto-simple.o md5.o

upgrade-cache : $(UPGRADE_OBJ)
	$(LINK) $(UPGRADE_OBJ) -o $@ $(LIBRARY)

########

%.o:%.c
	$(COMPILE) $< -o $@ $(INCLUDE)

wwwoffle.o   : wwwoffle.c   wwwoffle.h misc.h config.h errors.h sockets.h         version.h
wwwoffled.o  : wwwoffled.c  wwwoffle.h misc.h config.h errors.h sockets.h         version.h
wwwoffles.o  : wwwoffles.c  wwwoffle.h misc.h config.h errors.h sockets.h proto.h

http.o       : http.c       wwwoffle.h misc.h config.h errors.h sockets.h proto.h
ftp.o        : ftp.c        wwwoffle.h misc.h config.h errors.h sockets.h proto.h
finger.o     : finger.c     wwwoffle.h misc.h config.h errors.h sockets.h proto.h

configedit.o : configedit.c wwwoffle.h misc.h config.h errors.h
connect.o    : connect.c    wwwoffle.h misc.h config.h errors.h
control.o    : control.c    wwwoffle.h misc.h config.h errors.h sockets.h
html.o	     : html.c	    wwwoffle.h misc.h
index.o      : index.c      wwwoffle.h misc.h config.h errors.h
messages.o   : messages.c   wwwoffle.h misc.h config.h
monitor.o    : monitor.c    wwwoffle.h misc.h config.h
parse.o      : parse.c      wwwoffle.h misc.h config.h errors.h           proto.h
purge.o      : purge.c      wwwoffle.h misc.h config.h errors.h           proto.h
refresh.o    : refresh.c    wwwoffle.h misc.h config.h errors.h sockets.h
spool.o      : spool.c      wwwoffle.h misc.h config.h errors.h

config.o     : config.c     wwwoffle.h misc.h config.h errors.h sockets.h proto.h
	$(COMPILE) config.c -o $@ -DSPOOL_DIR=\"$(SPOOLDIR)\" -DCONF_DIR=\"$(CONFDIR)\" $(INCLUDE)
config-simple.o: config.c   wwwoffle.h misc.h config.h errors.h           proto.h
	$(COMPILE) config.c -o $@ -DSIMPLE -DSPOOL_DIR=\"$(SPOOLDIR)\" -DCONF_DIR=\"$(CONFDIR)\" $(INCLUDE)
errors.o     : errors.c                       config.h errors.h
io.o         : io.c         wwwoffle.h misc.h          errors.h
misc.o       : misc.c                  misc.h config.h                    proto.h
proto.o      : proto.c                 misc.h                             proto.h
proto-simple.o: proto.c                misc.h                             proto.h
	$(COMPILE) proto.c -o $@ -DSIMPLE $(INCLUDE)
sockets.o    : sockets.c                               errors.h sockets.h

md5.o        : md5.c md5.h

wwwoffle-tools.o : wwwoffle-tools.c wwwoffle.h misc.h errors.h

upgrade-cache.o : upgrade-cache.c wwwoffle.h misc.h errors.h

########

html.c : html.l
	$(LEX) html.l
	@mv lex.yy.c html.c

########
