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

# $Log:	Imakefile,v $
# Revision 1.11  92/08/05  12:40:14  epeisach
# Install dirname on BSD platforms
# 
# Revision 1.10  92/08/04  18:30:53  epeisach
# Setup for Vax builds
# 
# Revision 1.9  92/07/16  20:54:16  epeisach
# Changes for b5
# 
# 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

RM = /bin/rm -f
AR = ar

# on SGIs set this to true
RANLIB = ranlib

#ifdef vax
OCC = gcc
#else
OCC = $(CC)
#endif
# on IBM RS6000 this should be c89.
#ifdef _IBMR2
CC=c89
#else
CC = cc
#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 */
MACHFL=-DUSG -O
#endif

#if defined(_IBMR2)
MACHFL=-DUSG -D_ALL_SOURCE -O
#endif

MAKE = make -k 
all:: default

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

#if defined(vax)
setup::
	rm -f ir/stdlib.h ir/stddef.h
	ln -s stdlib.h.Vax ir/stdlib.h 
	ln -s stddef.h.Vax ir/stddef.h 
#else
setup::
#endif

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

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

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

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

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

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

# 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)
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" ./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; $@
