From cfc081f9c4f5f538145cbd93f98f714d0be1dad0 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 3 Apr 2021 11:06:36 +0200 Subject: m + Add multicall binary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- Makefile | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 86040fa..362ada4 100644 --- a/Makefile +++ b/Makefile @@ -32,18 +32,28 @@ HDR =\ common.h OBJ = $(BIN:=.o) +BOBJ = $(BIN:=.bo) -all: $(BIN) +all: $(BIN) contacts $(OBJ): $(@:.o=.c) $(HDR) - -libcontacts.a: $(OBJ) - $(AR) rc $@ $(OBJ) - $(AR) -s $@ +$(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 + +contacts: contacts.o $(BOBJ) + $(CC) -o $@ $@.o $(BOBJ) $(LDFLAGS) + +contacts.c: contacts.c.in Makefile + printf '#define LIST_COMMANDS' > $@ + printf '\\\n\tX(%s)' $(BIN) | tr - _ >> $@ + printf '\n\n' >> $@ + cat contacts.c.in >> $@ + find-contact-by-email: find-contact-by-email.o $(CC) -o $@ $@.o $(LDFLAGS) @@ -120,13 +130,34 @@ install: $(BIN) mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" cp -- $(BIN) "$(DESTDIR)$(PREFIX)/bin/" +install-mcb: contacts + mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" + set -- $(BIN) &&\ + cp -- "$$1" "$(DESTDIR)$(PREFIX)/bin/$$1" &&\ + linkto="$$1" &&\ + shift 1 &&\ + cd -- "$(DESTDIR)$(PREFIX)/bin/" &&\ + for f; do\ + ln -- "$$linkto" "$$f" || exit 1;\ + done + +install-mcb-symlinks: contacts + mkdir -p -- "$(DESTDIR)$(PREFIX)/lib" + mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" + cp -- contacts "$(DESTDIR)$(PREFIX)/lib/" + cd -- "$(DESTDIR)$(PREFIX)/bin/" &&\ + for f in $(BIN); do\ + ln -s -- ../lib/contacts "$$f" || exit 1;\ + done + uninstall: -cd -- "$(DESTDIR)$(PREFIX)/bin" && rm -f -- $(BIN) + -rm -f -- "$(DESTDIR)$(PREFIX)/lib/contacts" clean: - -rm -f -- *.o *.a *.lo *.so *.su $(BIN) + -rm -f -- *.o *.a *.lo *.so *.bo *.su $(BIN) contacts contacts.c .SUFFIXES: -.SUFFIXES: .c .o +.SUFFIXES: .c .o .bo -.PHONY: all install uninstall clean +.PHONY: all install install-mcb install-mcb-symlinks uninstall clean -- cgit v1.2.3-70-g09d2