# Makefile for gp on i386

# Change these installation directories to suit your needs

PREFIX = /usr/local
LIBDIR = $(PREFIX)/lib
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/man
INCLUDEDIR = $(PREFIX)/include/pari

CC = gcc
CFLAGS = -O2 -g -ansi -DLONG_IS_32BIT -DULONG_NOT_DEFINED
LIBS = -lm
LFLAGS =

# You can (if you want to debug gp yourself) add the -g option
# in CFLAGS. However, remember that, while gcc accepts -g and -O
# simultaneously, cc usually does not.

RM = rm -f
LN = ln -s
RANLIB = ranlib
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644

# Choose the plot file:

# no plotting capabilities:
#PLOTFILE = plotnull.c
#PLOTCFLAGS =
#PLOTLIBS =

# plotting in X windows:
PLOTFILE = plotX.c
PLOTCFLAGS = -I/usr/openwin/share/include
PLOTLIBS =  -L/usr/X11R6/lib -lX11

# Choose whether you want the readline input facilities:
#GPMAIN = gp.o
#RLLIBS =
#RLFLAGS =
#MORECFLAGS =

GPMAIN = gpreadline.o
RLLIBS = /usr/lib/libreadline.a
RLFLAGS = -L/usr/lib -lreadline
MORECFLAGS = -DREADLINE -I/usr/include

OBJS = i386.o mp.o anal.o alglin1.o alglin2.o base1.o base2.o base3.o arith1.o arith2.o bibli1.o bibli2.o elliptic.o es.o gen1.o gen2.o gen3.o init.o errmessages.o helpmessages.o polarit1.o polarit2.o trans1.o trans2.o trans3.o buch1.o buch2.o version.o gp_rl.o

all:	genpari.h gp

gp:	genpari.h $(GPMAIN) $(OBJS) plot.o $(RLLIBS)
	$(CC) $(CFLAGS) $(LFLAGS) -o gp $(GPMAIN) $(OBJS) plot.o $(LIBS) $(PLOTLIBS) $(RLFLAGS)

genpari.h:	genpariother.h
	-$(RM) genpari.h
	$(LN) genpariother.h genpari.h

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

i386.o:	i386.s
	$(CC) $(CFLAGS) -c i386.s

i386.s:	i386.c
	$(CC) -E i386.c > i386.s

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gpreadline.o: gpreadline.c
	$(CC) $(CFLAGS) $(MORECFLAGS) -c gpreadline.c

gp_rl.o: gp_rl.c
	$(CC) $(CFLAGS) $(MORECFLAGS) -c gp_rl.c

plot.c:	$(PLOTFILE)
	-$(RM) plot.c
	$(LN) $(PLOTFILE) plot.c

plot.o:	plot.c
	$(CC) $(CFLAGS) $(PLOTCFLAGS) -c plot.c

version.o:	version386.c
	$(CC) $(CFLAGS) -c -o version.o version386.c

../readline/Makefile:
	(cd ../readline ; CC='$(CC)' ; export CC ; CFLAGS='$(CFLAGS)' ; export CFLAGS ; configure)

../readline/libreadline.a: ../readline/Makefile
	(cd ../readline ; make CC='$(CC)' CFLAGS='$(CFLAGS)')

install: install-lib install-bin install-man

install-lib: $(OBJS) dummy.o
	-mkdir $(INCLUDEDIR)
	$(INSTALL_DATA) genpari.h $(INCLUDEDIR)
	$(INSTALL_DATA) gencom.h  $(INCLUDEDIR)
	$(INSTALL_DATA) genport.h $(INCLUDEDIR)
	$(INSTALL_DATA) gen68k.h $(INCLUDEDIR)
	$(INSTALL_DATA) erreurs.h $(INCLUDEDIR)
	$(INSTALL_DATA) mpansi.h $(INCLUDEDIR)
	$(INSTALL_DATA) mpdefs.h $(INCLUDEDIR)
	$(INSTALL_DATA) mpin.h $(INCLUDEDIR)
	-$(RM) libpari.a
	ar r libpari.a $(OBJS) dummy.o
	$(INSTALL_DATA) libpari.a $(LIBDIR)
	$(RANLIB) $(LIBDIR)/libpari.a

install-bin: gp
	$(INSTALL_PROGRAM) gp $(BINDIR)
	strip $(BINDIR)/gp

install-man: gp.1
	$(INSTALL_DATA) gp.1 $(MANDIR)/man1

clean:	
	-$(RM) *.o libpari.a gp genpari.h plot.c i386.s

