[dpdk-dev,v2] mk: fix make defconfig on FreeBSD
Checks
Commit Message
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.hunt@intel.com>
---
mk/rte.sdkconfig.mk | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
Comments
10/04/2018 17:44, David Hunt:
> 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.
[...]
> +compiler:=$(filter clang gcc icc cc,$(shell ${CC} --version))
You should not invoke a shell command outside of a rule.
Please try to move it inside the defconfig context.
Reason for this query?
1/ avoid polluting the rest of the makefile
2/ it breaks doc compilation
Why it breaks doc?
Because it breaks "make -R showversion" which is called in doc/guides/conf.py.
Tip: CC is not always defined :)
@@ -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),)