summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hunt <david.hunt@intel.com>2017-08-04 11:39:02 +0100
committerThomas Monjalon <thomas@monjalon.net>2017-08-05 10:27:04 +0200
commitbce6c42c4ad5213126adcf13786642589750776f (patch)
treeaceaa7cfa564db8282ddbaa8db8ae20ea5d1d1c3
parent0de21567d24e873570a8f1f9f1501cba68bcd1b1 (diff)
downloaddpdk-bce6c42c4ad5213126adcf13786642589750776f.zip
dpdk-bce6c42c4ad5213126adcf13786642589750776f.tar.gz
dpdk-bce6c42c4ad5213126adcf13786642589750776f.tar.xz
mk: add sensible default target with defconfig
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> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
-rw-r--r--doc/build-sdk-quick.txt3
-rw-r--r--mk/rte.sdkconfig.mk28
-rw-r--r--mk/rte.sdkroot.mk4
3 files changed, 30 insertions, 5 deletions
diff --git a/doc/build-sdk-quick.txt b/doc/build-sdk-quick.txt
index 8d41052..2b5d493 100644
--- a/doc/build-sdk-quick.txt
+++ b/doc/build-sdk-quick.txt
@@ -1,7 +1,10 @@
Basic build
+ make defconfig && make
+ or
make config T=x86_64-native-linuxapp-gcc && make
Build commands
config get configuration from target template (T=)
+ defconfig auto-select target template based on arch, OS, etc.
all same as build (default rule)
build build in a configured directory
clean remove files but keep configuration
diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
index 1f2d6bd..9736341 100644
--- a/mk/rte.sdkconfig.mk
+++ b/mk/rte.sdkconfig.mk
@@ -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" \
+ $(patsubst defconfig_%,%,$(notdir $(RTE_CONFIG_TEMPLATE)))
endif
$(RTE_OUTPUT):
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
index 2843b7d..e2e3eff 100644
--- a/mk/rte.sdkroot.mk
+++ b/mk/rte.sdkroot.mk
@@ -88,8 +88,8 @@ export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n
.PHONY: default
default: all
-.PHONY: config showconfigs showversion showversionum
-config showconfigs showversion showversionum:
+.PHONY: config defconfig showconfigs showversion showversionum
+config defconfig showconfigs showversion showversionum:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
.PHONY: cscope gtags tags etags