mk: fix make defconfig on FreeBSD

On FreeBSD, make defconfig generates the config as
"defconfig_x86_64-bsdapp-", which does not resolve to any known
config file.

On FreeBSD, we get amd64 out of "uname -m", which was not handled by
the list of checks, but which now resolves to x86_64-native.

Then we run '$CC --version', and use grep -o with the list of known
compilers, and set to either gcc, icc or clang. Grep's '-o' option
returns the matched word rather than the whole line, making the
result easier to use.

The remaining code in the patch then takes ${compiler}, the "uname -m"
output and assembles them all together into a valid freebsd config name,
i.e. "defconfig_x86_64-native-bsdapp-clang".

Fixes: bce6c42c4a ("mk: add sensible default target with defconfig")
Cc: stable@dpdk.org

Signed-off-by: David Hunt <david.hunt@intel.com>
Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
David Hunt 2018-04-23 14:09:02 +01:00 committed by Thomas Monjalon
parent b8c835909e
commit 6ace79505d

View File

@ -36,7 +36,6 @@ notemplate:
@echo "use T=template from the following list:"
@$(MAKE) -rR showconfigs | sed 's,^, ,'
.PHONY: defconfig
defconfig:
@$(MAKE) config T=$(shell \
@ -47,15 +46,25 @@ defconfig:
print "arm-armv7a"} \
else if ($$0 == "ppc64") { \
print "ppc_64-power8"} \
else if ($$0 == "amd64") { \
print "x86_64-native"} \
else { \
printf "%s-native", $$0} }')-$(shell \
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)
print "bsdapp"} }' \
)-$(shell \
${CC} --version | grep -o 'cc\|gcc\|icc\|clang' | awk \
'{ \
if ($$1 == "cc") { \
print "gcc" } \
else { \
print $$1 } \
}' \
)
.PHONY: config
ifeq ($(RTE_CONFIG_TEMPLATE),)