1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

make: update Makefile

This commit is contained in:
Markus F.X.J. Oberhumer 2022-12-20 11:40:48 +01:00
parent 6cf85cee6e
commit a203c72281

View File

@ -36,49 +36,73 @@ build/release: PHONY
debug: build/debug
release: build/release
.PHONY: PHONY
#***********************************************************************
# some pre-defined build configurations
# extra convenience: some pre-defined build configurations
#***********************************************************************
# force building with gcc/g++
build/debug-gcc: PHONY
$(call run_config,$@,Debug)
$(call run_build,$@,Debug)
build/release-gcc: PHONY
$(call run_config,$@,Release)
$(call run_build,$@,Release)
build/%-gcc: export CC=gcc
build/%-gcc: export CXX=g++
define run_config_and_build
$(call run_config,$1,$2)
$(call run_build,$1,$2)
endef
# force building with clang/clang++
build/debug-clang: PHONY
$(call run_config,$@,Debug)
$(call run_build,$@,Debug)
build/release-clang: PHONY
$(call run_config,$@,Release)
$(call run_build,$@,Release)
build/%-clang: export CC=clang
build/%-clang: export CXX=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++
# cross compiler: Windows mingw-w64
build/debug-cross-mingw64: PHONY
$(call run_config,$@,Debug)
$(call run_build,$@,Debug)
build/release-cross-mingw64: PHONY
$(call run_config,$@,Release)
$(call run_build,$@,Release)
build/%-cross-mingw64: export CC=x86_64-w64-mingw32-gcc
build/%-cross-mingw64: export CXX=x86_64-w64-mingw32-g++
# 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
# 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
# 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++
# 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
# 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
# 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
# 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
#***********************************************************************
# misc
# check git submodules
#***********************************************************************
.PHONY: PHONY
# check git submodules
ifeq ($(wildcard ./vendor/doctest/doctest/.),)
$(error ERROR: missing git submodule; run 'git submodule update --init')
endif