From 2a0155663e0213d5b7492c433f8a4edece4db838 Mon Sep 17 00:00:00 2001 From: vbendeb Date: Wed, 16 Jun 2010 12:49:31 -0700 Subject: [PATCH] One of the last moment mods of the original make rework CL (http://codereview.chromium.org/2845001) resulted in broken dependencies. This CL completes the modification (the trick is to ensure that the default target is always the first). Note that the tests subdirectory Makefile still does not properly follow the dependencies, it will have to be addressed in a separate CL. Tested by touching different .h and .c files and observing the results. Review URL: http://codereview.chromium.org/2819004 --- cgpt/Makefile | 4 ++-- common.mk | 9 +++++++++ misclibs/Makefile | 1 - utility/Makefile | 2 +- vkernel/Makefile | 1 - 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cgpt/Makefile b/cgpt/Makefile index 47856d5bc1..84895a7a71 100644 --- a/cgpt/Makefile +++ b/cgpt/Makefile @@ -22,9 +22,9 @@ ALL_SRCS = \ cmd_boot.c \ cgpt_common.c -include ../common.mk +main: $(PROGNAME) -all: $(PROGNAME) +include ../common.mk $(PROGNAME): $(ALL_OBJS) $(LIBS) $(CC) -o $(PROGNAME) $(CFLAGS) $^ $(LDFLAGS) diff --git a/common.mk b/common.mk index a4a21dd1fd..f0de87987c 100644 --- a/common.mk +++ b/common.mk @@ -5,6 +5,15 @@ ALL_OBJS = $(ALL_SRCS:%.c=${BUILD_ROOT}/%.o) ALL_DEPS = $(ALL_OBJS:%.o=%.o.d) +# +# For this target (all) to be built by default, the including file must not +# define any other targets above the line including this file. +# +# This all: rule must be above the %.o: %.c rule below, otherwise the +# rule below becomes the default target. +# +all: ${ALL_OBJS} + ${BUILD_ROOT}/%.o : %.c $(CC) $(CFLAGS) $(INCLUDES) -MMD -MF $@.d -c -o $@ $< diff --git a/misclibs/Makefile b/misclibs/Makefile index 732f7eefa4..e49687140a 100644 --- a/misclibs/Makefile +++ b/misclibs/Makefile @@ -14,4 +14,3 @@ ALL_SRCS = file_keys.c signature_digest.c include ../common.mk -all: $(ALL_OBJS) diff --git a/utility/Makefile b/utility/Makefile index 9a05aa7c24..eca60560c4 100644 --- a/utility/Makefile +++ b/utility/Makefile @@ -82,4 +82,4 @@ install: $(TARGET_BINS) cp -f $(TARGET_BINS) $(DESTDIR) chmod a+rx $(patsubst %,$(DESTDIR)/%,$(TARGET_NAMES)) --include ALL_DEPS +-include ${ALL_DEPS} diff --git a/vkernel/Makefile b/vkernel/Makefile index b71466d0f2..08005faef9 100644 --- a/vkernel/Makefile +++ b/vkernel/Makefile @@ -15,4 +15,3 @@ ALL_SRCS = kernel_image.c include ../common.mk -all: $(ALL_OBJS)