diff options
| author | Mattias Andrée <maandree@kth.se> | 2021-04-06 03:38:11 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2021-04-06 03:38:11 +0200 |
| commit | e99553d3609956d1ecb2b28ceefe28e1b68aecb9 (patch) | |
| tree | 50ebdc8a2818ecf73893d7b94172de0b8a057a90 /Makefile | |
| parent | Use libsimple instead of libcore (diff) | |
| download | pdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.gz pdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.bz2 pdatools-e99553d3609956d1ecb2b28ceefe28e1b68aecb9.tar.xz | |
Add (default) ability to build multicall binary
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 77 |
1 files changed, 54 insertions, 23 deletions
@@ -1,13 +1,14 @@ .POSIX: CONFIGFILE = config.mk -include $(CONFIGFILE) -HDR =\ - common.h\ - large.h +CALLTYPE = multicall-hardlinks +# multicall-hardlinks = multiple hardlinks of the same multicall binary is installed +# multicall-symlinks = multiple links to a multicall binary named $(PREFIX)/bin/pdatools are installed +# singlecall = separate binaries are install for each command + -BIN_ =\ +BIN =\ backlight\ clock\ counter\ @@ -15,31 +16,60 @@ BIN_ =\ stopwatch\ timer -OBJ = $(BIN_:=.o) -BIN = $(BIN_:=.bin) -MAN1 = $(BIN_:=.1) +HDR =\ + common.h\ + large.h + +OBJ = $(BIN:=.o) +BOBJ = $(OBJ:.o=.bo) +MAN1 = $(BIN:=.1) + + +include $(CONFIGFILE) +include $(CALLTYPE).mk -all: $(BIN) $(OBJ): $(@:.o=.c) $(HDR) -$(BIN): $(@:.bin=.o) +$(BOBJ): $(@:.bo=.c) $(HDR) .c.o: - $(CC) -c -o $@ $< $(CFLAGS) + $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) + +.c.bo: + $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) -Dmain="$$(printf '%s\n' main__$* | tr - _)" -DMULTICALL_BINARY -.o.bin: - $(CC) -o $@ $< $(LDFLAGS) +pdatools: pdatools.o $(BOBJ) + $(CC) -o $@ $@.o $(BOBJ) $(LDFLAGS) + +pdatools.c: pdatools.c.in Makefile + printf '#define LIST_COMMANDS' > $@ + printf '\\\n\tX(%s)' $(BIN) | tr - _ >> $@ + printf '\n\n' >> $@ + cat pdatools.c.in >> $@ large.h: large.sh ./large.sh > $@ -install: $(BIN) - mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" +backlight: backlight.o + $(CC) -o $@ $@.o $(LDFLAGS) + +clock: clock.o + $(CC) -o $@ $@.o $(LDFLAGS) + +counter: counter.o + $(CC) -o $@ $@.o $(LDFLAGS) + +dice: dice.o + $(CC) -o $@ $@.o $(LDFLAGS) + +stopwatch: stopwatch.o + $(CC) -o $@ $@.o $(LDFLAGS) + +timer: timer.o + $(CC) -o $@ $@.o $(LDFLAGS) + +install-common: mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1" - for f in $(BIN_); do\ - ! test -d "$(DESTDIR)$(PREFIX)/bin/$$f" &&\ - cp -- "$$f.bin" "$(DESTDIR)$(PREFIX)/bin/$$f" || exit 1;\ - done cp -- $(MAN1) "$(DESTDIR)$(MANPREFIX)/man1" post-install: @@ -48,12 +78,13 @@ post-install: uninstall: -cd -- "$(DESTDIR)$(PREFIX)/bin" && rm -f -- $(BIN_) - -cd -- "$(DESTDIR)$(MANPREFIX)/man1" && rm -f $(MAN1) + -cd -- "$(DESTDIR)$(MANPREFIX)/man1" && rm -f -- $(MAN1) + -rm -f -- "$(DESTDIR)$(PREFIX)/lib/pdatools" clean: - -rm -rf -- *.o *.su *.bin large.h + -rm -rf -- *.o *.a *.lo *.so *.bo *.su $(BIN) large.h pdatools pdatools.c .SUFFIXES: -.SUFFIXES: .bin .o .c +.SUFFIXES: .o .c .bo -.PHONY: all install post-install uninstall clean +.PHONY: all install install-common post-install uninstall clean |
