# TRAINS= santafe shinkansen bavarian AUTOINCS= auproto-pic.h layoutinfo.h retransmit-table.h \ errorcodes.h stastate.h record-y.h record-l.h \ realtime+dflags.h input-codes.h HIDRAWCONVS= hex joytechneos CLIENT_TARGETS= gui-plan-bot topology-dump evdev-manip hidraw-ioctl \ $(addprefix hidrawconv-, $(HIDRAWCONVS)) TARGETS= adhoc-test realtime hiddev-ioctl kdled-ioctl \ $(CLIENT_TARGETS) \ $(addsuffix .speeds.ps, $(TRAINS)) \ $(addsuffix .speeds.record, $(TRAINS)) INPUT_H= /usr/include/linux/input.h LIBOOP_OBJS= __oop-read-copy.o -loop LAYOUT_DATA= ../layout/ours.layout-data ETAGS_SRCS += $(LAYOUT_DATA).c ../layout/layout-data.h default: all include ../common.make include ../cprogs.make recurse: all for-pic: all: $(TARGETS) TAGS client: $(CLIENT_TARGETS) TAGS #---------- executables ---------- adhoc-test: serialio.o nmra.o adhoc-test.o encode.o utils.o $(LINK) topology-dump: topology-dump.o utils.o $(LAYOUT_DATA).o evdev-manip: evdev-manip.o utils.o $(LIBOOP_OBJS) hidraw-ioctl: hidraw-ioctl.o utils.o hiddev-ioctl: hiddev-ioctl.o utils.o kdled-ioctl: kdled-ioctl.o hidrawconv-%: hidrawconv-%.o hidrawconv.o utils.o $(LINK) gui-plan-bot: gui-plan-%: gui-plan.o utils.o parseutils.o obc.o \ ../layout/ours.dgram-%.plandata.o \ $(LAYOUT_DATA).o $(LIBOOP_OBJS) $(LINK) -L/usr/X11R6/lib -lXpm -lX11 #---------- realtime (executable) ---------- REALTIME_CORE= realtime startup safety trackloc \ speed actual retransmit persist resolve \ cmdinput commands obc eventhelp simulate \ record record-l record-y \ utils serialio parseutils auproto-pic \ nmra encode movpos rtprio \ $(LAYOUT_DATA) REALTIME_CORE_OBJS= $(addsuffix .o, $(REALTIME_CORE)) realtime: $(REALTIME_CORE_OBJS) $(LIBOOP_OBJS) -lm ../.git-revid C >$@+autoversion.c.new @set -x; if ! cmp $@+autoversion.c.new $@+autoversion.c; then \ mv $@+autoversion.c.new $@+autoversion.c; \ $(CC) $(CFLAGS) -c $@+autoversion.c; \ fi $(CC) $(LDFLAGS) $@+autoversion.o $^ $(LDLIBS) -o $@ #---------- other targets ---------- %.speeds.ps %.speeds.record: ./analyse-speeds \ ../layout/ours.redacted.shellvars %.manual ./$< $* #---------- autogenerated input files ---------- proto-expanded: ../cebpic/README.protocol expand <$< $o auproto-pic.c auproto-pic.h: auproto-%: \ parse-proto-spec proto-expanded skelproto-% ./$+ $o record-y.h: record-y.c record-l.h: record-l.c layoutinfo.h: $(LAYOUT_DATA).c Makefile sed -e '/^#include/,$$d' $< $(ocmp) retransmit-table.h errorcodes.h stastate.h: %: %.gen (echo "/*autogenerated*/" && ./$<) $o realtime+dflags.h: debug-extractor $(addsuffix .c, $(REALTIME_CORE)) ./$^ $(ocmp) input-codes.h: extract-input-codes $(INPUT_H) ./$^ $o %: %.gen ./$^ $o #---------- administrative pseudo targets ---------- tidy: rm -rf ./+dump.* ./+persist.* ./+realtime.log clean: rm -f *.o *.d t u v $(TARGETS) $(AUTOINCS) rm -f auproto-pic.[ch] *~ .*~ core proto-expanded rm -f record-[yl].[ch] *.tmp *.new *+autoversion.c realclean: clean tidy #---------- installing things as root bessar ---------- BESSAR_PROGRAMS= evdev-manip eventrun BESSAR_ETC_FILES= bessar-root.eventrun evdev-manip-bessar install-bessar-root: $(BESSAR_PROGRAMS) $(BESSAR_ETC_FILES) rsync -vP $(BESSAR_PROGRAMS) davenant:/usr/local/bin/ rsync -vP $(BESSAR_ETC_FILES) davenant:/u/ian/things/Bessar/etc/ #---------- copying things to bessar (obsolete?) ---------- BESSAR=bessar:things/trains-bessar/hostside/. SPECIAL_CFLAGS_record-l= $(FLEXCFLAGS) on-bessar: $(TARGETS) RSYNC_RSH=fsh rsync $(TARGETS) $(BESSAR) %.on-bessar: % RSYNC_RSH=fsh rsync $^ $(BESSAR) include $(wildcard *.d)