X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=Makefile;fp=Makefile;h=fd10f436d864a6a34383950ffbb6e1d59e5811d4;hb=145fc6b67ea3e456f649040a5a0434d5b5d89c80;hp=3e2bac57faa316541ae5d7ed8a2e0d6b18617aeb;hpb=e931498be233820c2912c9100045cba4680086fa;p=osl.git diff --git a/Makefile b/Makefile index 3e2bac5..fd10f43 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ # increases performance and avoids hard-to-debug behaviour. .SUFFIXES: MAKEFLAGS += -Rr -ifeq ("$(origin CC)", "default") +CC := $(CC) +ifeq ($(strip $(CC)),) CC := cc endif @@ -22,9 +23,6 @@ executables := oslfsck man_pages := oslfsck.1 INSTALL := install -ifeq "$(origin CC)" "default" - CC := cc -endif MKDIR := mkdir -p RM := rm -f LN := ln @@ -83,12 +81,20 @@ ifeq ($(findstring clean, $(MAKECMDGOALS)),) -include $(deps) endif -# List osl.h in the prerequisites to make sure we generate it before attempting -# to run the compiler. This matters only when the .d file does not exist. -%.o: %.c osl.h Makefile errtab.h +# The files to generate before attempting to run the compiler. These +# are the order-only prerequisites in the rule below. +pre_deps := osl.h errtab.h oslfsck.lsg.h + +# The .d and .o files are both created from a single cc invocation. +define CC_CMD $(CC) $(OSL_CPPFLAGS) $(CPPFLAGS) \ - -c -MMD -MF $(*F).d -MT $@ \ + -c -MMD -MF $(*F).d -MT $(*F).o \ $(OSL_CFLAGS) $(CFLAGS) $< +endef +%.o: %.c Makefile | $(pre_deps) + $(CC_CMD) +%.d: %.c Makefile | $(pre_deps) + $(CC_CMD) fsck.o: oslfsck.lsg.h oslfsck: $(fsck_objects)