On FreeBSD, make defconfig generates the config as "defconfig_x86_64-bsdapp-", which does not resolve to any known config file.
This fix starts by introducing a 'compiler' variable which is set by executing "${CC} --version" and pulling out the name of the compiler. On FreeBDS, we get amd64 out of "uname -m", which was not handled by the list of checks, but which now resolves to x86_64-native 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: bce6c42c4ad5 ("mk: add sensible default target with defconfig") Signed-off-by: David Hunt <david.h...@intel.com> --- mk/rte.sdkconfig.mk | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk index 0664725ee..7b1684375 100644 --- a/mk/rte.sdkconfig.mk +++ b/mk/rte.sdkconfig.mk @@ -36,6 +36,7 @@ notemplate: @echo "use T=template from the following list:" @$(MAKE) -rR showconfigs | sed 's,^, ,' +compiler:=$(filter clang gcc icc cc,$(shell ${CC} --version)) .PHONY: defconfig defconfig: @@ -47,15 +48,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 \ + echo | awk -v compiler=${compiler} \ + '{ \ + if (compiler == "cc") \ + { print "gcc" } \ + else \ + { print compiler } \ + }' \ + ) .PHONY: config ifeq ($(RTE_CONFIG_TEMPLATE),) -- 2.14.1