X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=Makefile;h=40f40e497befc45593cd23b6201330081f4318a2;hb=4eb47c41bca7345e6cfdf6b91fcc46012fdf509b;hp=ef00f50cffdec1fdf36b24f8fa0f4b5f0adb8035;hpb=eefbddd33850c724d7b5a07b484b00d0b6821961;p=dss.git diff --git a/Makefile b/Makefile index ef00f50..40f40e4 100644 --- a/Makefile +++ b/Makefile @@ -4,14 +4,17 @@ INSTALL ?= install INSTALL_PROGRAM ?= $(INSTALL) INSTALL_DATA ?= $(INSTALL) -m 644 MKDIR_P := mkdir -p +VERSION := $(shell ./version-gen.sh dss version.c) -VERSION_STRING = 1.0.0 +units := dss str file exec sig daemon df tv snap ipc dss.lsg version +objs := $(addsuffix .o, $(units)) +deps := $(addsuffix .d, $(units)) -dss_objects := dss.o str.o file.o exec.o sig.o daemon.o df.o tv.o snap.o ipc.o dss.lsg.o all: dss dss.1 man: dss.1 +$(objs): dss.lsg.h Makefile +-include $(deps) -DSS_CPPFLAGS := -DVERSION_STRING='"$(VERSION_STRING)"' DSS_CPPFLAGS += -Wunused-macros DSS_CFLAGS := -Wno-sign-compare -g -Wunused -Wundef @@ -27,29 +30,38 @@ DSS_CFLAGS += -Wunused-parameter DSS_CFLAGS += -Wbad-function-cast DSS_CFLAGS += -Wshadow -Makefile.deps: $(wildcard *.c *.h) - $(CC) -MM -MG $(DSS_CPPFLAGS) $(CPPFLAGS) $(DSS_CFLAGS) $(CFLAGS) *.c > $@ - --include Makefile.deps - -dss: $(dss_objects) - $(CC) -o $@ $(dss_objects) $(LDFLAGS) -llopsub - -%.o: %.c Makefile - $(CC) -c $(DSS_CPPFLAGS) $(CPPFLAGS) $(DSS_CFLAGS) $(CFLAGS) $< - +.ONESHELL: +.SHELLFLAGS := -ec +ifeq ("$(origin V)", "command line") + SAY = +else + SAY = @printf '%s\n' '$(strip $(1))' +endif +version.c: + $(call SAY, VG $@) + ./version-gen.sh dss version.c > /dev/null +dss: $(objs) + $(call SAY, LD $@) + $(CC) -o $@ $(objs) $(LDFLAGS) -llopsub +%.o: %.c + $(call SAY, CC $<) + $(CC) -c -o $@ $(DSS_CPPFLAGS) $(CPPFLAGS) $(DSS_CFLAGS) $(CFLAGS) \ + -MMD -MF $(*F).d -MT $@ $< %.lsg.h: %.suite + $(call SAY, LSGH $<) lopsubgen --gen-h=$@ < $< %.lsg.c: %.suite + $(call SAY, LSGC $<) lopsubgen --gen-c=$@ < $< %.1: %.suite - lopsubgen --gen-man=$@ --version-string=$(VERSION_STRING) < $< - + $(call SAY, LSGM $<) + lopsubgen --gen-man=$@ --version-string=$(VERSION) < $< %.1.html: %.1 + $(call SAY, GROFF $<) groff -m man -Thtml -P -l -P -r $< | sed -e '1,/^/d; /^<\/body>/,$$d' > $@ - clean: - rm -f *.o dss dss.1 dss.1.html Makefile.deps *~ index.html dss.lsg.h dss.lsg.c + $(call SAY, CLEAN) + rm -f *.[od] dss dss.1 *.html dss.lsg.[ch] version.c ifneq ($(findstring strip, $(MAKECMDGOALS)),) strip_option := -s @@ -71,3 +83,5 @@ index.html: dss.1.html index.html.in INSTALL README NEWS sed -e '1,/@INSTALL@/d' -e '/@MAN_PAGE@/,$$d' index.html.in >> $@ cat dss.1.html >> $@ sed -e '1,/@MAN_PAGE@/d' index.html.in >> $@ + +-include Makefile.local