X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=mk%2Fcommon.mk;fp=mk%2Fcommon.mk;h=3fcb4e4c8a52b8734384853ce270e8e034361007;hb=8977d252fc44ae953df4bde4a2f1c5895beea4e0;hp=0000000000000000000000000000000000000000;hpb=063fa644df8a1bc2f0d76027dae5d7d0d8ce4f47;p=apps%2Fpfixtools.git diff --git a/mk/common.mk b/mk/common.mk new file mode 100644 index 0000000..3fcb4e4 --- /dev/null +++ b/mk/common.mk @@ -0,0 +1,57 @@ +include ../mk/cflags.mk + +prefix ?= /usr/local +LDFLAGS += -Wl,--warn-common +CFLAGS += --std=gnu99 -D_GNU_SOURCE -I../ -I../common + +INSTALL_PROGS = $(addprefix install-,$(PROGRAMS)) + +install: all $(INSTALL_PROGS) + +$(INSTALL_PROGS): install-%: + install $* $(DESTDIR)$(prefix)/sbin + +all: $(GENERATED) $(LIBS) $(PROGRAMS) | $(GENERATED) + +clean: + $(RM) $(LIBS:=.a) $(PROGRAMS) $(TESTS) .*.o .*.dep + +distclean: clean + $(RM) $(GENERATED) + +tags: .tags +.tags: $(shell git ls-files | egrep '\.[hc]$$') + ctags -o $@ $^ + +headers: HEADACHEOPTS=-c mk/headache.cfg -h mk/COPYING +headers: + @which headache > /dev/null || \ + ( echo "package headache not installed" ; exit 1 ) + @git ls-files | egrep '(\.h|\.c|Makefile|*\.mk)$$' | xargs -t headache $(HEADACHEOPTS) + +%.h: %.sh + ./$< $@ || ($(RM) $@; exit 1) + +%.c: %.sh + ./$< $@ || ($(RM) $@; exit 1) + +.%.o: %.c Makefile + $(shell test -d $(@D) || mkdir -p $(@D)) + $(CC) $(CFLAGS) -MMD -MT ".$*.dep $@" -MF .$*.dep -g -c -o $@ $< + +.%.dep: .%.o + +$(LIBS): %: %.a + +.SECONDEXPANSION: + +$(LIBS:=.a): $$(patsubst %.c,.%.o,$$($$(patsubst %.a,%,$$@)_SOURCES)) Makefile + $(RM) $@ + $(AR) rcs $@ $(filter %.o,$^) + +$(PROGRAMS) $(TESTS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile ../common.ld + $(CC) -o $@ $(filter %.ld,$^) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^) + +-include $(foreach p,$(PROGRAMS) $(TESTS),$(patsubst %.c,.%.dep,$(filter %.c,$($p_SOURCES)))) + +.PHONY: install-dir $(INSTALL_PROGS)