chiark / gitweb /
ours.raw.neato.ps from ours.redactgraph
[trains.git] / layout / Makefile
1 #include ../cprogs.make
2
3 M4INCS=         parts.i4
4
5 E_TRACK=        ArsCLMNo
6 LAYOUTOPTS_ALL= -ep=*Cm
7 LAYOUTOPTS=     -E=*$(E_TRACK) $(LAYOUTOPTS_ALL)
8 LAYOUTOPTS_PHYS= -S1.0 $(LAYOUTOPTS) '-e*A'
9 XLAYOUTOPTS_LAYER= -e'=5AN' -E'*~=5rsm' -e'p~=5r' -e'*~=9C' -e'*=*l'
10
11 LAYOUTOPTS_SEGS= '-e*=*rm'
12
13 LAYERS_LS=      0 10 20
14 LAYERS_PS=      $(addsuffix .ps, $(LAYERS_LS))
15 LAYERS_L=       $(addprefix ours-l, $(LAYERS_PS))
16 LAYERS_E=       $(addprefix ours-e, $(LAYERS_PS))
17 LAYERS=         $(LAYERS_L) $(LAYERS_E)
18
19 LPAGES=  $(foreach x, 0 1 2 3 4 5 6, $(foreach y, 1 2 3 4 5, ours-p0-$xx$y.ps))
20
21 CPROGS=         subseg2display compose-segenco
22
23 default:        $(CPROGS) for-test-ui
24 all:            default lpages layers extras
25 for-test-ui:    ours.graph.c ours.redactgraph ours.raw.neato.ps \
26                 ours.dgram-bot.segcmap subseg2display ui-plan-bot.ppm
27
28 layers:         $(LAYERS)
29 lpages:         $(LPAGES)
30 extras:         dualjn-a.ps parts.ps
31
32 include ours.dgram.m
33 include segencolayers.m
34
35 o=>$@.new && mv -f $@.new $@
36
37 CFLAGS=         -Wall -Wwrite-strings -Wpointer-arith \
38                 -Wstrict-prototypes -Wmissing-prototypes \
39                 -Wmissing-declarations -Werror
40 CPPFLAGS=       -D_GNU_SOURCE
41 LINK=           $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ $(LIBS)
42 NETPBM=         -lnetpbm
43 # -lppm
44
45 subseg2display: subseg2display.o
46                 $(LINK) $(NETPBM) -lpub -lm
47
48 compose-segenco: compose-segenco.o
49                 $(LINK) $(NETPBM)
50
51 %.neato.ps:     %.neato
52                 neato -Tps <$< $o
53
54 %.raw.neato:    %.redactgraph
55                 ./$< printforneato $o
56
57 %.redactgraph:  %.graph.o redactgraph.o
58                 $(LINK)
59
60 %.d4:           %.m4 $(M4INCS) Makefile
61                 m4 -s <$< $o
62
63 %-a.ps:         %.d4 layout
64                 ./layout <$< $(LAYOUTOPTS) '-E*l' $o
65
66 %-al.ps:        %.d4 layout
67                 ./layout <$< $(LAYOUTOPTS) '-e*C' '-ep=rm' $o
68
69 %-ap.ps:        %.d4 layout
70                 ./layout -S1.0 <$< $(LAYOUTOPTS) '-e*A' '-ep=rm' $o
71
72 %.segcmapreq:   %.run-layout
73                 ./$< $(LAYOUTOPTS_SEGS) -GR $o
74
75 %.segcmap:      %.segcmapreq segcmapassign segcmap.h
76                 ./segcmapassign <$< $o
77
78 %.dgram.m:      %.dgram-list make-dgram-make
79                 ./make-dgram-make <$< $* $o
80
81 %.m:            %.gen-make
82                 ./$< $o
83
84 %.segenco.ppm:  %.segenco.ps Makefile
85                 gs -dNOPAUSE -dBATCH -dSAFER -q \
86                         -sDEVICE=ppmraw -r72 -g595x842 \
87                         -sOutputFile=$@.new $< && mv -f $@.new $@
88
89 ours.graph.c:   extractgraph ours.dgram-bot.p0.segenco.ps
90                 ./$^ $o
91 # Strictly, this is wrong as it only uses layer 0.  When we have more
92 # layers, should put them all in same segenco specially for extractgraph
93
94 ours-l%.ps:     ours.d4 layout
95                 ./layout <$< -l$* $(LAYOUTOPTS) $(XLAYOUTOPTS_LAYER) $o
96
97 ours-e%.ps:     ours.d4 layout
98                 ./layout <$< -l$* -E'=*aRsclMno' \
99                         -e'p=*rm' -e'=5RN' -E'*~=5rsm' -e'p~=5r' -e'*=*l' $o
100
101 ours-p%.ps:     ours.d4 layout
102                 ./layout <$< -l$$(printf %s "$*" | sed -e 's/-/ -P/') \
103                         $(LAYOUTOPTS_PHYS) $(XLAYOUTOPTS_LAYER) $o
104
105 parts.ps:       showlib.d4 layout
106                 ./layout <$< $(LAYOUTOPTS_ALL) $o
107
108 # test case
109 t.ppm:          ours.dgram-bot.pa.segenco.ppm x.gdb subseg2display
110                 gdb -x x.gdb
111
112 ui-plan-%.ppm:  ours.dgram-%.pa.segenco.ppm Makefile
113                 pnmcrop <$< >$@.1.new
114                 pnmflip <$@.1.new -ccw >$@.2.new
115                 pnmpad <$@.2.new -white -l5 -r5 -t5 -b5 $o
116
117 subseg2display.o compose-segenco.o: segcmap.h
118
119 clean:
120                 -rm -f -- *.d4 *~ t.* *.m *.new core
121                 -rm -f ours-*.ps parts.ps
122                 -rm -f *.oprint-*.ps *.run-layout
123                 -rm -f *.segcmap *.segcmapreq
124                 -rm -f *.dgram-*.p*.segenco.ps *.dgram-*.p*.segenco.ppm
125                 -rm -f $(CPROGS) *.o
126
127 .PRECIOUS:      $(OPRINTS)
128 .PRECIOUS:      %.segcmap %.segcmapreq %.segenco.ppm %.d4 %.neato