.POSIX: CONFIGFILE = config.mk 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 =\ backlight\ clock\ counter\ dice\ stopwatch\ timer HDR =\ common.h\ large.h COMMON =\ large-digits.o\ large-colon.o\ large-dot.o\ large-minus.o OBJ = $(BIN:=.o) $(COMMON) BOBJ = $(OBJ:.o=.bo) MAN1 = $(BIN:=.1) include $(CONFIGFILE) include $(CALLTYPE).mk $(OBJ): $(@:.o=.c) $(HDR) $(BOBJ): $(@:.bo=.c) $(HDR) .c.o: $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) .c.bo: $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) -Dmain="$$(printf '%s\n' main__$* | tr - _)" -DMULTICALL_BINARY 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 h > $@ large-digits.c: large.sh ./large.sh c 0 1 2 3 4 5 6 7 8 9 > $@ large-colon.c: large.sh ./large.sh c colon > $@ large-dot.c: large.sh ./large.sh c dot > $@ large-minus.c: large.sh ./large.sh c minus > $@ backlight: backlight.o $(CC) -o $@ $@.o $(LDFLAGS) clock: clock.o large-digits.o large-colon.o $(CC) -o $@ $@.o large-digits.o large-colon.o $(LDFLAGS) counter: counter.o large-digits.o large-minus.o $(CC) -o $@ $@.o large-digits.o large-minus.o $(LDFLAGS) dice: dice.o $(CC) -o $@ $@.o $(LDFLAGS) stopwatch: stopwatch.o $(CC) -o $@ $@.o $(LDFLAGS) timer: timer.o large-digits.o large-colon.o large-dot.o large-minus.o $(CC) -o $@ $@.o large-digits.o large-colon.o large-dot.o large-minus.o $(LDFLAGS) install-common: mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1" cp -- $(MAN1) "$(DESTDIR)$(MANPREFIX)/man1" post-install: chown -- '0:$(VIDEO_GROUP)' "$(DESTDIR)$(PREFIX)/bin/backlight" chmod -- 4754 "$(DESTDIR)$(PREFIX)/bin/backlight" uninstall: -cd -- "$(DESTDIR)$(PREFIX)/bin" && rm -f -- $(BIN_) -cd -- "$(DESTDIR)$(MANPREFIX)/man1" && rm -f -- $(MAN1) -rm -f -- "$(DESTDIR)$(PREFIX)/lib/pdatools" clean: -rm -rf -- *.o *.a *.lo *.so *.bo *.su $(BIN) large.h large-*.c pdatools pdatools.c .SUFFIXES: .SUFFIXES: .o .c .bo .PHONY: all install install-common post-install uninstall clean