#

DBG=-g
PRF=
STR=

CXXFLAGS=-Wall -MMD $(DBG) $(PRF)
CFLAGS=-Wall -MMD $(DBG) $(PRF)
LFLAGS= $(DBG) $(PRF) $(STR)

XLIBS=-L/usr/X11R6/lib -lX11

PROGS=holding fly
TOOLS=fig2c

all: $(PROGS)

holding: main.o triangulate.o disp.o keys.o gobj.o polygon.o fill.o triopt.o holding.o arrow.o rose.o mpoly.o pprint.o figdata.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

fly:  fly.o station.o adf.o rose.o triangulate.o disp.o keys.o gobj.o polygon.o fill.o triopt.o holding.o arrow.o mpoly.o pprint.o plane.o tcoor.o figdata.o scene.o speed.o vordisp.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

triangulate.test: triangulate.test.o disp.o keys.o gobj.o polygon.o fill.o triopt.o figdata.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

rose.test: rose.test.o triangulate.o disp.o keys.o gobj.o polygon.o fill.o triopt.o holding.o arrow.o mpoly.o pprint.o figdata.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

pprint.test: pprint.test.o triangulate.o disp.o keys.o gobj.o polygon.o fill.o triopt.o holding.o arrow.o mpoly.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

disp.test: disp.test.o keys.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS)

holding.test: holding.test.o arrow.o gobj.o disp.o keys.o 
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

vordisp.test: vordisp.test.o polygon.o disp.o mpoly.o keys.o fill.o triopt.o triangulate.o gobj.o rose.o pprint.o figdata.o vorstation.o
	g++ -o $@ $^ $(XLIBS) $(LFLAGS) -lm

%.test.o: %.cc
	g++ -D$*_self_test  $(CXXFLAGS) -o $@ -c $*.cc

%.test.o: %.c
	gcc -D$*_self_test  $(CFLAGS) -o $@ -c $*.c

figdata.h: *.fig fig2c
	./fig2c *.fig

fig2c: fig2c.o
	gcc -o $@ $^

sinclude *.d

clean:
	rm -f *.o *.test *.bak core* err  *.out *.d $(PROGS) $(TOOLS) *.bz2

dist:
	./mkdist.sh
