#********************************************************************
# lindner
# 3.22
# 1994/12/11 18:44:30
# /home/mudhoney/GopherSrc/CVS/gopher+/gopherd/Makefile,v
# Exp
#
# Paul Lindner, University of Minnesota CIS.
#
# Copyright 1991, 1992 by the Regents of the University of Minnesota
# see the file "Copyright" in the distribution for conditions of use.
#********************************************************************
# MODULE: Makefile
# Makefile for gopher server
#*********************************************************************
# Revision History:
# Makefile,v
# Revision 3.22  1994/12/11  18:44:30  lindner
# Add installation of gopherd scripts
#
# Revision 3.21  1994/12/10  06:11:18  lindner
# Remove the regexp.a library..
#
# Revision 3.20  1994/12/09  18:46:34  lindner
# re-add libftw.a
#
# Revision 3.19  1994/11/29  05:08:41  lindner
# Use make macros so gmake works
#
# Revision 3.18  1994/11/24  08:08:58  lindner
# Install gopherdlocal.conf file the first time only...
#
# Revision 3.17  1994/11/18  22:26:01  lindner
# Fix for sf on NeXT machines
#
# Revision 3.16  1994/11/18  22:06:57  lindner
# Better sf wais stuff
#
# Revision 3.15  1994/11/18  21:40:49  lindner
# Simplification for FreeWAIS-sf
#
# Revision 3.14  1994/11/07  19:55:48  lindner
# Modifications to use FreeWAIS-sf package (see Makefile.config)
#
# Revision 3.13  1994/08/03  03:35:20  lindner
# One bug
#
# Revision 3.12  1994/08/03  03:33:24  lindner
# Include files in SERVERDIR
#
# Revision 3.11  1994/07/19  20:28:45  lindner
# Add INTLOPTS
#
# Revision 3.10  1994/06/29  05:43:37  lindner
# Remove tix.o, add AUTH.o
#
# Revision 3.9  1994/03/17  04:29:13  lindner
# Add pid.o
#
# Revision 3.8  1993/08/10  20:26:21  lindner
# Added fi for gopherindex install
#
# Revision 3.7  1993/08/05  22:20:19  lindner
# Only install gopherindex if built
#
# Revision 3.6  1993/08/04  22:12:01  lindner
# Rebuild server if patchlevel.h changes
#
# Revision 3.5  1993/07/27  05:27:34  lindner
# Mondo Debug overhaul from Mitra
#
# Revision 3.4  1993/07/07  19:41:00  lindner
# removed popen stuff
#
# Revision 3.3  1993/03/26  19:45:38  lindner
# Fix for parameters to makegopherindex script
#
# Revision 3.2  1993/03/24  20:17:00  lindner
# Additions for gopherindex
#
# Revision 3.1.1.1  1993/02/11  18:02:50  lindner
# Gopher+1.2beta release
#
# Revision 1.5  1993/02/09  21:35:55  lindner
# Fixed install target, save old gopherd.conf file
#
# Revision 1.4  1992/12/29  23:28:31  lindner
# Added mindexd.o to OBJS for fan-out integration.
#
# Revision 1.3  1992/12/21  20:44:37  lindner
# Added kernutils.o to OBJS (from mtm)
#
# Revision 1.2  1992/12/21  20:21:49  lindner
# Added ../bin/libftw.a to WAISGATEOBJS..
#
# Revision 1.1  1992/12/10  23:15:15  lindner
# gopher 1.1 release
#
#
#********************************************************************/
include ../Makefile.config

#
# Type of full-text searching to use....  WAIS
# requires that you have a built wais distribution.
#
# Next requires that you have the NeXTtext.tar.Z libraries.
#

LIBS	= $(SERVERLIBS)

NEXTLIBS	= -ltext -lbtree


#############################################################################

NEXTOBJ = NeXTindex.o

WAISOBJ         = ../bin/inv.a ../bin/client.a ../bin/wais.a \
                  ../ui/source.o ../bin/libftw.a
SFWAISOBJ       = ../ir/libinv.a ../ir/libclient.a ../ir/libwais.a \
		  ../ir/liblocal.a ../ir/libsig.a ../ui/source.o


