Thomas Heijligen has uploaded this change for review.

View Change

Makefile: merge compiler, hwlibs, features targets into config target

Change-Id: Ic76f923bca2beb6f95b8ea0cced4569b07e9b9ba
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
---
M Makefile
1 file changed, 47 insertions(+), 52 deletions(-)

git pull ssh://review.coreboot.org:29418/flashrom refs/changes/07/60107/1
diff --git a/Makefile b/Makefile
index 183a66d..2f51782 100644
--- a/Makefile
+++ b/Makefile
@@ -854,43 +854,12 @@
LIBFLASHROM_OBJS = $(CHIP_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS)
OBJS = $(CLI_OBJS) $(LIBFLASHROM_OBJS)

-all: hwlibs features $(PROGRAM)$(EXEC_SUFFIX) $(PROGRAM).8
+all: config $(PROGRAM)$(EXEC_SUFFIX) $(PROGRAM).8
ifeq ($(ARCH), x86)
@+$(MAKE) -C util/ich_descriptors_tool/ HOST_OS=$(HOST_OS) TARGET_OS=$(TARGET_OS)
endif

-$(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
- $(CC) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LDFLAGS)
-
-libflashrom.a: $(LIBFLASHROM_OBJS)
- $(AR) rcs $@ $^
- $(RANLIB) $@
-
-# TAROPTIONS reduces information leakage from the packager's system.
-# If other tar programs support command line arguments for setting uid/gid of
-# stored files, they can be handled here as well.
-TAROPTIONS = $(shell LC_ALL=C tar --version|grep -q GNU && echo "--owner=root --group=root")
-
-%.o: %.c features
- $(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) $(FEATURE_CFLAGS) $(SCMDEF) -o $@ -c $<
-
-# Make sure to add all names of generated binaries here.
-# This includes all frontends and libflashrom.
-# We don't use EXEC_SUFFIX here because we want to clean everything.
-clean:
- rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a $(filter-out Makefile.d, $(wildcard *.d *.o)) $(PROGRAM).8 $(PROGRAM).8.html $(BUILD_DETAILS_FILE)
- @+$(MAKE) -C util/ich_descriptors_tool/ clean
-
-distclean: clean
- rm -f .libdeps
-
-strip: $(PROGRAM)$(EXEC_SUFFIX)
- $(STRIP) $(STRIP_ARGS) $(PROGRAM)$(EXEC_SUFFIX)
-
-# to define test programs we use verbatim variables, which get exported
-# to environment variables and are referenced with $$<varname> later
-
-compiler: featuresavailable
+config:
@echo -n "C compiler found: "
@if [ $(CC_WORKING) = yes ]; \
then $(CC) --version 2>/dev/null | head -1; \
@@ -904,8 +873,6 @@
echo " This might work but usually does not, please beware."; fi
@echo "Target endian: $(ENDIAN)"
@if [ $(ENDIAN) = unknown ]; then echo Aborting.; exit 1; fi
-
-hwlibs: compiler
@echo Dependency libpci found: $(HAS_LIBPCI)
@if [ $(HAS_LIBPCI) = yes ]; then \
echo " Checking for old \"pci_get_dev()\": $(HAS_PCI_OLD_GET_DEV)";\
@@ -933,28 +900,56 @@
echo " CFLAGS: $(CONFIG_LIBFTDI1_CFLAGS)"; \
echo " LDFLAGS: $(CONFIG_LIBFTDI1_LDFLAGS)"; \
fi
-
-# If a user does not explicitly request a non-working feature, we should
-# silently disable it. However, if a non-working (does not compile) feature
-# is explicitly requested, we should bail out with a descriptive error message.
-# We also have to check that at least one programmer driver is enabled.
-featuresavailable:
-ifeq ($(PROGRAMMER_OBJS),)
- @echo "You have to enable at least one programmer driver!"
- @false
-endif
-ifneq ($(UNSUPPORTED_FEATURES), )
- @echo "The following features are unavailable on your machine: $(UNSUPPORTED_FEATURES)"
- @false
-endif
-
-features: hwlibs
@echo "Checking for header \"mtd/mtd-user.h\": $(HAS_LINUX_MTD)"
@echo "Checking for header \"linux/spi/spidev.h\": $(HAS_LINUX_SPI)"
@echo "Checking for header \"linux/i2c-dev.h\": $(HAS_LINUX_I2C)"
@echo "Checking for header \"linux/i2c.h\": $(HAS_LINUX_I2C)"
@echo "Checking for header \"sys/utsname.h\": $(HAS_UTSNAME)"
@echo "Checking for function \"clock_gettime\": $(HAS_CLOCK_GETTIME)"
+ @if ! [ "$(PROGRAMMER_OBJS)" ]; then \
+ echo "You have to enable at least one programmer driver!"; \
+ exit 1; \
+ fi
+ @if [ "$(UNSUPPORTED_FEATURES)" ]; then \
+ echo "The following features are unavailable on your machine: $(UNSUPPORTED_FEATURES)" \
+ exit 1; \
+ fi
+
+%.o: %.c config
+ $(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) $(FEATURE_CFLAGS) $(SCMDEF) -o $@ -c $<
+
+
+$(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
+ $(CC) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LDFLAGS)
+
+libflashrom.a: $(LIBFLASHROM_OBJS)
+ $(AR) rcs $@ $^
+ $(RANLIB) $@
+
+# TAROPTIONS reduces information leakage from the packager's system.
+# If other tar programs support command line arguments for setting uid/gid of
+# stored files, they can be handled here as well.
+TAROPTIONS = $(shell LC_ALL=C tar --version|grep -q GNU && echo "--owner=root --group=root")
+
+
+# Make sure to add all names of generated binaries here.
+# This includes all frontends and libflashrom.
+# We don't use EXEC_SUFFIX here because we want to clean everything.
+clean:
+ rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a $(filter-out Makefile.d, $(wildcard *.d *.o)) $(PROGRAM).8 $(PROGRAM).8.html $(BUILD_DETAILS_FILE)
+ @+$(MAKE) -C util/ich_descriptors_tool/ clean
+
+distclean: clean
+ rm -f .libdeps
+
+strip: $(PROGRAM)$(EXEC_SUFFIX)
+ $(STRIP) $(STRIP_ARGS) $(PROGRAM)$(EXEC_SUFFIX)
+
+# to define test programs we use verbatim variables, which get exported
+# to environment variables and are referenced with $$<varname> later
+
+
+

$(PROGRAM).8.html: $(PROGRAM).8
@groff -mandoc -Thtml $< >$@
@@ -1007,7 +1002,7 @@
libpayload: clean
make CC="CC=i386-elf-gcc lpgcc" AR=i386-elf-ar RANLIB=i386-elf-ranlib

-.PHONY: all install clean distclean compiler hwlibs features _export export tarball featuresavailable libpayload
+.PHONY: all install clean distclean config _export export tarball libpayload

# Disable implicit suffixes and built-in rules (for performance and profit)
.SUFFIXES:

To view, visit change 60107. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: Ic76f923bca2beb6f95b8ea0cced4569b07e9b9ba
Gerrit-Change-Number: 60107
Gerrit-PatchSet: 1
Gerrit-Owner: Thomas Heijligen <src@posteo.de>
Gerrit-MessageType: newchange