initial
[prop.git] / app / willard / Makefile
blobd6bacb90259199817a3d1f393aaacb4c46e9066c
1 PROP = ../../bin/prop
2 PROPOPTS = -strict -report -v2 -save_space -Orewriting
3 PROPLIBDIR = ../../lib
5 CC = g++
6 CINCLUDE = -I../../include
7 COPTS = -O6 -pedantic
8 LDOPTS = -lg++
9 CFLAGS = $(CINCLUDE) $(COPTS)
10 LDFLAGS = -L$(PROPLIBDIR) -lprop $(LDOPTS)
12 PROP_H_SRC = willard-ast.ph paige.ph parser.ph rename.ph \
13 querygraph.ph smap.ph \
14 phase1.ph phase2.ph phase3.ph phase4.ph phase5.ph proj.ph \
15 willard.ph list.ph
16 PROP_C_SRC = willard-ast.pcc paige.pcc paige-aux.pcc rename.pcc \
17 querygraph.pcc \
18 phase1.pcc phase2.pcc phase3.pcc phase4.pcc phase5.pcc proj.pcc \
19 parser.pcc willard.pcc
20 PROP_SRC = $(PROP_H_SRC) $(PROP_C_SRC)
22 GEN_H_SRC = $(PROP_H_SRC:.ph=.h)
23 GEN_C_SRC = $(PROP_C_SRC:.pcc=.cc)
24 GEN_SRC = $(GEN_H_SRC) $(GEN_C_SRC)
26 C_SRC = $(GEN_C_SRC)
28 OBJS = $(C_SRC:.cc=.o)
30 all: $(GEN_SRC) $(OBJS) willard
32 willard: $(OBJS)
33 $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) -o $@
34 wc:
35 wc $(PROP_SRC)
36 genwc:
37 wc $(GEN_SRC)
38 spotless:
39 rm -f $(GEN_SRC) $(OBJS) *.report
40 test: willard run-test
42 run-test:
43 for t in 1 2 3 4 5 6 7 ; do \
44 echo "./willard <data$$t >test$$t"; \
45 ./willard <data$$t >test$$t; \
46 echo "diff out$$t test$$t"; \
47 diff out$$t test$$t; \
48 if [ $$? = 1 ] ; then \
49 exit 1; \
50 fi; \
51 done
52 @echo All tests ran ok.
54 makeout: willard
55 for t in 1 2 3 4 5 6 7 ; do \
56 ./willard <data$$t >out$$t; \
57 done
59 %.o: %.cc
60 $(CC) -c $(CFLAGS) $<
61 %.cc: %.pcc $(PROP)
62 $(PROP) $(PROPOPTS) $<
63 %.h: %.ph $(PROP)
64 $(PROP) $(PROPOPTS) $<
66 depends: $(GEN_SRC)
67 $(PROP) -M $(PROPOPTS) $(PROP_H_SRC) $(PROP_C_SRC) > prop-depends
68 $(CC) -MM $(COPTS) $(C_SRC) > c-depends
70 include prop-depends
71 include c-depends