3 TRAINS= santafe shinkansen bavarian
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
9 HIDRAWCONVS= hex joytechneos
11 CLIENT_TARGETS= gui-plan-bot topology-dump evdev-manip hidraw-ioctl \
12 $(addprefix hidrawconv-, $(HIDRAWCONVS))
14 TARGETS= adhoc-test realtime hiddev-ioctl kdled-ioctl \
16 $(addsuffix .speeds.ps, $(TRAINS)) \
17 $(addsuffix .speeds.record, $(TRAINS))
19 INPUT_H= /usr/include/linux/input.h
21 LIBOOP_OBJS= __oop-read-copy.o -loop
22 LAYOUT_DATA= ../layout/ours.layout-data
24 ETAGS_SRCS += $(LAYOUT_DATA).c ../layout/layout-data.h
28 include ../common.make
29 include ../cprogs.make
34 client: $(CLIENT_TARGETS) TAGS
36 #---------- executables ----------
38 adhoc-test: serialio.o nmra.o adhoc-test.o encode.o utils.o
41 topology-dump: topology-dump.o utils.o $(LAYOUT_DATA).o
43 evdev-manip: evdev-manip.o utils.o $(LIBOOP_OBJS)
45 hidraw-ioctl: hidraw-ioctl.o utils.o
46 hiddev-ioctl: hiddev-ioctl.o utils.o
47 kdled-ioctl: kdled-ioctl.o
49 hidrawconv-%: hidrawconv-%.o hidrawconv.o utils.o
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
57 #---------- realtime (executable) ----------
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 \
67 REALTIME_CORE_OBJS= $(addsuffix .o, $(REALTIME_CORE))
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; \
75 $(CC) $(LDFLAGS) $@+autoversion.o $^ $(LDLIBS) -o $@
77 #---------- other targets ----------
79 %.speeds.ps %.speeds.record: ./analyse-speeds \
80 ../layout/ours.redacted.shellvars %.manual
83 #---------- autogenerated input files ----------
85 proto-expanded: ../cebpic/README.protocol
88 auproto-pic.c auproto-pic.h: auproto-%: \
89 parse-proto-spec proto-expanded skelproto-%
92 record-y.h: record-y.c
93 record-l.h: record-l.c
95 layoutinfo.h: $(LAYOUT_DATA).c Makefile
96 sed -e '/^#include/,$$d' $< $(ocmp)
98 retransmit-table.h errorcodes.h stastate.h: %: %.gen
99 (echo "/*autogenerated*/" && ./$<) $o
101 realtime+dflags.h: debug-extractor $(addsuffix .c, $(REALTIME_CORE))
104 input-codes.h: extract-input-codes $(INPUT_H)
110 #---------- administrative pseudo targets ----------
113 rm -rf ./+dump.* ./+persist.* ./+realtime.log
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
120 realclean: clean tidy
122 #---------- installing things as root bessar ----------
124 BESSAR_PROGRAMS= evdev-manip eventrun
125 BESSAR_ETC_FILES= bessar-root.eventrun evdev-manip-bessar
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/
131 #---------- copying things to bessar (obsolete?) ----------
133 BESSAR=bessar:things/trains-bessar/hostside/.
135 SPECIAL_CFLAGS_record-l= $(FLEXCFLAGS)
137 on-bessar: $(TARGETS)
138 RSYNC_RSH=fsh rsync $(TARGETS) $(BESSAR)
141 RSYNC_RSH=fsh rsync $^ $(BESSAR)
144 include $(wildcard *.d)