# Makefile for gp on sun3 and MC680x0 based machines (x>=2)

# 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 = -m68020 -msoft-float -O2 -DLONG_IS_32BIT -DULONG_NOT_DEFINED
LIBS = 
LFLAGS =

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

RM = rm -f
LN = ln -s

RANLIB = ranlib
INSTALL = copy
INSTALL_PROGRAM = copy
INSTALL_DATA = copy
EXE = .68020

# plotting in X windows:
PLOTFILE = plotAmiga.c
PLOTCFLAGS = 
PLOTLIBS = -lamy -lauto

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

#GPMAIN = gpreadline.o
#RLLIBS = readline/libreadline.a
#RLFLAGS = -Lreadline -lreadline -ltermcap

OBJS = mp.o anal.o alglin1.o alglin2.o base1.o base2.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 version.o

all:    genpari.h gp$(EXE)

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

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

mp.o:   mpAmiga.s
	$(CC) $(CFLAGS) -c -o mp.o mpAmiga.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

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) -c gpreadline.c

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

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

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

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

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) 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 *.log *.dvi *.std *.idx *.toc

