# Top level make of the WAIS system
#   brewster 2/91
#   jonathan 6/91

# $Log:	Imakefile,v $
# Revision 1.1  93/09/27  13:33:34  epeisach
# Initial revision
# 
# Revision 1.8  92/05/07  15:54:08  jonathan
# Updated for release.
# 
# Revision 1.7  92/03/26  18:29:59  jonathan
# Fixed some broken make lines.
# 
# Revision 1.6  92/03/07  19:45:01  jonathan
# Added recommendation for IBM.
# 
# Revision 1.5  92/02/27  10:07:24  jonathan
# got rid of automatic setting of TOP.  Used Simon's approach instead.
# 
# Revision 1.4  92/02/13  12:27:53  jonathan
# Removed references to seeker.
# 
# Revision 1.3  92/02/13  12:05:17  jonathan
# Removed release targets.
# 
# Revision 1.2  92/02/13  11:57:56  jonathan
# Added $Log for RCS.
# 
#
# common customizations:
# see the CFLAGS variable for pointers.
#
# to do:
# create the scripts, install the pointer to this version if it is the
# newest.

RELEASE = wais-8-b5.1

RM = /bin/rm -f
AR = ar

# on SGIs set this to true
#if defined(sun) && defined(sparc)
RANLIB = true
LDLIBS="-lresolv -lsocket -lnsl"
#else
RANLIB = ranlib
#endif

# on IBM RS6000 this should be c89.
#ifdef _IBMR2
CC = c89
#else
CC = cc
#endif
#if defined(sparc) && defined(sun)
CC = $(TOP)/suncc
#endif

# set this for your site.  This syntax only works in SunOS
# for other UNIX-like OS's set this to this directory.
#TOP:sh = pwd
# or fill in the blank for other OS's
#TOP = ?
#comment-me:
#	@echo You must set "\$$(TOP)" to point to the wais src directory
TOP=/mit/wais/build/@sys/$(RELEASE)

SUPDIR = $(TOP)/ir

# for old BSD add -DBSD
# for System V add -DSYSV 
# for XENIX add -M3e -Zi
# for a little better security in the server, add -DSECURE_SERVER
# this sets the server user id to -u argument after startup.
# for relevance feedaback in the search engine, add -DRELEVANCE_FEEDBACK
# USG for Unix Dirent in lib
# for SGIs running IRIX 4.0.1, add -cckr
CFLAGS = -I$(SUPDIR) -DSECURE_SERVER -DRELEVANCE_FEEDBACK ${MACHFL}

#if defined(vax) || defined(ibm032)
MACHFL=-DBSD -O
#else
/* the following is for sun4, decmips */
#if defined(sun) && defined(sparc)
MACHFL=-O -DSYSV #-DUSG
#else
MACHFL=-DUSG -O
#endif
#endif

MAKE = make -k 
all:: default

default: setup config.h lib ir ui bin doc x tags
	@echo "Welcome to WAIS"

config.h: config
	./config >config.h

config: config.c
	$(CC) -o config $(CFLAGS) config.c

lib::
	cd lib; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP) RANLIB=$(RANLIB) LDLIBS=$(LDLIBS)

ir::
	cd ir; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP) RANLIB=$(RANLIB) LDLIBS=$(LDLIBS)

ui::
	cd ui; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP) RANLIB=$(RANLIB) LDLIBS=$(LDLIBS)

# ULTRIX doesn't have an env command, so this doesn't work.
# try going to the x directory and just doing a make -k
# you may have to edit the CFLAGS in the Makefile yourself.

#if defined(vax) || defined(ibm032)
#if defined(vax)
OCC=gcc
#else
OCC=cc
#endif
x::
	cd x; TOP=$(TOP) CC=$(OCC) CFLAGS="$(CFLAGS)" ./makex.sh
#else
x::
	cd x; (env TOP=$(TOP) CC=$(CC) "CFLAGS=$(CFLAGS) -I/usr/athena/include" "MAKE=$(MAKE)" ./makex.sh LFLAGS=-L/usr/athena/lib)
#endif

bin::
	cd bin; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)

doc::
	cd doc; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)

test::
	@echo $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)

# to make the emacs tags table for meta-.:
tags: 	
	etags -f TAGS ir//**/*.[ch]
	etags -af TAGS ui//**/*.[ch]
	etags -af TAGS x//**/*.[ch]

# Remove objects and library.
clean::
	$(RM) *~
	$(RM) \#*\#
	$(RM) core
	$(RM) TAGS
	$(RM) -r SearchLog
	$(RM) wais-sources/wais-docs*
	$(RM) config config.h
	cd lib; make $@
	cd ir; make $@
	cd ui; make  $@
	cd bin; make  $@
	cd doc; make  $@
	cd x; make $@

rlocks:
	$@
	cd lib; $@
	cd ir; $@
	cd ui;  $@
	cd bin;  $@
	cd doc;  $@
	cd x; $@

#if (defined(vax) && !defined(ultrix)) || defined(ibm032)
setup::
	install -c dirname.src bin/dirname
#endif
#if (defined(sparc) && defined(sun))
setup::
	cp suncc.sh suncc

cleanup:: 
	rm -f suncc
#endif
setup::

