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="" |
