defs.mk: Some cleanup in target platform variables

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2019-02-27 11:56:57 +00:00
commit a0a6dec506

View file

@ -39,6 +39,7 @@ PWD := $(shell which pwd)
CWD := $(shell $(PWD)) CWD := $(shell $(PWD))
BIN_INSTALL := /usr/bin/install BIN_INSTALL := /usr/bin/install
SUDO ?= /usr/bin/sudo SUDO ?= /usr/bin/sudo
GET_OS_SH ?= $(SHELL) $(MOD_SCRIPT_DIR)/get-os.sh
# ----- standard variables # ----- standard variables
ifneq ($(wildcard $(TOPDIR)/.git),) ifneq ($(wildcard $(TOPDIR)/.git),)
@ -53,25 +54,88 @@ ifeq ($(PROJECT),)
PROJECT := $(shell echo $(patsubst $(FLAVOUR_PREFIX)%,%,$(notdir $(realpath $(TOPDIR)))) | $(SED) 's/-[0-9].*//') PROJECT := $(shell echo $(patsubst $(FLAVOUR_PREFIX)%,%,$(notdir $(realpath $(TOPDIR)))) | $(SED) 's/-[0-9].*//')
endif endif
GET_OS_SH ?= /bin/bash $(MOD_SCRIPT_DIR)/get-os.sh # ----- host and target variables
OS_TUPLE ?= $(shell $(GET_OS_SH) tuple)
ifneq ($(TARGET_TUPLE),)
TARGET_ARCH ?= $(word 1,$(TARGET_TUPLE))
TARGET_VENDOR ?= $(word 2,$(TARGET_TUPLE))
TARGET_OS ?= $(word 3,$(TARGET_TUPLE))
TARGET_ABI ?= $(word 4,$(TARGET_TUPLE))
TARGET_TRIPLET ?= $(TARGET_ARCH)-$(TARGET_OS)-$(TARGET_ABI)
else ifneq ($(TARGET_TRIPLET),)
TARGET_ARCH ?= $(word 1,$(TARGET_TRIPLET))
TARGET_VENDOR ?= unknown
TARGET_OS ?= $(word 2,$(TARGET_TRIPLET))
TARGET_ABI ?= $(word 3,$(TARGET_TRIPLET))
TARGET_TUPLE ?= $(TARGET_ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(TARGET_ABI)
else
TARGET_TUPLE ?= $(OS_TUPLE)
TARGET_VENDOR ?= $(word 2,$(TARGET_TUPLE))
TARGET_OS ?= $(word 3,$(TARGET_TUPLE))
TARGET_ABI ?= $(word 4,$(TARGET_TUPLE))
TARGET_TRIPLET ?= $(TARGET_ARCH)-$(TARGET_OS)-$(TARGET_ABI)
endif
ifeq ($(TARGET_TUPLE),)
$(error TARGET_TUPLE is undefined)
endif
# - support legacy jw-build target variables
ifeq ($(TARGET_ABI),mingw32)
TARGET ?= mingw
else ifeq ($(TARGET_ABI),mingw64)
TARGET ?= mingw
else
TARGET ?= $(TARGET_OS)
endif
OS_NAME_VERSION ?= $(shell $(GET_OS_SH)) OS_NAME_VERSION ?= $(shell $(GET_OS_SH))
OS_NAME ?= $(shell $(GET_OS_SH) name) OS_NAME ?= $(shell $(GET_OS_SH) name)
OSTYPE ?= $(shell $(GET_OS_SH) type) ARCH ?= $(TARGET_ARCH)
CREATE_DEVEL ?= true ifndef ARCH
#COMPILER_SUITE ?= clang # TODO unreached code, test and fix this
COMPILER_SUITE ?= gcc ifeq ($(shell uname -m),armv7l)
ARCH = armv7hl
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),armv6l)
ARCH = armv6hl
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),aarch64)
ARCH = aarch64
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),x86_64)
ARCH = x86_64
SYSTEM_LIBDIR_NAME = lib64
else
ARCH_32 = i586
ARCH = $(ARCH_32)
SYSTEM_LIBDIR_NAME = lib
endif
SYSTEM_LIBDIR = /usr/$(SYSTEM_LIBDIR_NAME)
endif
ifeq ($(TARGET),mingw) ifneq ($(TARGET_TUPLE),$(OS_TUPLE))
FLAVOUR_PREFIX ?= win32- ifeq ($(TARGET),mingw)
FLAVOUR_SUFFIX ?= -win32 FLAVOUR_PREFIX ?= win32-
FLAVOUR_PATH_PREFIX ?= win32/ FLAVOUR_SUFFIX ?= -win32
FLAVOUR_PATH_SUFFIX ?= /win32 FLAVOUR_PATH_PREFIX ?= win32/
ifneq ($(wildcard /usr/bin/i686-w64-mingw32-gcc),) FLAVOUR_PATH_SUFFIX ?= /win32
MINGW_SYS_ROOT ?= /usr/i686-w64-mingw32/sys-root/mingw ifneq ($(wildcard /usr/bin/i686-w64-mingw32-gcc),)
MINGW_SYS_ROOT ?= /usr/i686-w64-mingw32/sys-root/mingw
endif
else
FLAVOUR_PREFIX ?= $(TARGET_TRIPLET)-
FLAVOUR_SUFFIX ?= -$(TARGET_TRIPLET)
FLAVOUR_PATH_PREFIX ?= $(TARGET_TRIPLET)/
FLAVOUR_PATH_SUFFIX ?= /$(TARGET_TRIPLET)
endif endif
endif endif
# ----- packaging variables
ifneq ($(filter debian%,$(OS_NAME_VERSION)),) ifneq ($(filter debian%,$(OS_NAME_VERSION)),)
PKG_FORMAT ?= debian PKG_FORMAT ?= debian
else else
@ -143,28 +207,9 @@ PCKG_DEPS_DIR = $(MODDIR)/make/deps.d
PCKG_DEFS_DIR = $(MODDIR)/make/defs.d PCKG_DEFS_DIR = $(MODDIR)/make/defs.d
# ----- compilation options # ----- compilation options
TARGET ?= Linux CREATE_DEVEL ?= true
#COMPILER_SUITE ?= clang
ifndef ARCH COMPILER_SUITE ?= gcc
ifeq ($(shell uname -m),armv7l)
ARCH = armv7hl
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),armv6l)
ARCH = armv6hl
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),aarch64)
ARCH = aarch64
SYSTEM_LIBDIR_NAME = lib
else ifeq ($(shell uname -m),x86_64)
ARCH = x86_64
SYSTEM_LIBDIR_NAME = lib64
else
ARCH_32 = i586
ARCH = $(ARCH_32)
SYSTEM_LIBDIR_NAME = lib
endif
SYSTEM_LIBDIR = /usr/$(SYSTEM_LIBDIR_NAME)
endif
ifeq ($(ARCH),$(ARCH_32)) ifeq ($(ARCH),$(ARCH_32))
PROJECT_CFLAGS += -m32 PROJECT_CFLAGS += -m32
@ -193,7 +238,7 @@ PKG_VENDOR ?= janware GmbH
FULL_NAME ?= $(shell id -nu | xargs getent passwd | cut -d: -f5) FULL_NAME ?= $(shell id -nu | xargs getent passwd | cut -d: -f5)
USE_PROJECT_LIB ?= true USE_PROJECT_LIB ?= true
EXPORT_PROJECT_LIB ?= $(USE_PROJECT_LIB) EXPORT_PROJECT_LIB ?= $(USE_PROJECT_LIB)
USE_JW_BUILD ?= true USE_JW_BUILD ?= true
USE_EXCEPTIONS_IN_C ?= true USE_EXCEPTIONS_IN_C ?= true
REENTRANT ?= true REENTRANT ?= true