mk: factorize config rules

Error message for missing template is factorized in notemplate rule.

RTE_OUTPUT directory is marked as order-only prerequisite.

RTE_OUTPUT is always created after having been cleaned for rte_config.h.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
Thomas Monjalon 2014-06-10 15:42:57 +02:00
parent 6820e8efef
commit 3c53c0945e

View File

@ -51,23 +51,28 @@ INSTALL_TARGETS := $(addsuffix _install,$(INSTALL_CONFIGS))
showconfigs:
@$(foreach CONFIG, $(INSTALL_CONFIGS), echo $(CONFIG);)
.PHONY: config
ifeq ($(RTE_CONFIG_TEMPLATE),)
config:
.PHONY: notemplate
notemplate:
@printf "No template specified. "
@echo "Use T=template among the following list:"
@$(MAKE) -rR showconfigs | sed 's,^, ,'
.PHONY: config
ifeq ($(RTE_CONFIG_TEMPLATE),)
config: notemplate
else
config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile
$(Q)$(MAKE) depdirs
@echo "Configuration done"
endif
$(RTE_OUTPUT):
$(Q)mkdir -p $@
ifdef NODOTCONF
$(RTE_OUTPUT)/.config: ;
else
$(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE
@[ -d $(RTE_OUTPUT) ] || mkdir -p $(RTE_OUTPUT)
$(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT)
$(Q)if [ "$(RTE_CONFIG_TEMPLATE)" != "" -a -f "$(RTE_CONFIG_TEMPLATE)" ]; then \
$(CPP) -undef -P -x assembler-with-cpp \
-fdirectives-only -ffreestanding \
@ -78,11 +83,7 @@ $(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE
fi ; \
rm -f $(RTE_OUTPUT)/.config_tmp ; \
else \
echo -n "No template specified. Use T=template " ; \
echo "among the following list:" ; \
for t in $(INSTALL_CONFIGS); do \
echo " $$t" ; \
done ; \
$(MAKE) -rRf $(RTE_SDK)/mk/rte.sdkconfig.mk notemplate; \
fi
endif
@ -92,8 +93,7 @@ SDK_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_SRCDIR)) \
$(abspath $(RTE_OUTPUT)))
OUTPUT_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_OUTPUT)) \
$(abspath $(RTE_SRCDIR)))
$(RTE_OUTPUT)/Makefile:
@[ -d $(RTE_OUTPUT) ] || mkdir -p $(RTE_OUTPUT)
$(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT)
$(Q)$(RTE_SDK)/scripts/gen-build-mk.sh $(SDK_RELPATH) $(OUTPUT_RELPATH) \
> $(RTE_OUTPUT)/Makefile
@ -103,7 +103,7 @@ $(RTE_OUTPUT)/include/rte_config.h: $(RTE_OUTPUT)/.config
$(Q)rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
$(RTE_OUTPUT)/hostapp $(RTE_OUTPUT)/lib \
$(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod $(RTE_OUTPUT)/build
@[ -d $(RTE_OUTPUT)/include ] || mkdir -p $(RTE_OUTPUT)/include
$(Q)mkdir -p $(RTE_OUTPUT)/include
$(Q)$(RTE_SDK)/scripts/gen-config-h.sh $(RTE_OUTPUT)/.config \
> $(RTE_OUTPUT)/include/rte_config.h