1# $Id: Makefile,v 1.1 2005-09-18 22:04:19 dhmunro Exp $
2SHELL=/bin/sh
3MAKE=make
4X11OBJS=xfancy.o xbasic.o
5include ../Make.cfg
6
7CFLAGS=$(COPTIONS) -I. -I../play
8CCLOAD=$(CC) $(LDOPTIONS) $(LDFLAGS)
9SYS_LIBS=$(X11LIB) $(MATHLIB) $(FPELIB)
10COPTIONS=$(COPT) $(Y_CFLAGS)
11LDOPTIONS=$(COPT) $(Y_LDFLAGS)
12COPT=$(COPT_DEFAULT)
13
14D_GISTPATH='-DGISTPATH="~/gist:~/Gist:$(Y_SITE)/g"'
15
16OBJS=gist.o tick.o tick60.o engine.o gtext.o draw.o draw0.o clip.o \
17  gread.o gcntr.o hlevel.o ps.o cgm.o $(X11OBJS)
18BOBJS=browser.o cgmin.o eps.o
19
20all: gist
21
22# always check to see whether ../play/libplay.a needs to be rebuilt
23libgist:
24	@$(MAKE) -C ../play "COPT=$(COPT)"
25	@$(MAKE) "COPT=$(COPT)" libgist.a
26
27../play/libplay.a:
28	@$(MAKE) -C ../play "COPT=$(COPT)" libplay
29
30libgist.a: ../play/libplay.a $(OBJS)
31	cp ../play/libplay.a $@
32	$(AR) r $@ $(OBJS)
33	$(RANLIB) $@
34
35gist: libgist.a $(BOBJS) main.o
36	$(CCLOAD) -o $@ main.o $(BOBJS) -L. -lgist $(SYS_LIBS)
37
38# libpyg target is for pygist
39libpyg: libgist
40	@$(MAKE) "COPT=$(COPT)" ../libpyg.a
41
42../libpyg.a: libgist.a
43	cp libgist.a ../libpyg.a
44	$(RANLIB) ../libpyg.a
45
46bench: libgist bench.o main.o
47	$(CCLOAD) -o $@ main.o bench.o -L. -lgist $(SYS_LIBS)
48
49main.c: ../play/$(Y_MAIN_C)
50	cp ../play/$(Y_MAIN_C) main.c
51
52clean::
53	rm -f *~ '#'* *.o *.a core* *.core a.out main.c gist bench
54
55distclean:: clean
56	rm -f .gdb*
57
58config:
59	@:
60
61# ------------- dependencies -------------
62
63# cgm.h: gist.h engine.h
64# draw.h: gist.h
65# engine.h: gist.h
66# gtext.h: gist.h
67# hlevel.h: gist.h
68# ps.h: gist.h engine.h
69# xbasic.h: gist.h engine.h play.h
70# xfancy.h: xbasic.h
71
72PLUGEXT=../play/plugin.h
73PLAY_H=../play/play.h $(PLUGEXT)
74PSLIB=../play/pstdlib.h $(PLUGEXT)
75PSLIO=../play/pstdlib.h ../play/pstdio.h $(PLUGEXT)
76PLAYIO=../play/play.h ../play/pstdio.h $(PLUGEXT)
77PSPLAY=../play/pstdlib.h ../play/play.h $(PLUGEXT)
78PLAYALL=../play/play.h ../play/pstdlib.h ../play/pstdio.h $(PLUGEXT)
79
80cgm.o: cgm.h gtext.h $(PLAYALL)  gist.h engine.h
81clip.o: clip.h $(PSLIB)
82draw.o: draw.c draw.h gtext.h $(PSLIB)  gist.h
83	$(CC) $(CPPFLAGS) $(CFLAGS) $(NO_EXP10) -c draw.c
84draw0.o: draw.h gtext.h $(PSPLAY)  gist.h
85engine.o: engine.h gist.h draw.h $(PSLIB)
86gcntr.o: gist.h
87gist.o: gist.h engine.h clip.h $(PSPLAY)
88gread.o: gread.c gist.h $(PLAYALL)
89	$(CC) $(CPPFLAGS) $(CFLAGS) $(D_GISTPATH) -c gread.c
90gtext.o: gtext.h  gist.h
91hlevel.o: hlevel.h xbasic.h engine.h $(PLAYIO)  gist.h
92ps.o: ps.h gtext.h $(PLAYIO)  gist.h engine.h
93tick.o: tick.c gist.h
94	$(CC) $(CPPFLAGS) $(CFLAGS) $(NO_EXP10) -c tick.c
95tick60.o: gist.h
96xbasic.o: xbasic.h gtext.h $(PLAYIO)  gist.h engine.h
97xfancy.o: xfancy.c xfancy.h draw.h  gist.h xbasic.h engine.h $(PLAY_H)
98	$(CC) $(CPPFLAGS) $(CFLAGS) $(NO_EXP10) -c xfancy.c
99
100browser.o: xbasic.h cgm.h cgmin.h eps.h   gist.h engine.h $(PLAYALL)
101cgmin.o: cgmin.h engine.h $(PLAYALL)   gist.h
102eps.o: eps.h ps.h gtext.h $(PSLIO)   gist.h engine.h
103
104bench.o: hlevel.h xfancy.h $(PLAYALL)  gist.h xbasic.h engine.h
105
106# Always compile main.c with -g so new packages can be debugged.
107main.o: main.c
108	$(CC) $(CPPFLAGS) -I../play -g -c main.c
109