make: move extra builds to "build/extra/" subdirectories
This commit is contained in:
@@ -18,9 +18,11 @@ endif
|
||||
# default
|
||||
#***********************************************************************
|
||||
|
||||
__check_cache = $(if $(wildcard $1/CMakeCache.txt),@true,)
|
||||
run_config = $(call __check_cache,$1) $(CMAKE) -S . -B $1 $(UPX_CMAKE_CONFIG_FLAGS) -DCMAKE_BUILD_TYPE=$2
|
||||
run_build = $(CMAKE) --build $1 $(UPX_CMAKE_BUILD_FLAGS) --config $2
|
||||
run_cmake_config = $(CMAKE) -S . -B $1 $(UPX_CMAKE_CONFIG_FLAGS) -DCMAKE_BUILD_TYPE=$2
|
||||
run_cmake_build = $(CMAKE) --build $1 $(UPX_CMAKE_BUILD_FLAGS) --config $2
|
||||
# avoid re-running run_cmake_config if CMakeCache.txt already exists
|
||||
run_config = $(if $(wildcard $1/CMakeCache.txt),,$(call run_cmake_config,$1,$2))
|
||||
run_build = $(call run_cmake_build,$1,$2)
|
||||
|
||||
.DEFAULT_GOAL = build/release
|
||||
|
||||
@@ -39,7 +41,7 @@ release: build/release
|
||||
.PHONY: PHONY
|
||||
|
||||
#***********************************************************************
|
||||
# extra convenience: some pre-defined build configurations
|
||||
# extra builds: some pre-defined build configurations
|
||||
#***********************************************************************
|
||||
|
||||
define run_config_and_build
|
||||
@@ -48,68 +50,68 @@ define run_config_and_build
|
||||
endef
|
||||
|
||||
# force building with clang/clang++
|
||||
build/debug-clang: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-clang: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-clang: export CC = clang
|
||||
build/%-clang: export CXX = clang++
|
||||
build/extra/clang/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/clang/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/clang/%: export CC = clang
|
||||
build/extra/clang/%: export CXX = clang++
|
||||
|
||||
# force building with clang/clang++ -m32
|
||||
build/debug-clang-m32: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-clang-m32: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-clang-m32: export CC = clang -m32
|
||||
build/%-clang-m32: export CXX = clang++ -m32
|
||||
build/extra/clang-m32/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/clang-m32/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/clang-m32/%: export CC = clang -m32
|
||||
build/extra/clang-m32/%: export CXX = clang++ -m32
|
||||
|
||||
# force building with clang/clang++ -m64
|
||||
build/debug-clang-m64: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-clang-m64: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-clang-m64: export CC = clang -m64
|
||||
build/%-clang-m64: export CXX = clang++ -m64
|
||||
build/extra/clang-m64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/clang-m64/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/clang-m64/%: export CC = clang -m64
|
||||
build/extra/clang-m64/%: export CXX = clang++ -m64
|
||||
|
||||
# force building with gcc/g++
|
||||
build/debug-gcc: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/release-gcc: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/%-gcc: export CC = gcc
|
||||
build/%-gcc: export CXX = g++
|
||||
build/extra/gcc/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/gcc/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/gcc/%: export CC = gcc
|
||||
build/extra/gcc/%: export CXX = g++
|
||||
|
||||
# force building with gcc/g++ -m32
|
||||
build/debug-gcc-m32: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/release-gcc-m32: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/%-gcc-m32: export CC = gcc -m32
|
||||
build/%-gcc-m32: export CXX = g++ -m32
|
||||
build/extra/gcc-m32/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/gcc-m32/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/gcc-m32/%: export CC = gcc -m32
|
||||
build/extra/gcc-m32/%: export CXX = g++ -m32
|
||||
|
||||
# force building with gcc/g++ -m64
|
||||
build/debug-gcc-m64: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/release-gcc-m64: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/%-gcc-m64: export CC = gcc -m64
|
||||
build/%-gcc-m64: export CXX = g++ -m64
|
||||
build/extra/gcc-m64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/gcc-m64/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/gcc-m64/%: export CC = gcc -m64
|
||||
build/extra/gcc-m64/%: export CXX = g++ -m64
|
||||
|
||||
# cross compiler: Linux glibc aarch64-linux-gnu
|
||||
build/debug-cross-linux-aarch64: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-cross-linux-aarch64: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-cross-linux-aarch64: export CC = aarch64-linux-gnu-gcc
|
||||
build/%-cross-linux-aarch64: export CXX = aarch64-linux-gnu-g++
|
||||
build/extra/cross-linux-aarch64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/cross-linux-aarch64/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/cross-linux-aarch64/%: export CC = aarch64-linux-gnu-gcc
|
||||
build/extra/cross-linux-aarch64/%: export CXX = aarch64-linux-gnu-g++
|
||||
|
||||
# cross compiler: Linux glibc arm-linux-gnueabihf
|
||||
build/debug-cross-linux-arm: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-cross-linux-arm: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-cross-linux-arm: export CC = arm-linux-gnueabihf-gcc
|
||||
build/%-cross-linux-arm: export CXX = arm-linux-gnueabihf-g++ -Wno-psabi
|
||||
build/extra/cross-linux-arm/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/cross-linux-arm/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/cross-linux-arm/%: export CC = arm-linux-gnueabihf-gcc
|
||||
build/extra/cross-linux-arm/%: export CXX = arm-linux-gnueabihf-g++ -Wno-psabi
|
||||
|
||||
# cross compiler: Windows win32 mingw32
|
||||
build/debug-cross-mingw32: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-cross-mingw32: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-cross-mingw32: export CC = i686-w64-mingw32-gcc
|
||||
build/%-cross-mingw32: export CXX = i686-w64-mingw32-g++
|
||||
# disable sanitize to avoid link errors on GitHub CI
|
||||
build/%-cross-mingw32: UPX_CMAKE_CONFIG_FLAGS += -DUPX_CONFIG_DISABLE_SANITIZE=1
|
||||
build/extra/cross-mingw32/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/cross-mingw32/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/cross-mingw32/%: export CC = i686-w64-mingw32-gcc
|
||||
build/extra/cross-mingw32/%: export CXX = i686-w64-mingw32-g++
|
||||
# disable sanitize to avoid link errors with current MinGW-w64 versions
|
||||
build/extra/cross-mingw32/%: UPX_CMAKE_CONFIG_FLAGS += -DUPX_CONFIG_DISABLE_SANITIZE=1
|
||||
|
||||
# cross compiler: Windows win64 mingw64
|
||||
build/debug-cross-mingw64: PHONY ; $(call run_config_and_build,$@,Debug)
|
||||
build/release-cross-mingw64: PHONY ; $(call run_config_and_build,$@,Release)
|
||||
build/%-cross-mingw64: export CC = x86_64-w64-mingw32-gcc
|
||||
build/%-cross-mingw64: export CXX = x86_64-w64-mingw32-g++
|
||||
# disable sanitize to avoid link errors on GitHub CI
|
||||
build/%-cross-mingw64: UPX_CMAKE_CONFIG_FLAGS += -DUPX_CONFIG_DISABLE_SANITIZE=1
|
||||
build/extra/cross-mingw64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||
build/extra/cross-mingw64/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||
build/extra/cross-mingw64/%: export CC = x86_64-w64-mingw32-gcc
|
||||
build/extra/cross-mingw64/%: export CXX = x86_64-w64-mingw32-g++
|
||||
# disable sanitize to avoid link errors with current MinGW-w64 versions
|
||||
build/extra/cross-mingw64/%: UPX_CMAKE_CONFIG_FLAGS += -DUPX_CONFIG_DISABLE_SANITIZE=1
|
||||
|
||||
#***********************************************************************
|
||||
# check git submodules
|
||||
|
||||
Reference in New Issue
Block a user