# Makefile for analog 1.92beta
# Please read Readme.html, or http://www.statslab.cam.ac.uk/~sret1/analog/

SHELL = /bin/sh

# which compiler to use. NB Different compilers need
CC = cc

#different CFLAGS, e.g., -O instead of -O2.
# options, e.g. for optimisation or ANSI compilation.
CFLAGS = -pipe -arch hppa -arch i386 -arch m68k -arch sparc -no-precomp
# CFLAGS = -pipe -arch m68k -no-precomp -Wall

# any of -DNOPIPES -DNODNS -DNODIRENT
DEFS = -DNODIRENT

# Operating system: UNIX, DOS, MAC or VMS
OS = UNIX

# extra libraries needed; Solaris 2 (SunOS 5) needs
# LIBS = -lnsl -lm and SCO Unix needs LIBS = -lsocket -lm
#IRIX reportedly needs LIBS = -lc -lm
#LIBS = -lm 
LIBS =

# Your favourite pager program, e.g. more
PAGER = more

PROGRAM = analog

SOURCES = alias.c analog.c formgen.c hash.c init.c init2.c \
	  macstuff.c output.c output2.c output3.c sscanf.c \
	  utils.c

OBJS =    alias.o analog.o formgen.o hash.o init.o init2.o \
	  macstuff.o output.o output2.o output3.o sscanf.o \
	  utils.o

HEADERS = analhead.h analhea2.h

# Form interface options:

# The program that processes the data from the form
FORMPROG = analform.cgi

# The source code for that program
FORMSRC = putenv.c analform.c

# Where the form itself will go
FORMHTML = analogform.html

# Extra analog options when constructing the form
FORMOPTS =

ANALOGDIR = /usr/local/etc/httpd/Analog
BINDIR = $(ANALOGDIR)/bin
CGIBINDIR=/usr/local/etc/httpd/cgi-bin
CONFDIR = $(ANALOGDIR)/conf
IMGDIR = images

CONFILES = sample.conf mandatory.conf domains.tab primes.tab
COMMFILES = Licence Readme.html README.NeXT Update

INSTALL = install -s

all: $(PROGRAM) $(FORMPROG)

$(PROGRAM): $(OBJS) $(HEADERS) Makefile
	$(CC) $(CFLAGS) $(OBJS) -o $(PROGRAM) $(LIBS)
	@echo '***'
	@echo '***IMPORTANT: You must read the licence before using analog'
	@echo '***'

$(OBJS): $(HEADERS) Makefile
	$(CC) $(CFLAGS) $(DEFS) -D$(OS) -c $*.c

$(FORMPROG): $(FORMSRC) Makefile
	$(CC) $(CFLAGS) $(FORMSRC) -o $(FORMPROG)

$(FORMHTML): $(PROGRAM) Makefile
	./$(PROGRAM) -form $(FORMOPTS) +O$(FORMHTML)

form: $(FORMHTML) $(FORMPROG)

force:
	rm -f $(OBJS)
	make $(PROGRAM) 'CFLAGS=$(CFLAGS)' 'LIBS=$(LIBS)' 'DEFS=$(DEFS)' \
	CC=$(CC)

install:
	for i in $(ANALOGDIR) $(BINDIR) $(CONFDIR) $(ANALOGDIR)/$(IMGDIR); do \
		if [ ! -d $$i ]; then \
			mkdir $$i; \
		fi; \
	done
	if [ -f $(BINDIR)/$(PROGRAM) ]; then \
		mv $(BINDIR)/$(PROGRAM) $(BINDIR)/$(PROGRAM).old; \
	fi; \
	$(INSTALL) $(PROGRAM)  $(BINDIR); \
	if [ -f $(CGIBINDIR)/$(FORMPROG) ]; then \
		mv $(CGIBINDIR)/$(FORMPROG) $(CGIBINDIR)/$(FORMPROG).old; \
	fi; \
	$(INSTALL) $(FORMPROG)  $(CGIBINDIR); \
	for i in $(CONFILES); do \
		if [ -f $(CONFDIR)/$$i ]; then \
			mv $(CONFDIR)/$$i $(CONFDIR)/$$i.old; \
		fi; \
		cp $$i  $(CONFDIR); \
	done
	for i in $(COMMFILES); do \
		if [ -f $(ANALOGDIR)/$$i ]; then \
			mv $(ANALOGDIR)/$$i $(ANALOGDIR)/$$i.old; \
		fi; \
		cp $$i  $(ANALOGDIR); \
	done
	for i in $(IMGDIR)/*.gif; do \
		if [ -f $(ANALOGDIR)/$$i ]; then \
			mv $(ANALOGDIR)/$$i $(ANALOGDIR)/$$i.old; \
		fi; \
		cp $$i  $(ANALOGDIR)/$(IMGDIR); \
	done

clean:
	rm -f *.o *.out core

realclean: clean
	rm -f $(PROGRAM) $(FORMPROG) $(FORMHTML)

