diff options
author | Ron Yorston <rmy@pobox.com> | 2024-01-20 09:35:50 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2024-01-20 09:35:50 +0000 |
commit | 35f59d8ec0025647f75563c0bedecfc8e082a971 (patch) | |
tree | c532a05eb29cbfe08cee09fc2292c6070b26fc07 | |
parent | 042520e46621e434c9bd2da6b100b32ccdee55a5 (diff) | |
download | busybox-w32-35f59d8ec0025647f75563c0bedecfc8e082a971.tar.gz busybox-w32-35f59d8ec0025647f75563c0bedecfc8e082a971.tar.bz2 busybox-w32-35f59d8ec0025647f75563c0bedecfc8e082a971.zip |
build system: make compiler names configurable
The top-level Makefile hardcoded the host and cross compiler name
to "gcc". Make it possible to set different values either on the
command line (make CROSS_COMPILER=clang) or in the configuration
file.
-rw-r--r-- | Config.in | 12 | ||||
-rw-r--r-- | Makefile | 26 | ||||
-rw-r--r-- | configs/mingw32_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64a_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64u_defconfig | 4 |
6 files changed, 48 insertions, 6 deletions
@@ -689,6 +689,18 @@ config CROSS_COMPILER_PREFIX | |||
689 | 689 | ||
690 | Native builds leave this empty. | 690 | Native builds leave this empty. |
691 | 691 | ||
692 | config HOST_COMPILER | ||
693 | string "Host compiler" | ||
694 | default "gcc" | ||
695 | help | ||
696 | Name of the compiler to use for host binaries. | ||
697 | |||
698 | config CROSS_COMPILER | ||
699 | string "Cross compiler" | ||
700 | default "gcc" | ||
701 | help | ||
702 | Name of the compiler to use for cross compilation. | ||
703 | |||
692 | config SYSROOT | 704 | config SYSROOT |
693 | string "Path to sysroot" | 705 | string "Path to sysroot" |
694 | default "" | 706 | default "" |
@@ -196,6 +196,28 @@ ARCH ?= $(SUBARCH) | |||
196 | # Architecture as present in compile.h | 196 | # Architecture as present in compile.h |
197 | UTS_MACHINE := $(ARCH) | 197 | UTS_MACHINE := $(ARCH) |
198 | 198 | ||
199 | HOST_COMPILER ?= | ||
200 | ifeq ($(HOST_COMPILER),) | ||
201 | HOST_COMPILER := $(shell grep ^CONFIG_HOST_COMPILER= .config 2>/dev/null) | ||
202 | HOST_COMPILER := $(subst CONFIG_HOST_COMPILER=,,$(HOST_COMPILER)) | ||
203 | HOST_COMPILER := $(subst ",,$(HOST_COMPILER)) | ||
204 | #") | ||
205 | endif | ||
206 | ifeq ($(HOST_COMPILER),) | ||
207 | HOST_COMPILER := gcc | ||
208 | endif | ||
209 | |||
210 | CROSS_COMPILER ?= | ||
211 | ifeq ($(CROSS_COMPILER),) | ||
212 | CROSS_COMPILER := $(shell grep ^CONFIG_CROSS_COMPILER= .config 2>/dev/null) | ||
213 | CROSS_COMPILER := $(subst CONFIG_CROSS_COMPILER=,,$(CROSS_COMPILER)) | ||
214 | CROSS_COMPILER := $(subst ",,$(CROSS_COMPILER)) | ||
215 | #") | ||
216 | endif | ||
217 | ifeq ($(CROSS_COMPILER),) | ||
218 | CROSS_COMPILER := gcc | ||
219 | endif | ||
220 | |||
199 | # SHELL used by kbuild | 221 | # SHELL used by kbuild |
200 | CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ | 222 | CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ |
201 | else if [ -x /bin/bash ]; then echo /bin/bash; \ | 223 | else if [ -x /bin/bash ]; then echo /bin/bash; \ |
@@ -275,7 +297,7 @@ export quiet Q KBUILD_VERBOSE | |||
275 | # Look for make include files relative to root of kernel src | 297 | # Look for make include files relative to root of kernel src |
276 | MAKEFLAGS += --include-dir=$(srctree) | 298 | MAKEFLAGS += --include-dir=$(srctree) |
277 | 299 | ||
278 | HOSTCC = gcc | 300 | HOSTCC = $(HOST_COMPILER) |
279 | HOSTCXX = g++ | 301 | HOSTCXX = g++ |
280 | HOSTCFLAGS := | 302 | HOSTCFLAGS := |
281 | HOSTCXXFLAGS := | 303 | HOSTCXXFLAGS := |
@@ -293,7 +315,7 @@ MAKEFLAGS += -rR | |||
293 | # Make variables (CC, etc...) | 315 | # Make variables (CC, etc...) |
294 | 316 | ||
295 | AS = $(CROSS_COMPILE)as | 317 | AS = $(CROSS_COMPILE)as |
296 | CC = $(CROSS_COMPILE)gcc | 318 | CC = $(CROSS_COMPILE)$(CROSS_COMPILER) |
297 | LD = $(CC) -nostdlib | 319 | LD = $(CC) -nostdlib |
298 | CPP = $(CC) -E | 320 | CPP = $(CC) -E |
299 | AR = $(CROSS_COMPILE)ar | 321 | AR = $(CROSS_COMPILE)ar |
diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig index 0f674d45c..c5e108a30 100644 --- a/configs/mingw32_defconfig +++ b/configs/mingw32_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Wed Dec 20 13:23:38 2023 | 4 | # Sat Jan 20 09:32:45 2024 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -74,6 +74,8 @@ CONFIG_OVERRIDE_APPLETS="" | |||
74 | # CONFIG_FEATURE_INDIVIDUAL is not set | 74 | # CONFIG_FEATURE_INDIVIDUAL is not set |
75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | 75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set |
76 | CONFIG_CROSS_COMPILER_PREFIX="i686-w64-mingw32-" | 76 | CONFIG_CROSS_COMPILER_PREFIX="i686-w64-mingw32-" |
77 | CONFIG_HOST_COMPILER="gcc" | ||
78 | CONFIG_CROSS_COMPILER="gcc" | ||
77 | CONFIG_SYSROOT="" | 79 | CONFIG_SYSROOT="" |
78 | CONFIG_EXTRA_CFLAGS="" | 80 | CONFIG_EXTRA_CFLAGS="" |
79 | CONFIG_EXTRA_LDFLAGS="" | 81 | CONFIG_EXTRA_LDFLAGS="" |
diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig index 37f95f4c8..341da22d6 100644 --- a/configs/mingw64_defconfig +++ b/configs/mingw64_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Wed Dec 20 13:23:38 2023 | 4 | # Sat Jan 20 09:32:45 2024 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -74,6 +74,8 @@ CONFIG_OVERRIDE_APPLETS="" | |||
74 | # CONFIG_FEATURE_INDIVIDUAL is not set | 74 | # CONFIG_FEATURE_INDIVIDUAL is not set |
75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | 75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set |
76 | CONFIG_CROSS_COMPILER_PREFIX="x86_64-w64-mingw32-" | 76 | CONFIG_CROSS_COMPILER_PREFIX="x86_64-w64-mingw32-" |
77 | CONFIG_HOST_COMPILER="gcc" | ||
78 | CONFIG_CROSS_COMPILER="gcc" | ||
77 | CONFIG_SYSROOT="" | 79 | CONFIG_SYSROOT="" |
78 | CONFIG_EXTRA_CFLAGS="" | 80 | CONFIG_EXTRA_CFLAGS="" |
79 | CONFIG_EXTRA_LDFLAGS="" | 81 | CONFIG_EXTRA_LDFLAGS="" |
diff --git a/configs/mingw64a_defconfig b/configs/mingw64a_defconfig index 0ee83fe11..8eb8bbcfa 100644 --- a/configs/mingw64a_defconfig +++ b/configs/mingw64a_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Wed Dec 20 13:23:38 2023 | 4 | # Sat Jan 20 09:32:45 2024 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -74,6 +74,8 @@ CONFIG_OVERRIDE_APPLETS="" | |||
74 | # CONFIG_FEATURE_INDIVIDUAL is not set | 74 | # CONFIG_FEATURE_INDIVIDUAL is not set |
75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | 75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set |
76 | CONFIG_CROSS_COMPILER_PREFIX="aarch64-w64-mingw32-" | 76 | CONFIG_CROSS_COMPILER_PREFIX="aarch64-w64-mingw32-" |
77 | CONFIG_HOST_COMPILER="clang" | ||
78 | CONFIG_CROSS_COMPILER="clang" | ||
77 | CONFIG_SYSROOT="" | 79 | CONFIG_SYSROOT="" |
78 | CONFIG_EXTRA_CFLAGS="" | 80 | CONFIG_EXTRA_CFLAGS="" |
79 | CONFIG_EXTRA_LDFLAGS="" | 81 | CONFIG_EXTRA_LDFLAGS="" |
diff --git a/configs/mingw64u_defconfig b/configs/mingw64u_defconfig index f26b17ec9..4218c57a5 100644 --- a/configs/mingw64u_defconfig +++ b/configs/mingw64u_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Wed Dec 20 13:23:38 2023 | 4 | # Sat Jan 20 09:32:45 2024 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -74,6 +74,8 @@ CONFIG_OVERRIDE_APPLETS="" | |||
74 | # CONFIG_FEATURE_INDIVIDUAL is not set | 74 | # CONFIG_FEATURE_INDIVIDUAL is not set |
75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set | 75 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set |
76 | CONFIG_CROSS_COMPILER_PREFIX="x86_64-w64-mingw32-" | 76 | CONFIG_CROSS_COMPILER_PREFIX="x86_64-w64-mingw32-" |
77 | CONFIG_HOST_COMPILER="gcc" | ||
78 | CONFIG_CROSS_COMPILER="gcc" | ||
77 | CONFIG_SYSROOT="" | 79 | CONFIG_SYSROOT="" |
78 | CONFIG_EXTRA_CFLAGS="" | 80 | CONFIG_EXTRA_CFLAGS="" |
79 | CONFIG_EXTRA_LDFLAGS="" | 81 | CONFIG_EXTRA_LDFLAGS="" |