CCFLAGS	= $(OPT) -DDATA_DIRECTORY=\"$(SERVERDATA)\" $(DEBUGGING) \
	-DDOMAIN_NAME=\"$(DOMAIN)\" -DGOPHER_PORT=$(SERVERPORT) \
	-DGDCDIR=\"$(SERVERCONF)\" \
	$(SEARCH) $(WAISTYPE) $(SERVEROPTS) $(INTLOPTS) $(GSYSTYPE) $(COMPAT)\
	$(INCLUDES)

OBJS	= error.o globals.o gopherd.o daemon.o special.o \
	dedot.o openers.o index.o Waisindex.o serverutil.o ftp.o \
	waisgopher.o ext.o site.o gopherdconf.o kernutils.o mindexd.o \
	authenticate.o command.o pid.o AUTH.o

TARGET	= gopherd

all:
	(cd ..; $(MAKE) $(MFLAGS) server)

#
# Special rule for NeXT text indexing, can't use gcc (yet...)
#
NeXTindex.o : NeXTindex.c
	cc $(CCFLAGS) -ObjC -I. -c NeXTindex.c


#
# Special rule for wais gateway
#
waisgopher.o: waisgopher.c
	$(CC) $(CCFLAGS) -c waisgopher.c

gopherd.o: gopherd.c ../patchlevel.h
	$(CC) $(CCFLAGS) -DCONF_FILE=\"$(SERVERCONF)/gopherd.conf\" -c gopherd.c


.c.o:
	$(CC) $(CCFLAGS) -c $<

globals.o : globals.h

$(OBJS) : ../conf.h


next: $(OBJS) $(NEXTOBJ)
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(NEXTOBJ) $(DLOBJS) \
		$(LIBS) $(NEXTLIBS)
	./makegopherindex next $(SERVERDATA)

wais-sf: 
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(SFWAISOBJ) $(DLOBJS) $(LIBS)

wais-normal: 
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(WAISOBJ) $(DLOBJS) $(LIBS)

wais: $(OBJS)
	@if echo $(WAISTYPE) | grep -c -s FREEWAIS_SF>/dev/null; then \
		echo "Linking with freeWAIS-sf objects"; $(MAKE) $(MFLAGS) wais-sf; \
	else \
		echo "Linking WAIS objects (non-sf)"; $(MAKE) $(MFLAGS) wais-normal;\
	fi

	./makegopherindex wais $(SERVERDATA)


nextwais-normal:
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(NEXTOBJ) $(LIBS) \
		$(WAISOBJ) $(DLOBJS) $(NEXTLIBS)

nextwais-sf:
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(NEXTOBJ) $(LIBS) \
		$(SFWAISOBJ) $(DLOBJS) $(NEXTLIBS)


nextwais: $(OBJS) $(NEXTOBJ)
	@if echo $(WAISTYPE) | grep -c -s FREEWAIS_SF>/dev/null; then \
		echo "Linking freeWAIS-sf and NeXT objects"; $(MAKE) $(MFLAGS) nextwais-sf; \
	else \
		echo "Linking WAIS and NeXT objects (non-sf)"; $(MAKE) $(MFLAGS) nextwais-normal;\
	fi

	./makegopherindex wais $(SERVERDATA)

	./makegopherindex next $(SERVERDATA)

none: $(OBJS) 
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(DLOBJS) $(LIBS)

install : all
	-mv $(SERVERDIR)/$(TARGET) $(SERVERDIR)/$(TARGET).old
	-mv $(SERVERDIR)/gopherd.conf $(SERVERDIR)/gopherd.conf.old
	$(INSTALL_DIR) $(SERVERDIR)
	$(INSTALL_DIR) $(SERVERCONF)
	$(INSTALL_BIN)  $(TARGET) $(SERVERDIR)
	$(INSTALL_LIB)  gopherd.conf $(SERVERCONF)
	if [ ! -f $(SERVERCONF)/gopherdlocal.conf ]; then \
		$(INSTALL_LIB) gopherdlocal.conf $(SERVERCONF)/gopherdlocal.conf; \
	fi
	
	if [ -f gopherindex ]; then \
		$(INSTALL_DIR) $(CLIENTDIR); \
		$(INSTALL_BIN)  gopherindex $(CLIENTDIR); \
	fi
	-rm	$(SERVERDIR)/gopherls $(SERVERDIR)/gindexd
	-ln     -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gopherls
	-ln     -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gindexd
	(cd scripts; $(MAKE) $(MFLAGS) install)

clean:
	-rm -f $(TARGET) $(OBJS) $(NEXTOBJ) *.out *~ core gopherindex

