chiark / gitweb /
hostside: more length for bavarian
[trains.git] / hostside / Makefile
1 #
2
3 TRAINS=         santafe shinkansen bavarian
4
5 AUTOINCS=       auproto-pic.h layoutinfo.h retransmit-table.h           \
6                 errorcodes.h stastate.h record-y.h record-l.h           \
7                 realtime+dflags.h input-codes.h
8
9 HIDRAWCONVS=    hex joytechneos
10
11 CLIENT_TARGETS= gui-plan-bot topology-dump evdev-manip hidraw-ioctl \
12                 $(addprefix hidrawconv-, $(HIDRAWCONVS))
13
14 TARGETS=        adhoc-test realtime hiddev-ioctl kdled-ioctl            \
15                 $(CLIENT_TARGETS)                                       \
16                 $(addsuffix .speeds.ps, $(TRAINS))                      \
17                 $(addsuffix .speeds.record, $(TRAINS))
18
19 INPUT_H=        /usr/include/linux/input.h
20
21 LIBOOP_OBJS=    __oop-read-copy.o -loop
22 LAYOUT_DATA=    ../layout/ours.layout-data
23
24 ETAGS_SRCS += $(LAYOUT_DATA).c ../layout/layout-data.h
25
26 default:        all
27
28 include ../common.make
29 include ../cprogs.make
30
31 recurse:        all
32 for-pic:
33 all:            $(TARGETS) TAGS
34 client:         $(CLIENT_TARGETS) TAGS
35
36 #---------- executables ----------
37
38 adhoc-test:     serialio.o nmra.o adhoc-test.o encode.o utils.o
39                 $(LINK)
40
41 topology-dump:  topology-dump.o utils.o $(LAYOUT_DATA).o
42
43 evdev-manip:    evdev-manip.o utils.o $(LIBOOP_OBJS)
44
45 hidraw-ioctl:   hidraw-ioctl.o utils.o
46 hiddev-ioctl:   hiddev-ioctl.o utils.o
47 kdled-ioctl:    kdled-ioctl.o
48
49 hidrawconv-%:   hidrawconv-%.o hidrawconv.o utils.o
50                 $(LINK)
51
52 gui-plan-bot: gui-plan-%:  gui-plan.o utils.o parseutils.o obc.o        \
53                         ../layout/ours.dgram-%.plandata.o               \
54                         $(LAYOUT_DATA).o $(LIBOOP_OBJS)
55                 $(LINK) -L/usr/X11R6/lib -lXpm -lX11
56
57 #---------- realtime (executable) ----------
58
59 REALTIME_CORE=  realtime startup safety trackloc                \
60                 speed actual retransmit persist resolve         \
61                 cmdinput commands obc eventhelp simulate        \
62                 record record-l record-y                        \
63                 utils serialio parseutils auproto-pic           \
64                 nmra encode movpos rtprio                       \
65                 $(LAYOUT_DATA)
66
67 REALTIME_CORE_OBJS= $(addsuffix .o, $(REALTIME_CORE))
68
69 realtime:       $(REALTIME_CORE_OBJS) $(LIBOOP_OBJS) -lm
70                 ../.git-revid C >$@+autoversion.c.new
71                 @set -x; if ! cmp $@+autoversion.c.new $@+autoversion.c; then \
72                         mv $@+autoversion.c.new $@+autoversion.c; \
73                         $(CC) $(CFLAGS) -c $@+autoversion.c; \
74                 fi
75                 $(CC) $(LDFLAGS) $@+autoversion.o $^ $(LDLIBS) -o $@
76
77 #---------- other targets ----------
78
79 %.speeds.ps %.speeds.record: ./analyse-speeds \
80         ../layout/ours.redacted.shellvars %.manual
81                 ./$< $*
82
83 #---------- autogenerated input files ----------
84
85 proto-expanded: ../cebpic/README.protocol
86                 expand <$< $o
87
88 auproto-pic.c auproto-pic.h: auproto-%: \
89                         parse-proto-spec proto-expanded skelproto-%
90                 ./$+ $o
91
92 record-y.h: record-y.c
93 record-l.h: record-l.c
94
95 layoutinfo.h:   $(LAYOUT_DATA).c Makefile
96                 sed -e '/^#include/,$$d' $< $(ocmp)
97
98 retransmit-table.h errorcodes.h stastate.h: %: %.gen
99                 (echo "/*autogenerated*/" && ./$<) $o
100
101 realtime+dflags.h: debug-extractor $(addsuffix .c, $(REALTIME_CORE))
102                 ./$^ $(ocmp)
103
104 input-codes.h:  extract-input-codes $(INPUT_H)
105                 ./$^ $o
106
107 %:              %.gen
108                 ./$^ $o
109
110 #---------- administrative pseudo targets ----------
111
112 tidy:
113                 rm -rf ./+dump.* ./+persist.* ./+realtime.log
114
115 clean:
116                 rm -f *.o *.d t u v $(TARGETS) $(AUTOINCS)
117                 rm -f auproto-pic.[ch] *~ .*~ core proto-expanded
118                 rm -f record-[yl].[ch] *.tmp *.new *+autoversion.c
119
120 realclean:      clean tidy
121
122 #---------- installing things as root bessar ----------
123
124 BESSAR_PROGRAMS=        evdev-manip eventrun
125 BESSAR_ETC_FILES=       bessar-root.eventrun evdev-manip-bessar
126
127 install-bessar-root:    $(BESSAR_PROGRAMS) $(BESSAR_ETC_FILES)
128         rsync -vP $(BESSAR_PROGRAMS) davenant:/usr/local/bin/
129         rsync -vP $(BESSAR_ETC_FILES) davenant:/u/ian/things/Bessar/etc/
130
131 #---------- copying things to bessar (obsolete?) ----------
132
133 BESSAR=bessar:things/trains-bessar/hostside/.
134
135 SPECIAL_CFLAGS_record-l= $(FLEXCFLAGS)
136
137 on-bessar:      $(TARGETS)
138                 RSYNC_RSH=fsh rsync $(TARGETS) $(BESSAR)
139
140 %.on-bessar:    %
141                 RSYNC_RSH=fsh rsync $^ $(BESSAR)
142
143
144 include $(wildcard *.d)