mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-23 22:40:38 +01:00
defs-cpp.mk, defs.mk, platform.mk: More cleanup to defs-cpp.mk
- Group more consistently into overall default choices, template cascade and compiler flags - Add definitions for st-nucleo-f103rb (for now) Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
afffbd2566
commit
419d3b2a08
3 changed files with 196 additions and 180 deletions
368
make/defs-cpp.mk
368
make/defs-cpp.mk
|
|
@ -1,141 +1,47 @@
|
||||||
# ----- compilation options
|
ifndef JW_BUILD_CPP_DEFS_MK_INCLUDED
|
||||||
|
JW_BUILD_CPP_DEFS_MK_INCLUDED := true
|
||||||
|
|
||||||
|
# -- default choices
|
||||||
|
|
||||||
#COMPILER_SUITE ?= clang
|
#COMPILER_SUITE ?= clang
|
||||||
COMPILER_SUITE ?= gcc
|
COMPILER_SUITE ?= gcc
|
||||||
CPP_STANDARD_VERSION ?= 17
|
CPP_STANDARD_VERSION ?= 17
|
||||||
C_STANDARD_VERSION ?= 11
|
C_STANDARD_VERSION ?= 11
|
||||||
|
USE_PROJECT_LIB ?= true
|
||||||
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
EXPORT_PROJECT_LIB ?= $(USE_PROJECT_LIB)
|
||||||
LIBTYPE ?= static
|
USE_JW_BUILD ?= true
|
||||||
else
|
USE_EXCEPTIONS_IN_C ?= true
|
||||||
LIBTYPE ?= shared
|
USE_COMPILER_OPTIMIZATION_OPTS ?= false
|
||||||
endif
|
USE_COMPILER_DEBUG_OPTS ?= true
|
||||||
|
USE_VERSION_MACROS ?= true
|
||||||
ifeq ($(COMPILER_SUITE),gcc)
|
COMPILE_DEBUG_CODE ?= true
|
||||||
DEBUGGER ?= gdb
|
|
||||||
BUILD_EXTRA_DEBUG_FLAGS += -ggdb
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(COMPILER_SUITE),clang)
|
|
||||||
DEBUGGER = lldb
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),$(ARCH_32))
|
|
||||||
PROJECT_CPPFLAGS += -m32
|
|
||||||
PROJECT_LDFLAGS += -m32
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),armv7hl)
|
|
||||||
PROJECT_CPPFLAGS += -fPIC
|
|
||||||
else ifeq ($(TARGET_ARCH),aarch64)
|
|
||||||
PROJECT_CPPFLAGS += -fPIC
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(findstring $(TARGET_OS),linux),)
|
ifeq ($(findstring $(TARGET_OS),linux),)
|
||||||
USE_SYSTEMD := false
|
USE_SYSTEMD := false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(DEVELOPMENT),true)
|
# -- build TAGGED_TMPL_TAGS cascade
|
||||||
export G_SLICE = always-malloc
|
|
||||||
export G_DEBUG = gc-friendly,resident-modules
|
|
||||||
export MALLOC_CHECK_ = 2
|
|
||||||
endif
|
|
||||||
|
|
||||||
USE_PROJECT_LIB ?= true
|
ifneq ($(findstring st-nucleo-f103rb,$(TAGGED_TMPL_TAGS)),)
|
||||||
EXPORT_PROJECT_LIB ?= $(USE_PROJECT_LIB)
|
TAGGED_TMPL_TAGS += cortex-m3
|
||||||
USE_JW_BUILD ?= true
|
MCU_BOARD_MODEL ?= ST-NUCLEO-F103RB
|
||||||
USE_EXCEPTIONS_IN_C ?= true
|
MCU_FLASH_OFFSET ?= 0x0000000
|
||||||
|
MCU_FLASH_SIZE ?= 0x5000
|
||||||
USE_COMPILER_OPTIMIZATION_OPTS ?= false
|
MODM_BSPS += modm:nucleo-f103rb
|
||||||
USE_COMPILER_DEBUG_OPTS ?= true
|
|
||||||
COMPILE_DEBUG_CODE ?= true
|
|
||||||
|
|
||||||
BUILD_CFLAGS += $(CFLAGS)
|
|
||||||
BUILD_CXXFLAGS += $(CXXFLAGS)
|
|
||||||
BUILD_CPPFLAGS += $(CPPFLAGS)
|
|
||||||
BUILD_LDFLAGS += $(LDFLAGS)
|
|
||||||
|
|
||||||
BUILD_CPPFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -Wno-deprecated -DPROJECT_STR=\"$(PROJECT)\"
|
|
||||||
BUILD_LDFLAGS += -Wall
|
|
||||||
|
|
||||||
LOG_QUAL_PREFIX ?= $(LOGID):
|
|
||||||
|
|
||||||
ifneq ($(LOG_QUAL_PREFIX),)
|
|
||||||
PROJECT_CPPFLAGS += -DKEEP_FILES_OPEN -DLOG_QUAL_PREFIX=\"$(LOG_QUAL_PREFIX)\"
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CATCH_ONLY_YERROR),true)
|
|
||||||
BUILD_CPPFLAGS += -DCATCH_ONLY_YERROR
|
|
||||||
endif
|
|
||||||
|
|
||||||
SYSCFG_DIR ?= /etc/sysconfig
|
|
||||||
SYSCFG_FILE ?= $(SYSCFG_DIR)/$(PROJECT)
|
|
||||||
OPTS_PID_FILE ?= $(PIDDIR)/$(PROJECT).pid
|
|
||||||
|
|
||||||
USE_VERSION_MACROS ?= true
|
|
||||||
ifeq ($(USE_VERSION_MACROS),true)
|
|
||||||
BUILD_CPPFLAGS += -DVERSION=$(HEX_VERSION) -DVERSION_STR=\"$(VERSION)\"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
|
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
|
||||||
|
TAGGED_TMPL_TAGS += cortex-m
|
||||||
# -- set jw-build mcu choices
|
|
||||||
MCU_CPU ?= cortex-m3
|
|
||||||
|
|
||||||
# -- set flags
|
|
||||||
|
|
||||||
# don't wrap error message lines
|
|
||||||
#PROJECT_LDFLAGS += -fmessage-length=0
|
|
||||||
|
|
||||||
# don't know what kind of optimization that is
|
|
||||||
#PROJECT_LDFLAGS += -Og
|
|
||||||
|
|
||||||
# stick with what janware code tends to expect
|
|
||||||
PROJECT_LDFLAGS += -fsigned-char
|
|
||||||
|
|
||||||
# I have no clue which part would evaluate these names
|
|
||||||
PROJECT_LDFLAGS += -ffunction-sections
|
|
||||||
PROJECT_LDFLAGS += -fdata-sections
|
|
||||||
PROJECT_LDFLAGS += -ffreestanding
|
|
||||||
PROJECT_LDFLAGS += -fno-move-loop-invariants
|
|
||||||
|
|
||||||
# skip any automatic initialization
|
|
||||||
PROJECT_LDFLAGS += -nostartfiles
|
|
||||||
|
|
||||||
# garbage collect unused input sections
|
|
||||||
PROJECT_LDFLAGS += -Xlinker --gc-sections
|
|
||||||
|
|
||||||
# create map file
|
|
||||||
PROJECT_LDFLAGS += -Wl,-Map,"$(EXE_MAP)"
|
|
||||||
|
|
||||||
# use newlib-nano, provides symbols _write _close _fstat _isatty _lseek (at least)
|
|
||||||
# (TODO: No -Wl necessary?)
|
|
||||||
PROJECT_LDFLAGS += --specs=nano.specs
|
|
||||||
PROJECT_LDFLAGS += --specs=nosys.specs
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(findstring gnu-mcu-eclipse,$(TAGGED_TMPL_TAGS)),)
|
ifneq ($(findstring cortex-m,$(TAGGED_TMPL_TAGS)),)
|
||||||
LD_DEFINE_SYMBOLS += _sbrk
|
TAGGED_TMPL_TAGS += cortex
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ----- build options based on product choices
|
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
|
||||||
|
TARGET_CPU = cortex-m3
|
||||||
ifneq ($(findstring $(MCU_CPU),cortex-m3),)
|
|
||||||
|
|
||||||
PROJECT_CPPFLAGS += -mcpu=cortex-m3 -mthumb
|
|
||||||
PROJECT_LDFLAGS += -mcpu=cortex-m3 -mthumb
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ----- tagged templates
|
|
||||||
#MCU_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
|
|
||||||
#MCU_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
|
|
||||||
#MCU_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
|
|
||||||
MCU_LD_CHECK_DIRS = $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
|
|
||||||
MCU_LD_DIRS = $(wildcard $(MCU_LD_CHECK_DIRS))
|
|
||||||
MCU_LD_DIR = $(firstword $(MCU_LD_DIRS))
|
|
||||||
|
|
||||||
PROJECT_LDFLAGS += -L$(MCU_LD_DIR) $(addprefix -T ,$(sort $(notdir $(wildcard $(MCU_LD_DIR)/*.ld))))
|
|
||||||
# ----- tool chain
|
# ----- tool chain
|
||||||
|
|
||||||
ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET)) # we're cross-compiling
|
ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET)) # we're cross-compiling
|
||||||
|
|
@ -175,12 +81,161 @@ else # we're not cross-compiling
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(COMPILER_SUITE),gcc)
|
||||||
|
|
||||||
|
GCC ?= $(TC_BIN_PREFIX)gcc
|
||||||
|
GXX ?= $(TC_BIN_PREFIX)g++
|
||||||
|
CXX ?= $(GXX)
|
||||||
|
GNU_LD ?= $(TC_BIN_PREFIX)ld
|
||||||
|
CLANG ?= $(TC_BIN_PREFIX)clang
|
||||||
|
CLANGPP ?= $(TC_BIN_PREFIX)clang++
|
||||||
|
STRIP ?= $(TC_BIN_PREFIX)strip
|
||||||
|
RANLIB ?= $(TC_BIN_PREFIX)ranlib
|
||||||
|
AR ?= $(TC_BIN_PREFIX)ar
|
||||||
|
PKG_CONFIG_EXE ?= $(TC_BIN_PREFIX)pkg-config
|
||||||
|
CPP_FILT ?= $(TC_BIN_PREFIX)c++filt
|
||||||
|
OBJCOPY ?= $(TC_BIN_PREFIX)objcopy
|
||||||
|
OBJDUMP ?= $(TC_BIN_PREFIX)objdump
|
||||||
|
|
||||||
|
# compiler and linker
|
||||||
|
# gcc
|
||||||
|
GCC_VERSION := $(shell $(GCC) -v 2>&1 | $(SED) '/gcc.version/I !d; s/.*version *//I; s/ \+.*//')
|
||||||
|
GCC_VERSION_NUMBERS := $(subst ., ,$(GCC_VERSION))
|
||||||
|
GCC_MAJOR := $(word 1,$(GCC_VERSION_NUMBERS))
|
||||||
|
GCC_MINOR := $(word 2,$(GCC_VERSION_NUMBERS))
|
||||||
|
GCC_REV := $(word 3,$(GCC_VERSION_NUMBERS))
|
||||||
|
|
||||||
|
# Not needed anywhere
|
||||||
|
#GNU_LD_VERSION := $(shell $(LD) -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//')
|
||||||
|
#GNU_LD_VERSION_NUMBERS := $(subst ., ,$(GNU_LD_VERSION))
|
||||||
|
#GNU_LD_MAJOR := $(word 1,$(GNU_LD_VERSION_NUMBERS))
|
||||||
|
#GNU_LD_MINOR := $(word 2,$(GNU_LD_VERSION_NUMBERS))
|
||||||
|
#GNU_LD_REV := $(word 3,$(GNU_LD_VERSION_NUMBERS))
|
||||||
|
|
||||||
|
CC = $(GCC)
|
||||||
|
CXX = $(GXX)
|
||||||
|
LD = $(GXX)
|
||||||
|
|
||||||
|
BUILD_CXXFLAGS += -std=c++$(CPP_STANDARD_VERSION)
|
||||||
|
BUILD_CFLAGS += -std=gnu$(C_STANDARD_VERSION)
|
||||||
|
|
||||||
|
ifeq ($(shell $(TEST) $(GCC_MAJOR) -ge 5; $(ECHO) $$?),0)
|
||||||
|
ifeq ($(USE_CPP_FORCE_OVERRIDE),true)
|
||||||
|
GCC_CXXFLAGS += -Werror=suggest-override
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
else ifeq ($(COMPILER_SUITE),clang)
|
||||||
|
|
||||||
|
# clang
|
||||||
|
CLANG_CXXFLAGS += -Wno-unused-private-field -Wno-self-assign-field -Wno-overloaded-virtual
|
||||||
|
CC = $(CLANG)
|
||||||
|
CXX = $(CLANGPP)
|
||||||
|
LD = $(CLANGPP)
|
||||||
|
|
||||||
|
ifeq ($(USE_CPP_WARN_INCONSISTENT_OVERRIDE),true)
|
||||||
|
CLANG_CXXFLAGS += -Winconsistent-missing-override
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif # COMPILER_SUITE
|
||||||
|
|
||||||
|
# -- gather compiler options in BUILD_XXXFLAGS
|
||||||
|
|
||||||
|
BUILD_CFLAGS += $(CFLAGS)
|
||||||
|
BUILD_CXXFLAGS += $(CXXFLAGS)
|
||||||
|
BUILD_CPPFLAGS += $(CPPFLAGS)
|
||||||
|
BUILD_LDFLAGS += $(LDFLAGS)
|
||||||
|
|
||||||
|
BUILD_CPPFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -Wno-deprecated -DPROJECT_STR=\"$(PROJECT)\"
|
||||||
|
BUILD_LDFLAGS += -Wall
|
||||||
|
|
||||||
|
ifeq ($(TARGET_ARCH),$(ARCH_32))
|
||||||
|
PROJECT_CPPFLAGS += -m32
|
||||||
|
PROJECT_LDFLAGS += -m32
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),x86_64)
|
ifeq ($(TARGET_ARCH),x86_64)
|
||||||
BUILD_CPPFLAGS += -fPIC
|
BUILD_CPPFLAGS += -fPIC
|
||||||
LIBFLAGS +=
|
LIBFLAGS +=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_ARCH),armv7hl)
|
||||||
|
PROJECT_CPPFLAGS += -fPIC
|
||||||
|
else ifeq ($(TARGET_ARCH),aarch64)
|
||||||
|
PROJECT_CPPFLAGS += -fPIC
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
||||||
|
LIBTYPE ?= static
|
||||||
|
else
|
||||||
|
LIBTYPE ?= shared
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(COMPILER_SUITE),gcc)
|
||||||
|
DEBUGGER ?= gdb
|
||||||
|
BUILD_EXTRA_DEBUG_FLAGS += -ggdb
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(COMPILER_SUITE),clang)
|
||||||
|
DEBUGGER = lldb
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DEVELOPMENT),true)
|
||||||
|
export G_SLICE = always-malloc
|
||||||
|
export G_DEBUG = gc-friendly,resident-modules
|
||||||
|
export MALLOC_CHECK_ = 2
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(LOG_QUAL_PREFIX),)
|
||||||
|
PROJECT_CPPFLAGS += -DKEEP_FILES_OPEN -DLOG_QUAL_PREFIX=\"$(LOG_QUAL_PREFIX)\"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CATCH_ONLY_YERROR),true)
|
||||||
|
BUILD_CPPFLAGS += -DCATCH_ONLY_YERROR
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_VERSION_MACROS),true)
|
||||||
|
BUILD_CPPFLAGS += -DVERSION=$(HEX_VERSION) -DVERSION_STR=\"$(VERSION)\"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
||||||
|
|
||||||
|
ifneq ($(findstring $(TARGET_CPU),cortex-m3),)
|
||||||
|
|
||||||
|
PROJECT_CPPFLAGS += -mcpu=cortex-m3 -mthumb
|
||||||
|
PROJECT_LDFLAGS += -mcpu=cortex-m3 -mthumb
|
||||||
|
|
||||||
|
# don't wrap error message lines
|
||||||
|
#PROJECT_LDFLAGS += -fmessage-length=0
|
||||||
|
|
||||||
|
# don't know what kind of optimization that is
|
||||||
|
#PROJECT_LDFLAGS += -Og
|
||||||
|
|
||||||
|
# stick with what janware code tends to expect
|
||||||
|
PROJECT_LDFLAGS += -fsigned-char
|
||||||
|
|
||||||
|
# I have no clue which part would evaluate these names
|
||||||
|
PROJECT_LDFLAGS += -ffunction-sections
|
||||||
|
PROJECT_LDFLAGS += -fdata-sections
|
||||||
|
PROJECT_LDFLAGS += -ffreestanding
|
||||||
|
PROJECT_LDFLAGS += -fno-move-loop-invariants
|
||||||
|
|
||||||
|
# skip any automatic initialization
|
||||||
|
PROJECT_LDFLAGS += -nostartfiles
|
||||||
|
|
||||||
|
# garbage collect unused input sections
|
||||||
|
PROJECT_LDFLAGS += -Xlinker --gc-sections
|
||||||
|
|
||||||
|
# create map file
|
||||||
|
PROJECT_LDFLAGS += -Wl,-Map,"$(EXE_MAP)"
|
||||||
|
|
||||||
|
# use newlib-nano, provides symbols _write _close _fstat _isatty _lseek (at least)
|
||||||
|
# (TODO: No -Wl necessary?)
|
||||||
|
PROJECT_LDFLAGS += --specs=nano.specs
|
||||||
|
PROJECT_LDFLAGS += --specs=nosys.specs
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
USE_DISABLE_COMPILER_OPTIMISATION_OPTS = false
|
USE_DISABLE_COMPILER_OPTIMISATION_OPTS = false
|
||||||
USE_EXCEPTIONS_IN_C = false
|
USE_EXCEPTIONS_IN_C = false
|
||||||
ARM_NONE_EABI_ALLFLAGS += -fno-exceptions
|
ARM_NONE_EABI_ALLFLAGS += -fno-exceptions
|
||||||
|
|
@ -251,66 +306,23 @@ ifeq ($(TARGET_TRIPLET),arm-none-eabi)
|
||||||
|
|
||||||
#BUILD_CPPFLAGS += -fno-exceptions
|
#BUILD_CPPFLAGS += -fno-exceptions
|
||||||
#BUILD_CXXFLAGS += -fno-rtti
|
#BUILD_CXXFLAGS += -fno-rtti
|
||||||
|
|
||||||
|
ifneq ($(findstring gnu-mcu-eclipse,$(TAGGED_TMPL_TAGS)),)
|
||||||
|
LD_DEFINE_SYMBOLS += _sbrk
|
||||||
|
endif
|
||||||
|
|
||||||
|
# ----- tagged templates
|
||||||
|
#MCU_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
|
||||||
|
#MCU_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
|
||||||
|
#MCU_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
|
||||||
|
MCU_LD_CHECK_DIRS = $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(MODDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
|
||||||
|
MCU_LD_DIRS = $(wildcard $(MCU_LD_CHECK_DIRS))
|
||||||
|
MCU_LD_DIR = $(firstword $(MCU_LD_DIRS))
|
||||||
|
|
||||||
|
PROJECT_LDFLAGS += -L$(MCU_LD_DIR) $(addprefix -T ,$(sort $(notdir $(wildcard $(MCU_LD_DIR)/*.ld))))
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(COMPILER_SUITE),gcc)
|
|
||||||
|
|
||||||
GCC ?= $(TC_BIN_PREFIX)gcc
|
|
||||||
GXX ?= $(TC_BIN_PREFIX)g++
|
|
||||||
CXX ?= $(GXX)
|
|
||||||
GNU_LD ?= $(TC_BIN_PREFIX)ld
|
|
||||||
CLANG ?= $(TC_BIN_PREFIX)clang
|
|
||||||
CLANGPP ?= $(TC_BIN_PREFIX)clang++
|
|
||||||
STRIP ?= $(TC_BIN_PREFIX)strip
|
|
||||||
RANLIB ?= $(TC_BIN_PREFIX)ranlib
|
|
||||||
AR ?= $(TC_BIN_PREFIX)ar
|
|
||||||
PKG_CONFIG_EXE ?= $(TC_BIN_PREFIX)pkg-config
|
|
||||||
CPP_FILT ?= $(TC_BIN_PREFIX)c++filt
|
|
||||||
OBJCOPY ?= $(TC_BIN_PREFIX)objcopy
|
|
||||||
OBJDUMP ?= $(TC_BIN_PREFIX)objdump
|
|
||||||
|
|
||||||
# compiler and linker
|
|
||||||
# gcc
|
|
||||||
GCC_VERSION := $(shell $(GCC) -v 2>&1 | $(SED) '/gcc.version/I !d; s/.*version *//I; s/ \+.*//')
|
|
||||||
GCC_VERSION_NUMBERS := $(subst ., ,$(GCC_VERSION))
|
|
||||||
GCC_MAJOR := $(word 1,$(GCC_VERSION_NUMBERS))
|
|
||||||
GCC_MINOR := $(word 2,$(GCC_VERSION_NUMBERS))
|
|
||||||
GCC_REV := $(word 3,$(GCC_VERSION_NUMBERS))
|
|
||||||
|
|
||||||
# Not needed anywhere
|
|
||||||
#GNU_LD_VERSION := $(shell $(LD) -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//')
|
|
||||||
#GNU_LD_VERSION_NUMBERS := $(subst ., ,$(GNU_LD_VERSION))
|
|
||||||
#GNU_LD_MAJOR := $(word 1,$(GNU_LD_VERSION_NUMBERS))
|
|
||||||
#GNU_LD_MINOR := $(word 2,$(GNU_LD_VERSION_NUMBERS))
|
|
||||||
#GNU_LD_REV := $(word 3,$(GNU_LD_VERSION_NUMBERS))
|
|
||||||
|
|
||||||
CC = $(GCC)
|
|
||||||
CXX = $(GXX)
|
|
||||||
LD = $(GXX)
|
|
||||||
|
|
||||||
BUILD_CXXFLAGS += -std=c++$(CPP_STANDARD_VERSION)
|
|
||||||
BUILD_CFLAGS += -std=gnu$(C_STANDARD_VERSION)
|
|
||||||
|
|
||||||
ifeq ($(shell $(TEST) $(GCC_MAJOR) -ge 5; $(ECHO) $$?),0)
|
|
||||||
ifeq ($(USE_CPP_FORCE_OVERRIDE),true)
|
|
||||||
GCC_CXXFLAGS += -Werror=suggest-override
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
else ifeq ($(COMPILER_SUITE),clang)
|
|
||||||
|
|
||||||
# clang
|
|
||||||
CLANG_CXXFLAGS += -Wno-unused-private-field -Wno-self-assign-field -Wno-overloaded-virtual
|
|
||||||
CC = $(CLANG)
|
|
||||||
CXX = $(CLANGPP)
|
|
||||||
LD = $(CLANGPP)
|
|
||||||
|
|
||||||
ifeq ($(USE_CPP_WARN_INCONSISTENT_OVERRIDE),true)
|
|
||||||
CLANG_CXXFLAGS += -Winconsistent-missing-override
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif # COMPILER_SUITE
|
|
||||||
|
|
||||||
PROJECT_LDFLAGS += $(addprefix -u ,$(LD_DEFINE_SYMBOLS))
|
PROJECT_LDFLAGS += $(addprefix -u ,$(LD_DEFINE_SYMBOLS))
|
||||||
|
|
||||||
# -- target files and dirs
|
# -- target files and dirs
|
||||||
|
|
@ -701,3 +713,5 @@ INSTALLED_ALL_LIBS = $(addprefix $(INSTALL_LIBDIR)/,$(wildcard *.a))
|
||||||
INSTALLED_LIB += $(INSTALLED_LIB_SO) $(INSTALLED_SHOBJS) \
|
INSTALLED_LIB += $(INSTALLED_LIB_SO) $(INSTALLED_SHOBJS) \
|
||||||
$(INSTALLED_LINKS_SO) $(sort $(INSTALLED_LIB_A) $(INSTALLED_ALL_LIBS)) \
|
$(INSTALLED_LINKS_SO) $(sort $(INSTALLED_LIB_A) $(INSTALLED_ALL_LIBS)) \
|
||||||
$(INSTALLED_DEF)
|
$(INSTALLED_DEF)
|
||||||
|
|
||||||
|
endif # ifndef JW_BUILD_CPP_DEFS_MK_INCLUDED
|
||||||
|
|
|
||||||
|
|
@ -246,8 +246,6 @@ endif
|
||||||
|
|
||||||
REV_SUBDIRS = $(call reverse $(SUBDIRS))
|
REV_SUBDIRS = $(call reverse $(SUBDIRS))
|
||||||
FRESH_CVSDIR = $(HOME)/local/src/cvs.fresh
|
FRESH_CVSDIR = $(HOME)/local/src/cvs.fresh
|
||||||
IMAGE_DIR ?= $(CVS_ROOT_DIR)/images
|
|
||||||
PCKG_DEPS_DIR = $(MODDIR)/make/deps.d
|
|
||||||
PCKG_DEFS_DIR = $(MODDIR)/make/defs.d
|
PCKG_DEFS_DIR = $(MODDIR)/make/defs.d
|
||||||
HDRDIR_SCOPE_SUFFIX ?= $(PROJECT)
|
HDRDIR_SCOPE_SUFFIX ?= $(PROJECT)
|
||||||
|
|
||||||
|
|
@ -268,11 +266,14 @@ endif
|
||||||
|
|
||||||
IMAGES += $(wildcard *.png *.jpg *.bmp *.gif *.ico *.svg)
|
IMAGES += $(wildcard *.png *.jpg *.bmp *.gif *.ico *.svg)
|
||||||
FONTS += $(wildcard *.woff *.svg)
|
FONTS += $(wildcard *.woff *.svg)
|
||||||
|
OPTS_PID_FILE ?= $(PIDDIR)/$(PROJECT).pid
|
||||||
LOCAL_MKFILES ?= $(wildcard GNUmakefile makefile Makefile *.mk)
|
LOCAL_MKFILES ?= $(wildcard GNUmakefile makefile Makefile *.mk)
|
||||||
|
LOG_QUAL_PREFIX ?= $(LOGID):
|
||||||
|
|
||||||
# -- standard dirs and files for build and install
|
# -- standard dirs and files for build and install
|
||||||
|
|
||||||
# -- CFG
|
# -- CFG
|
||||||
|
SYSCFG_DIR ?= /etc/sysconfig
|
||||||
|
SYSCFG_FILE ?= $(SYSCFG_DIR)/$(PROJECT)
|
||||||
INSTALLATION_FILE_TYPES += CFG
|
INSTALLATION_FILE_TYPES += CFG
|
||||||
CONFIG_FILE ?= $(CONFIG_DIR)/$(PROJECT).conf
|
CONFIG_FILE ?= $(CONFIG_DIR)/$(PROJECT).conf
|
||||||
SYSCFG_FILE ?= $(SYSCFG_DIR)/$(PROJECT)
|
SYSCFG_FILE ?= $(SYSCFG_DIR)/$(PROJECT)
|
||||||
|
|
|
||||||
|
|
@ -169,4 +169,5 @@ ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
TARGET_CPU ?= $(TARGET_ARCH)
|
||||||
endif # ifndef PLATFORM_MK_INCLUDED
|
endif # ifndef PLATFORM_MK_INCLUDED
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue