[dpdk-dev,v2,2/2] mk: add sensible default target with defconfig
Checks
Commit Message
Users can now use 'make defconfig' to generate a configuration using
the most appropriate defaults for the current machine.
<arch-machine-execenv-toolchain>
arch taken from uname -m
machine defaults to native
execenv is taken from uname, Linux=linuxapp, otherwise bsdapp
toolchain is taken from $CC -v to see which compiler to use
Signed-off-by: David Hunt <david.hunt@intel.com>
---
mk/rte.sdkconfig.mk | 28 +++++++++++++++++++++++++---
mk/rte.sdkroot.mk | 4 ++--
2 files changed, 27 insertions(+), 5 deletions(-)
@@ -60,16 +60,38 @@ showconfigs:
.PHONY: notemplate
notemplate:
- @printf "No template specified. "
- @echo "Use T=template among the following list:"
+ @printf "No template specified. Use 'make defconfig' or "
+ @echo "use T=template from the following list:"
@$(MAKE) -rR showconfigs | sed 's,^, ,'
+
+.PHONY: defconfig
+defconfig:
+ @$(MAKE) config T=$(shell \
+ uname -m | awk '{ \
+ if ($$0 == "aarch64") { \
+ print "arm64-armv8a"} \
+ else if ($$0 == "armv7l") { \
+ print "arm-armv7a"} \
+ else if ($$0 == "ppc64") { \
+ print "ppc_64-power8"} \
+ else { \
+ printf "%s-native", $$0} }')-$(shell \
+ uname | awk '{ \
+ if ($$0 == "Linux") { \
+ print "linuxapp"} \
+ else { \
+ print "bsdapp"} }')-$(shell \
+ ${CC} -v 2>&1 | \
+ grep " version " | cut -d ' ' -f 1)
+
.PHONY: config
ifeq ($(RTE_CONFIG_TEMPLATE),)
config: notemplate
else
config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile
- @echo "Configuration done"
+ @echo "Configuration done using "$(shell basename \
+ $(RTE_CONFIG_TEMPLATE) | sed "s/defconfig_//g")
endif
$(RTE_OUTPUT):
@@ -90,8 +90,8 @@ export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n
.PHONY: default
default: all
-.PHONY: config showconfigs showversion showversionum
-config showconfigs showversion showversionum:
+.PHONY: defconfig config showconfigs showversion showversionum
+defconfig config showconfigs showversion showversionum:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
.PHONY: cscope gtags tags etags