config: add choice for selecting the LLVM toolchain type
authorFelix Fietkau <nbd@nbd.name>
Mon, 1 Nov 2021 14:36:36 +0000 (15:36 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 1 Nov 2021 15:38:40 +0000 (16:38 +0100)
This is global for all BPF based packages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
toolchain/Config.in
tools/Makefile

index 1d230ca22f47c72b82c51c66a8dc9b61b4af5e6e..15151358065844a6f077977a9ae1134b92fe1d6d 100644 (file)
@@ -37,13 +37,31 @@ menuconfig TARGET_OPTIONS
 
                  Most people will answer N.
 
-config BUILD_LLVM_BPF
-       bool "Build LLVM toolchain for eBPF" if DEVEL
-       help
-         If enabled, a LLVM toolchain for building eBPF binaries will be built.
-         If this is not enabled, eBPF packages can only be built if the host
-         has a suitable toolchain
 
+       choice BPF_TOOLCHAIN
+               prompt "BPF toolchain" if DEVEL
+               default BPF_TOOLCHAIN_NONE
+
+               config BPF_TOOLCHAIN_NONE
+                       bool "None"
+
+               config BPF_TOOLCHAIN_HOST
+                       bool "Use host LLVM toolchain"
+
+               config BPF_TOOLCHAIN_BUILD_LLVM
+                       bool "Build LLVM toolchain for eBPF"
+                       help
+                         If enabled, a LLVM toolchain for building eBPF binaries will be built.
+                         If this is not enabled, eBPF packages can only be built if the host
+                         has a suitable toolchain
+       endchoice
+
+       config BPF_TOOLCHAIN_HOST_PATH
+               string
+               depends on BPF_TOOLCHAIN_HOST
+               prompt "Host LLVM toolchain path (prefix)" if DEVEL
+               default "/usr/local/opt/llvm" if HOST_OS_MACOS
+               default ""
 
 menuconfig EXTERNAL_TOOLCHAIN
        bool
index dc665f6b46c71f0bc2b8c3d1d2721ced11ac00b4..f070692942102fc62effb5fed668e009816a222b 100644 (file)
@@ -35,7 +35,7 @@ tools-$(CONFIG_TARGET_mxs) += elftosb sdimage
 tools-$(CONFIG_TARGET_tegra) += cbootimage cbootimage-configs
 tools-$(CONFIG_USES_MINOR) += kernel2minor
 tools-$(CONFIG_USE_SPARSE) += sparse
-tools-$(CONFIG_BUILD_LLVM_BPF) += llvm-bpf
+tools-$(CONFIG_BPF_TOOLCHAIN_BUILD_LLVM) += llvm-bpf
 
 # builddir dependencies
 $(curdir)/autoconf/compile := $(curdir)/m4/compile