]> git.tuebingen.mpg.de Git - osl.git/blobdiff - Makefile
Merge branch 'refs/heads/t/sha3' into master
[osl.git] / Makefile
index fb8a01d3282a6fddf3a7b4866a0af198ab0dd2f6..fd10f436d864a6a34383950ffbb6e1d59e5811d4 100644 (file)
--- 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
 
@@ -14,17 +15,14 @@ includedir := $(PREFIX)/include
 bindir := $(PREFIX)/bin
 mandir := $(PREFIX)/man/man1
 
-objects := osl.o util.o rbtree.o sha1.o
-fsck_objects := fsck.o osl.o util.o rbtree.o sha1.o oslfsck.lsg.o
+objects := osl.o util.o rbtree.o sha1.o sha3.o sha256.o
+fsck_objects := fsck.o osl.o util.o rbtree.o sha1.o sha3.o sha256.o oslfsck.lsg.o
 deps := $(sort $(objects:.o=.d) $(fsck_objects:.o=.d))
 headers := osl.h
 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)