make/Makefile, defs-cpp.mk, platform.mk: Generalize MinGW build machinery (a bit)

This commit takes the MinGW cross compilation further into the direction of
being a more general framework for cross compilation. Changed some variable
names that are too specialized, notably MinGW tool chain directories,
compilers, utilities.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2019-03-03 10:45:08 +00:00
commit bf9bb79246
3 changed files with 81 additions and 88 deletions

View file

@ -27,8 +27,14 @@ ifndef GET_OS_SH
GET_OS_SH := $(SHELL) $(MOD_SCRIPT_DIR)/get-os.sh
endif
ifeq ($(OS_TUPLE),)
OS_TUPLE := $(shell $(GET_OS_SH) tuple)
ifeq ($(HOST_TUPLE),)
HOST_TUPLE := $(shell $(GET_OS_SH) tuple)
HOST_TUPLE_WORDS := $(subst -, ,$(HOST_TUPLE))
HOST_ARCH := $(word 1,$(HOST_TUPLE_WORDS))
HOST_VENDOR := $(word 2,$(HOST_TUPLE_WORDS))
HOST_OS := $(word 3,$(HOST_TUPLE_WORDS))
HOST_ABI := $(word 4,$(HOST_TUPLE_WORDS))
HOST_TRIPLET := $(HOST_ARCH)-$(HOST_OS)-$(HOST_ABI)
endif
ifneq ($(TARGET_TUPLE),)
@ -47,7 +53,7 @@ else ifneq ($(TARGET_TRIPLET),)
TARGET_TUPLE := $(TARGET_ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(TARGET_ABI)
TARGET_TUPLE_WORDS := $(subst -, ,$(TARGET_TUPLE))
else
TARGET_TUPLE := $(OS_TUPLE)
TARGET_TUPLE := $(HOST_TUPLE)
TARGET_TUPLE_WORDS := $(subst -, ,$(TARGET_TUPLE))
TARGET_ARCH := $(word 1,$(TARGET_TUPLE_WORDS))
TARGET_VENDOR := $(word 2,$(TARGET_TUPLE_WORDS))
@ -100,15 +106,12 @@ ifndef ARCH
SYSTEM_LIBDIR = /usr/$(SYSTEM_LIBDIR_NAME)
endif
ifneq ($(TARGET_TUPLE),$(OS_TUPLE))
ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET))
ifeq ($(TARGET),mingw)
FLAVOUR_PREFIX ?= win32-
FLAVOUR_SUFFIX ?= -win32
FLAVOUR_PATH_PREFIX ?= win32/
FLAVOUR_PATH_SUFFIX ?= /win32
ifneq ($(wildcard /usr/bin/i686-w64-mingw32-gcc),)
TC_SYS_ROOT ?= /usr/i686-w64-mingw32/sys-root/mingw
endif
else
FLAVOUR_PREFIX ?= $(TARGET_TRIPLET)-
FLAVOUR_SUFFIX ?= -$(TARGET_TRIPLET)