Thomas Heijligen has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/60107 )
Change subject: Makefile: merge compiler, hwlibs, features targets into config target ......................................................................
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: