mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 20:13:32 +01:00
165 lines
5.6 KiB
Makefile
165 lines
5.6 KiB
Makefile
# ----- host and target variables
|
|
|
|
ifndef PLATFORM_MK_INCLUDED
|
|
PLATFORM_MK_INCLUDED = true
|
|
|
|
# "-include" tries search path, we don't want that
|
|
define try_include
|
|
ifneq ($$(wildcard $(1)),)
|
|
include $(1)
|
|
endif
|
|
endef
|
|
|
|
$(eval $(call try_include,$(MODDIR)/make/.cache.mk))
|
|
$(eval $(call try_include,$(TOPDIR)/make/.cache.mk))
|
|
$(eval $(call try_include,$(MODDIR)/make/pre-local.mk))
|
|
$(eval $(call try_include,$(TOPDIR)/make/pre-local.mk))
|
|
$(eval $(call try_include,pre-local.mk))
|
|
|
|
MOD_SCRIPT_DIR := $(firstword $(wildcard $(MODDIR)/scripts $(MODDIR)/bin))
|
|
ifndef GET_OS_SH
|
|
GET_OS_SH := $(SHELL) $(MOD_SCRIPT_DIR)/get-os.sh
|
|
endif
|
|
|
|
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)
|
|
else
|
|
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
|
|
|
|
ifndef TARGET
|
|
ifneq ($(subst mingw,,$(CWD)),$(CWD))
|
|
TARGET := mingw
|
|
endif
|
|
endif
|
|
|
|
DEFINE_FROM_TARGET := false
|
|
ifdef TARGET
|
|
ifndef TARGET_TUPLE
|
|
ifndef TARGET_TRIPLET
|
|
DEFINE_FROM_TARGET := true
|
|
endif
|
|
else ifndef TARGET_TRIPLET
|
|
ifndef TARGET_TUPLE
|
|
DEFINE_FROM_TARGET := true
|
|
endif
|
|
endif
|
|
ifeq ($(DEFINE_FROM_TARGET),true)
|
|
ifeq ($(TARGET),mingw)
|
|
TARGET_ARCH ?= i686
|
|
TARGET_ABI := mingw32
|
|
TARGET_OS ?= w64
|
|
else ifeq ($(TARGET),mingw32)
|
|
TARGET_ARCH ?= i686
|
|
TARGET_ABI := mingw32
|
|
TARGET_OS ?= w64
|
|
else ifeq ($(TARGET),mingw64)
|
|
TARGET_ARCH ?= x86_64
|
|
TARGET_ABI := mingw64
|
|
TARGET_OS := w64
|
|
else ifeq ($(TARGET),linux)
|
|
endif
|
|
# -- fall back on defaults
|
|
TARGET_ARCH ?= $(HOST_ARCH)
|
|
TARGET_VENDOR ?= $(HOST_VENDOR)
|
|
TARGET_OS ?= $(HOST_OS)
|
|
TARGET_ABI ?= $(HOST_ABI)
|
|
endif
|
|
TARGET_TUPLE := $(TARGET_ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(TARGET_ABI)
|
|
endif
|
|
|
|
ifneq ($(TARGET_TUPLE),)
|
|
TARGET_TUPLE_WORDS ?= $(subst -, ,$(TARGET_TUPLE))
|
|
TARGET_ARCH ?= $(word 1,$(TARGET_TUPLE_WORDS))
|
|
TARGET_VENDOR ?= $(word 2,$(TARGET_TUPLE_WORDS))
|
|
TARGET_OS ?= $(word 3,$(TARGET_TUPLE_WORDS))
|
|
TARGET_ABI ?= $(word 4,$(TARGET_TUPLE_WORDS))
|
|
TARGET_TRIPLET ?= $(TARGET_ARCH)-$(TARGET_OS)-$(TARGET_ABI)
|
|
else ifneq ($(TARGET_TRIPLET),)
|
|
TARGET_TRIPLET_WORDS ?= $(subst -, ,$(TARGET_TRIPLET))
|
|
TARGET_ARCH ?= $(word 1,$(TARGET_TRIPLET_WORDS))
|
|
TARGET_VENDOR ?= unknown
|
|
TARGET_OS ?= $(word 2,$(TARGET_TRIPLET_WORDS))
|
|
TARGET_ABI ?= $(word 3,$(TARGET_TRIPLET_WORDS))
|
|
TARGET_TUPLE ?= $(TARGET_ARCH)-$(TARGET_VENDOR)-$(TARGET_OS)-$(TARGET_ABI)
|
|
TARGET_TUPLE_WORDS ?= $(subst -, ,$(TARGET_TUPLE))
|
|
else
|
|
TARGET_TUPLE ?= $(HOST_TUPLE)
|
|
TARGET_TUPLE_WORDS ?= $(subst -, ,$(TARGET_TUPLE))
|
|
TARGET_ARCH ?= $(word 1,$(TARGET_TUPLE_WORDS))
|
|
TARGET_VENDOR ?= $(word 2,$(TARGET_TUPLE_WORDS))
|
|
TARGET_OS ?= $(word 3,$(TARGET_TUPLE_WORDS))
|
|
TARGET_ABI ?= $(word 4,$(TARGET_TUPLE_WORDS))
|
|
TARGET_TRIPLET ?= $(TARGET_ARCH)-$(TARGET_OS)-$(TARGET_ABI)
|
|
TARGET_TRIPLET_WORDS ?= $(subst -, ,$(TARGET_TRIPLET))
|
|
endif
|
|
|
|
ifeq ($(TARGET_TUPLE),)
|
|
$(error TARGET_TUPLE is empty)
|
|
endif
|
|
|
|
# - support legacy jw-build target variables
|
|
ifneq ($(findstring $(TARGET_ABI),mingw mingw32 mingw64),)
|
|
TARGET ?= mingw
|
|
else
|
|
TARGET ?= $(TARGET_OS)
|
|
endif
|
|
|
|
ifeq ($(OS_NAME_VERSION),)
|
|
OS_NAME_VERSION := $(shell $(GET_OS_SH))
|
|
endif
|
|
|
|
ifeq ($(OS_NAME),)
|
|
OS_NAME := $(shell $(GET_OS_SH) name)
|
|
endif
|
|
ARCH ?= $(TARGET_ARCH)
|
|
|
|
ARCH_32 = i586
|
|
|
|
ifndef ARCH
|
|
# TODO unreached code, test and fix this
|
|
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 = $(ARCH_32)
|
|
SYSTEM_LIBDIR_NAME = lib
|
|
endif
|
|
SYSTEM_LIBDIR = /usr/$(SYSTEM_LIBDIR_NAME)
|
|
endif
|
|
|
|
ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET))
|
|
ifeq ($(TARGET),mingw)
|
|
FLAVOUR_PREFIX ?= win32-
|
|
FLAVOUR_SUFFIX ?= -win32
|
|
FLAVOUR_PATH_PREFIX ?= win32/
|
|
FLAVOUR_PATH_SUFFIX ?= /win32
|
|
else
|
|
FLAVOUR_PREFIX ?= $(TARGET_TRIPLET)-
|
|
FLAVOUR_SUFFIX ?= -$(TARGET_TRIPLET)
|
|
FLAVOUR_PATH_PREFIX ?= $(TARGET_TRIPLET)/
|
|
FLAVOUR_PATH_SUFFIX ?= /$(TARGET_TRIPLET)
|
|
endif
|
|
endif
|
|
|
|
endif # ifndef PLATFORM_MK_INCLUDED
|