Rename command "distro" to "pkg" together with "info", its last remaining subcommand. "distro" is often used in the sense of "Linux distribution", which would be too narrow for the targets jw-pkg could theoretically support.
Signed-off-by: Jan Lindemann <jan@janware.com>
219 lines
7.2 KiB
Makefile
219 lines
7.2 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
|
|
|
|
CACHE_PROJECTS_MK := $(JWBDIR)/cache-projects.mk
|
|
|
|
$(eval $(call try_include,$(CACHE_PROJECTS_MK)))
|
|
$(eval $(call try_include,$(TOPDIR)/make/.cache-project.mk))
|
|
$(eval $(call try_include,$(JWBDIR)/make/pre-local.mk))
|
|
$(eval $(call try_include,$(TOPDIR)/make/pre-local.mk))
|
|
$(eval $(call try_include,pre-local.mk))
|
|
|
|
|
|
# -- What do I know about myself?
|
|
VERSION_FILE ?= $(firstword $(wildcard VERSION) $(TOPDIR)/VERSION)
|
|
ifndef DEVELOPMENT
|
|
ifeq ($(wildcard $(VERSION_FILE)),)
|
|
DEVELOPMENT := true
|
|
else
|
|
DEVELOPMENT := $(shell grep -q 'dev' $(VERSION_FILE) && echo true)
|
|
endif
|
|
endif
|
|
|
|
# -- Conclude the build system's location:
|
|
ifeq ($(PROJECTS_DIR),)
|
|
ifeq ($(DEVELOPMENT),true)
|
|
PROJECTS_DIR ?= $(TOPDIR)/..
|
|
else
|
|
PROJECTS_DIR ?= /opt
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(MAKE_BENCHMARK),true)
|
|
export SHELL := /bin/bash $(JWB_SCRIPT_DIR)/timed-make-shell.sh
|
|
else
|
|
export SHELL := /bin/bash
|
|
endif
|
|
|
|
JWB_SCRIPT_DIR := $(firstword $(wildcard $(JWBDIR)/scripts $(JWBDIR)/bin))
|
|
|
|
include $(JWBDIR)/make/py-version.mk
|
|
|
|
JW_PKG_PY = $(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py -p $(PROJECTS_DIR) -t $(TOPDIR) --topdir-format absolute $(JW_PKG_PY_EXTRA_OPTS)
|
|
|
|
# -- product
|
|
|
|
TARGET_PRODUCTS_ARM_NONE_EABI = \
|
|
st-nucleo-f103rb \
|
|
st-disc1-f429i \
|
|
st-disco-f769i
|
|
|
|
TAGGED_TMPL_TAGS_ARM_NONE_EABI ?= $(TARGET_PRODUCTS_ARM_NONE_EABI)
|
|
|
|
TARGET_PRODUCTS += \
|
|
$(TARGET_PRODUCTS_ARM_NONE_EABI)
|
|
TARGET_PRODUCT = $(firstword $(foreach t,$(TAGGED_TMPL_TAGS),$(filter $(t),$(TARGET_PRODUCTS))))
|
|
|
|
TAGGED_TMPL_MAKEFILES = $(wildcard $(addsuffix .mk,$(foreach t,$(TAGGED_TMPL_DIRS),$(addprefix $(t)/,$(TAGGED_TMPL_TAGS)))))
|
|
|
|
ifneq ($(foreach t,$(TAGGED_TMPL_TAGS),$(filter $(t),$(TAGGED_TMPL_TAGS_ARM_NONE_EABI))),)
|
|
TARGET_TRIPLET ?= arm-none-eabi
|
|
endif
|
|
|
|
# -- arch, vendor, os, libc
|
|
|
|
ifeq ($(PLATFORM_INFO),)
|
|
PLATFORM_INFO := $(shell $(JW_PKG_PY) platform info --format '%{gnu-triplet} %{cascade}')
|
|
endif
|
|
HOST_TUPLE ?= $(word 1,$(PLATFORM_INFO))
|
|
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)
|
|
HOST_OS_CASCADE := $(wordlist 2,$(words $(PLATFORM_INFO)),$(PLATFORM_INFO))
|
|
PKG_FORMAT ?= $(patsubst pkg-%,%,$(filter pkg-%,$(HOST_OS_CASCADE)))
|
|
|
|
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
|
|
|
|
ifeq ($(TARGET_ARCH),armv7l)
|
|
SYSTEM_LIBDIR_NAME = lib
|
|
else ifeq ($(TARGET_ARCH),armv6l)
|
|
SYSTEM_LIBDIR_NAME = lib
|
|
else ifeq ($(TARGET_ARCH),aarch64)
|
|
SYSTEM_LIBDIR_NAME = lib
|
|
else ifeq ($(TARGET_ARCH),x86_64)
|
|
SYSTEM_LIBDIR_NAME = lib64
|
|
else
|
|
SYSTEM_LIBDIR_NAME = lib
|
|
endif
|
|
SYSTEM_LIBDIR = /usr/$(SYSTEM_LIBDIR_NAME)
|
|
|
|
# - support legacy jw-pkg target variables
|
|
ifneq ($(findstring $(TARGET_ABI),mingw mingw32 mingw64),)
|
|
TARGET ?= mingw
|
|
else
|
|
TARGET ?= $(TARGET_OS)
|
|
endif
|
|
|
|
ifeq ($(OS_NAME_VERSION),)
|
|
OS_NAME_VERSION := $(shell $(JW_PKG_PY) platform info --format '%{id}-%{codename}')
|
|
endif
|
|
|
|
ifeq ($(OS_NAME),)
|
|
OS_NAME := $(word 1,$(subst -, ,$(OS_NAME_VERSION)))
|
|
endif
|
|
ARCH ?= $(TARGET_ARCH)
|
|
|
|
ARCH_32 = i586
|
|
|
|
ifndef ARCH
|
|
# TODO unreached code, test and fix this
|
|
ifeq ($(shell uname -m),armv7l)
|
|
ARCH = armv7hl
|
|
else ifeq ($(shell uname -m),armv6l)
|
|
ARCH = armv6hl
|
|
else ifeq ($(shell uname -m),aarch64)
|
|
ARCH = aarch64
|
|
else ifeq ($(shell uname -m),x86_64)
|
|
ARCH = x86_64
|
|
else
|
|
ARCH = $(ARCH_32)
|
|
endif
|
|
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
|
|
|
|
TARGET_CPU ?= $(TARGET_ARCH)
|
|
endif # ifndef PLATFORM_MK_INCLUDED
|