# General Makefile for C-version of gp

# Change these installation directories to suit your needs

LOCAL = /usr/local
LIBDIR = $(LOCAL)/lib
BINDIR = $(LOCAL)/bin
INCLUDEDIR = /usr/include/pari-include

CC = cc

# You can set CC=gcc instead. You can also (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.

CFLAGS = -O -c

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

# Be sure to "make clean" before doing a
# make on a different architecture

all:	genpari.h gp

gp:	gp.o $(OBJS) plot.o buch.o genpari.h
	$(CC) -O -o gp gp.o $(OBJS) plot.o buch.o -lm

genpari.h:	genpariother.h
	rm -f genpari.h;ln -s genpariother.h genpari.h;

mp.o:	mp.next
	/bin/cp mp.next mp.o

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

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

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

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

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

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

base.o:	base.c
	$(CC) $(CFLAGS) base.c

buch.o:	buch.c
	$(CC) $(CFLAGS) buch.c

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

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

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

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

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

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

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

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

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

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

plot.c:	plot.null
	rm -f plot.c; ln -s plot.null plot.c

# if you are using XWindows, replace plot.null by plot.X in the two lines above

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

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

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

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

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

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

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

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

manual:	
	 (cd tex;make manual)

install:	dummy.o
	install -c genpari.h $(INCLUDEDIR)
	install -c gencom.h  $(INCLUDEDIR)
	install -c genport.h $(INCLUDEDIR)
	install -c erreurs.h $(INCLUDEDIR)
	-/bin/rm -f libpari.a;ar r libpari.a $(OBJS) dummy.o 
	install libpari.a $(LIBDIR)
	ranlib $(LIBDIR)/libpari.a
	install -c -s gp $(BINDIR)
	-strip $(BINDIR)/gp 

clean:	
	- /bin/rm -f *.o libpari.a gp genpari.h *.log *.dvi *.std *.idx *.toc \
		plot.c;
	(cd tex; /bin/rm -f *.log *.dvi *.std *.idx *.toc)
