From 9ba0b335c70ddbfe9c3bb24d0eb20ac710a1a690 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 9 Aug 2021 19:34:49 +0300 Subject: [PATCH 1/8] Support cross compilation --- .gitignore | 1 + Makefile | 85 ++++++++++++++++-------- scripts/make/configure.mk | 136 ++++++++++++++++++++------------------ scripts/make/set_vars.mk | 53 ++++++++++++++- scripts/make/tools.mk | 25 +++++-- src/Makefile | 24 ++++++- src/dsp/Makefile | 19 ++++-- src/utils/Makefile | 46 +++++++------ 8 files changed, 258 insertions(+), 131 deletions(-) diff --git a/.gitignore b/.gitignore index 5bc0ecbb2..4a1edec49 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /design/* /.builconfig/* /.build/* +/.host_build/* /.buildconfig/* /.test/* /.release/* diff --git a/Makefile b/Makefile index 79ddcc66a..ce3de4e9c 100644 --- a/Makefile +++ b/Makefile @@ -24,8 +24,10 @@ export RESDIR = ${CURDIR}/res export RELEASE = ${CURDIR}/.release export RELEASE_BIN = $(RELEASE)/$(BUILD_SYSTEM)-$(BUILD_PROFILE) export BUILDDIR = ${CURDIR}/.build +export HOST_BUILDDIR = ${CURDIR}/.host_build export TESTDIR = ${CURDIR}/.test OBJDIR = $(BUILDDIR) +export HOST_OBJDIR = $(HOST_BUILDDIR) # Installation locations BIN_PATH ?= $(PREFIX)/bin @@ -41,20 +43,23 @@ VST_PATH = $(LIB_PATH)/vst export BASEDIR = ${CURDIR} # Objects -export OBJ_CORE = $(OBJDIR)/core.o -export OBJ_DSP = $(OBJDIR)/dsp.o -export OBJ_CTL_CORE = $(OBJDIR)/ctl_core.o -export OBJ_TK_CORE = $(OBJDIR)/tk_core.o -export OBJ_WS_CORE = $(OBJDIR)/ws_core.o -export OBJ_WS_X11_CORE = $(OBJDIR)/ws_x11_core.o -export OBJ_UI_CORE = $(OBJDIR)/ui_core.o -export OBJ_RES_CORE = $(OBJDIR)/res_core.o -export OBJ_TEST_CORE = $(OBJDIR)/test_core.o -export OBJ_TESTING_CORE = $(OBJDIR)/testing_core.o -export OBJ_PLUGINS = $(OBJDIR)/plugins.o -export OBJ_PLUGIN_UIS = $(OBJDIR)/plugin_uis.o -export OBJ_METADATA = $(OBJDIR)/metadata.o -export OBJ_FILES = $(OBJ_CORE) $(OBJ_UI_CORE) $(OBJ_RES_CORE) $(OBJ_PLUGINS) $(OBJ_METADATA) +export OBJ_CORE = $(OBJDIR)/core.o +export HOST_OBJ_CORE = $(HOST_OBJDIR)/core.o +export OBJ_DSP = $(OBJDIR)/dsp.o +export HOST_OBJ_DSP = $(HOST_OBJDIR)/dsp.o +export OBJ_CTL_CORE = $(OBJDIR)/ctl_core.o +export OBJ_TK_CORE = $(OBJDIR)/tk_core.o +export OBJ_WS_CORE = $(OBJDIR)/ws_core.o +export OBJ_WS_X11_CORE = $(OBJDIR)/ws_x11_core.o +export OBJ_UI_CORE = $(OBJDIR)/ui_core.o +export OBJ_RES_CORE = $(OBJDIR)/res_core.o +export OBJ_TEST_CORE = $(OBJDIR)/test_core.o +export OBJ_TESTING_CORE = $(OBJDIR)/testing_core.o +export OBJ_PLUGINS = $(OBJDIR)/plugins.o +export OBJ_PLUGIN_UIS = $(OBJDIR)/plugin_uis.o +export OBJ_METADATA = $(OBJDIR)/metadata.o +export HOST_OBJ_METADATA = $(HOST_OBJDIR)/metadata.o +export OBJ_FILES = $(OBJ_CORE) $(OBJ_UI_CORE) $(OBJ_RES_CORE) $(OBJ_PLUGINS) $(OBJ_METADATA) # Libraries export LIB_LADSPA = $(OBJDIR)/$(ARTIFACT_ID)-ladspa.so @@ -68,11 +73,14 @@ export BIN_PROFILE = $(OBJDIR)/$(ARTIFACT_ID)-profile export BIN_TEST = $(OBJDIR)/$(ARTIFACT_ID)-test # Utils -export UTL_GENTTL = $(OBJDIR)/lv2_genttl.exe -export UTL_VSTMAKE = $(OBJDIR)/vst_genmake.exe -export UTL_JACKMAKE = $(OBJDIR)/jack_genmake.exe -export UTL_GENPHP = $(OBJDIR)/gen_php.exe -export UTL_RESGEN = $(OBJDIR)/gen_resources.exe +ifeq ($(BUILD_SYSTEM),Windows) + BIN_SUFFIX := .exe +endif +export UTL_GENTTL = $(HOST_OBJDIR)/lv2_genttl$(BIN_SUFFIX) +export UTL_VSTMAKE = $(HOST_OBJDIR)/vst_genmake$(BIN_SUFFIX) +export UTL_JACKMAKE = $(HOST_OBJDIR)/jack_genmake$(BIN_SUFFIX) +export UTL_GENPHP = $(HOST_OBJDIR)/gen_php$(BIN_SUFFIX) +export UTL_RESGEN = $(HOST_OBJDIR)/gen_resources$(BIN_SUFFIX) export UTL_FILES = $(UTL_GENTTL) $(UTL_VSTMAKE) $(UTL_GENPHP) $(UTL_RESGEN) # Files @@ -104,6 +112,7 @@ all: export CXXFLAGS += -O2 -DLSP_NO_EXPERIMENTAL all: export EXE_FLAGS += -pie -fPIE all: compile + experimental: export CFLAGS += -O2 experimental: export CXXFLAGS += -O2 experimental: compile @@ -161,17 +170,17 @@ profile: compile compile_info: @echo "-------------------------------------------------------------------------------" @echo "Building binaries" - @echo " target architecture : $(BUILD_PROFILE)" - @echo " target platform : $(BUILD_PLATFORM)" - @echo " target system : $(BUILD_SYSTEM)" - @echo " compiler : $(BUILD_COMPILER)" - @echo " modules : $(BUILD_MODULES)" - @echo " UI : LV2=$(LV2_UI), VST=$(VST_UI)" - @echo " 3D rendering : $(BUILD_R3D_BACKENDS)" - @echo " build directory : $(OBJDIR)" + @echo " platform : $(BUILD_PLATFORM)" + @echo " system : $(BUILD_SYSTEM)" + @echo " target compiler : $(CXX)" + @echo " target architecture : $(BUILD_PROFILE)" + @echo " modules : $(BUILD_MODULES)" + @echo " UI : LV2=$(LV2_UI), VST=$(VST_UI)" + @echo " 3D rendering : $(BUILD_R3D_BACKENDS)" + @echo " build directory : $(OBJDIR)" @echo "-------------------------------------------------------------------------------" -compile: | compile_info +compile: utils | compile_info mkdir -p $(OBJDIR)/src mkdir -p $(CFGDIR) test -f "$(CFGDIR)/$(PREFIX_FILE)" || echo -n "$(PREFIX)" > "$(CFGDIR)/$(PREFIX_FILE)" @@ -181,13 +190,31 @@ compile: | compile_info $(MAKE) $(MAKE_OPTS) -C src all OBJDIR=$(OBJDIR)/src @echo "Build OK" -test_compile: | compile_info +test_compile: utils | compile_info mkdir -p $(OBJDIR)/src $(MAKE) $(MAKE_OPTS) -C src all OBJDIR=$(OBJDIR)/src @echo "Test Build OK" +utils: export BUILD_PROFILE=$(HOST_BUILD_PROFILE) +utils: export OBJDIR=$(HOST_OBJDIR) +utils: export OBJ_CORE=$(HOST_OBJ_CORE) +utils: export OBJ_DSP=$(HOST_OBJ_DSP) +utils: export OBJ_METADATA=$(HOST_OBJ_METADATA) +utils: export CXX=$(HOST_CXX) +utils: export CXXFLAGS=$(HOST_CXXFLAGS) +utils: export LD=$(HOST_LD) +utils: export SNDFILE_HEADERS=$(HOST_SNDFILE_HEADERS) +utils: export SNDFILE_LIBS=$(HOST_SNDFILE_LIBS) +utils: export LV2_HEADERS=$(HOST_LV2_HEADERS) +utils: export LV2_LIBS=$(HOST_LV2_LIBS) +utils: | compile_info + mkdir -p $(HOST_OBJDIR)/src/utils + $(MAKE) $(MAKE_OPTS) -C src utils + @echo "Utils Build OK" + clean: -rm -rf $(BUILDDIR) + -rm -rf $(HOST_BUILDDIR) -rm -rf $(TESTDIR) -rm -rf $(CFGDIR) @echo "Clean OK" diff --git a/scripts/make/configure.mk b/scripts/make/configure.mk index 09aee9a0b..1f3cf7b92 100644 --- a/scripts/make/configure.mk +++ b/scripts/make/configure.mk @@ -14,7 +14,8 @@ ifndef BUILD_R3D_BACKENDS BUILD_R3D_BACKENDS := $(shell if (test -f "$(CFGDIR)/$(R3D_BACKENDS_FILE)" ) then cat "$(CFGDIR)/$(R3D_BACKENDS_FILE)" 2>/dev/null; else echo "glx"; fi;) endif -BUILD_COMPILER := $(shell $(CC) --version | head -n 1 || echo "unknown") +BUILD_COMPILER := $(shell $(CXX) --version | head -n 1 || echo "unknown") +HOST_BUILD_COMPILER := $(shell $(HOST_CXX) --version | head -n 1 || echo "unknown") export BUILD_MODULES export BUILD_R3D_BACKENDS @@ -23,7 +24,7 @@ export BUILD_R3D_BACKENDS INSTALLATIONS = UNINSTALLATIONS = uninstall_xdg RELEASES = -INCLUDE = -I"${CURDIR}/include" +INCLUDE := -I"${CURDIR}/include" ifeq ($(findstring ladspa,$(BUILD_MODULES)),ladspa) INSTALLATIONS += install_ladspa @@ -63,61 +64,64 @@ LD_ARCH = CC_ARCH = # Build profile -ifeq ($(BUILD_PROFILE),i586) - CC_ARCH = -m32 - ifeq ($(BUILD_PLATFORM), Linux) - LD_ARCH = -m elf_i386 +# SKIP_CC_LD_ARCH is set by distro package build systems +# which manage cross-compilation flags on their own +ifeq ($(SKIP_CC_LD_ARCH),) + ifeq ($(BUILD_PROFILE),i586) + CC_ARCH = -m32 + ifeq ($(BUILD_PLATFORM), Linux) + LD_ARCH = -m elf_i386 + endif + ifeq ($(BUILD_PLATFORM), BSD) + LD_ARCH = -m elf_i386_fbsd + endif endif + + ifeq ($(BUILD_PROFILE),x86_64) + CC_ARCH = -m64 + ifeq ($(BUILD_PLATFORM), Linux) + LD_ARCH = -m elf_x86_64 + endif + ifeq ($(BUILD_PLATFORM), BSD) + LD_ARCH = -m elf_x86_64_fbsd + endif + endif + ifeq ($(BUILD_PLATFORM), BSD) - LD_ARCH = -m elf_i386_fbsd + INCLUDE += -I/usr/local/include + ifeq ($(BUILD_PROFILE),arm) + CC_ARCH = -marm + ifneq ($(LD_PATH),) + CC_ARCH += -Wl,-rpath=$(LD_PATH) + endif + endif endif -endif - -ifeq ($(BUILD_PROFILE),x86_64) - CC_ARCH = -m64 - ifeq ($(BUILD_PLATFORM), Linux) - LD_ARCH = -m elf_x86_64 + + ifeq ($(BUILD_PROFILE),armv6a) + CC_ARCH = -march=armv6-a -marm endif - ifeq ($(BUILD_PLATFORM), BSD) - LD_ARCH = -m elf_x86_64_fbsd + + ifeq ($(BUILD_PROFILE),armv7a) + CC_ARCH = -march=armv7-a -marm endif -endif - -ifeq ($(BUILD_PLATFORM), BSD) - INCLUDE += -I/usr/local/include - ifeq ($(BUILD_PROFILE),arm) + + ifeq ($(BUILD_PROFILE),armv7ve) + CC_ARCH = -march=armv7ve -marm + endif + + ifeq ($(BUILD_PROFILE),arm32) CC_ARCH = -marm - ifneq ($(LD_PATH),) - CC_ARCH += -Wl,-rpath=$(LD_PATH) - endif + endif + + ifeq ($(BUILD_PROFILE),armv8a) + CC_ARCH = -march=armv7-a -marm + endif + + ifeq ($(BUILD_PROFILE),aarch64) + CC_ARCH = -march=armv8-a endif endif -ifeq ($(BUILD_PROFILE),armv6a) - CC_ARCH = -march=armv6-a -marm -endif - -ifeq ($(BUILD_PROFILE),armv7a) - CC_ARCH = -march=armv7-a -marm -endif - -ifeq ($(BUILD_PROFILE),armv7ve) - CC_ARCH = -march=armv7ve -marm -endif - -ifeq ($(BUILD_PROFILE),arm32) - CC_ARCH = -marm -endif - -ifeq ($(BUILD_PROFILE),armv8a) - CC_ARCH = -march=armv7-a -marm -endif - -ifeq ($(BUILD_PROFILE),aarch64) - CC_ARCH = -march=armv8-a -endif - - export CC_ARCH export LD_ARCH export LD_PATH @@ -127,21 +131,25 @@ export INCLUDE ifeq ($(BUILD_SYSTEM),Windows) # TODO else - export PTHREAD_LIBS = -lpthread - export ICONV_LIBS = -liconv - export MATH_LIBS = -lm - export DL_LIBS = -ldl - export CAIRO_HEADERS = $(shell pkg-config --cflags cairo) - export CAIRO_LIBS = $(shell pkg-config --libs cairo) - export XLIB_HEADERS = $(shell pkg-config --cflags x11) - export XLIB_LIBS = $(shell pkg-config --libs x11) - export LV2_HEADERS = $(shell pkg-config --cflags lv2) - export LV2_LIBS = $(shell pkg-config --libs lv2) - export SNDFILE_HEADERS = $(shell pkg-config --cflags sndfile) - export SNDFILE_LIBS = $(shell pkg-config --libs sndfile) - export JACK_HEADERS = $(shell pkg-config --cflags jack) - export JACK_LIBS = $(shell pkg-config --libs jack) - export OPENGL_HEADERS = $(shell pkg-config --cflags gl 2>/dev/null || echo "") - export OPENGL_LIBS = $(shell pkg-config --libs gl 2>/dev/null || echo "") + export PTHREAD_LIBS = -lpthread + export ICONV_LIBS = -liconv + export MATH_LIBS = -lm + export DL_LIBS = -ldl + export CAIRO_HEADERS = $(shell $(PKG_CONFIG) --cflags cairo) + export CAIRO_LIBS = $(shell $(PKG_CONFIG) --libs cairo) + export XLIB_HEADERS = $(shell $(PKG_CONFIG) --cflags x11) + export XLIB_LIBS = $(shell $(PKG_CONFIG) --libs x11) + export LV2_HEADERS = $(shell $(PKG_CONFIG) --cflags lv2) + export LV2_HEADERS = $(shell $(PKG_CONFIG) --libs lv2) + export SNDFILE_HEADERS = $(shell $(PKG_CONFIG) --cflags sndfile) + export SNDFILE_LIBS = $(shell $(PKG_CONFIG) --libs sndfile) + export JACK_HEADERS = $(shell $(PKG_CONFIG) --cflags jack) + export JACK_LIBS = $(shell $(PKG_CONFIG) --libs jack) + export OPENGL_HEADERS = $(shell $(PKG_CONFIG) --cflags gl 2>/dev/null || echo "") + export OPENGL_LIBS = $(shell $(PKG_CONFIG) --libs gl 2>/dev/null || echo "") + export HOST_SNDFILE_HEADERS = $(shell $(HOST_PKG_CONFIG) --cflags sndfile) + export HOST_SNDFILE_LIBS = $(shell $(HOST_PKG_CONFIG) --libs sndfile) + export HOST_LV2_HEADERS = $(shell $(HOST_PKG_CONFIG) --cflags lv2) + export HOST_LV2_LIBS = $(shell $(HOST_PKG_CONFIG) --libs lv2) endif diff --git a/scripts/make/set_vars.mk b/scripts/make/set_vars.mk index a22531a44..93916eac7 100644 --- a/scripts/make/set_vars.mk +++ b/scripts/make/set_vars.mk @@ -37,7 +37,52 @@ export BUILD_PLATFORM export LV2_UI export VST_UI -# Detect processor architecture +# Detect host processor architecture +ifeq ($(BUILD_PLATFORM),Windows) + ifndef HOST_BUILD_PROFILE + HOST_BUILD_ARCH = i586 + HOST_BUILD_PROFILE = i586 + ifeq ($(PROCESSOR_ARCHITECTURE),x86) + HOST_BUILD_ARCH = i586 + HOST_BUILD_PROFILE = i586 + endif + ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) + HOST_BUILD_ARCH = x86_64 + HOST_BUILD_PROFILE = x86_64 + endif + endif +else # BUILD_PLATFORM != Windows + ifndef HOST_BUILD_PROFILE + HOST_BUILD_ARCH ?= $(shell cat "$(OBJDIR)/$(BUILD_PROFILE_FILE)" 2>/dev/null || uname -m) + HOST_BUILD_PROFILE = $(HOST_BUILD_ARCH) + ifeq ($(patsubst armv6%,armv6,$(HOST_BUILD_ARCH)), armv6) + HOST_BUILD_PROFILE = armv6a + endif + ifeq ($(patsubst armv7%,armv7,$(HOST_BUILD_ARCH)), armv7) + HOST_BUILD_PROFILE = armv7a + endif + ifeq ($(patsubst armv8%,armv8,$(HOST_BUILD_ARCH)), armv8) + HOST_BUILD_PROFILE = armv8a + endif + ifeq ($(patsubst aarch64%,aarch64,$(HOST_BUILD_ARCH)), aarch64) + HOST_BUILD_PROFILE = aarch64 + endif + ifeq ($(HOST_BUILD_ARCH),x86_64) + HOST_BUILD_PROFILE = x86_64 + endif + ifeq ($(HOST_BUILD_ARCH),amd64) + HOST_BUILD_PROFILE = x86_64 + endif + ifeq ($(HOST_BUILD_ARCH),i86pc) + HOST_BUILD_PROFILE = x86_64 + endif + ifeq ($(patsubst i%86,i586,$(HOST_BUILD_ARCH)), i586) + HOST_BUILD_PROFILE = i586 + endif + endif +endif # BUILD_PLATFORM != Windows + +# Detect target processor architecture ifeq ($(BUILD_PLATFORM),Windows) ifndef BUILD_PROFILE BUILD_ARCH = i586 @@ -53,7 +98,7 @@ ifeq ($(BUILD_PLATFORM),Windows) endif else # BUILD_PLATFORM != Windows ifndef BUILD_PROFILE - BUILD_ARCH = $(shell cat "$(OBJDIR)/$(BUILD_PROFILE_FILE)" 2>/dev/null || uname -m) + BUILD_ARCH ?= $(shell cat "$(OBJDIR)/$(BUILD_PROFILE_FILE)" 2>/dev/null || uname -m) BUILD_PROFILE = $(BUILD_ARCH) ifeq ($(patsubst armv6%,armv6,$(BUILD_ARCH)), armv6) BUILD_PROFILE = armv6a @@ -82,5 +127,7 @@ else # BUILD_PLATFORM != Windows endif endif # BUILD_PLATFORM != Windows -export BUILD_PROFILE +HOST_BUILD_PROFILE ?= $(shell uname -m) +export BUILD_PROFILE +export HOST_BUILD_PROFILE diff --git a/scripts/make/tools.mk b/scripts/make/tools.mk index 565dbb1b8..0cc859f00 100644 --- a/scripts/make/tools.mk +++ b/scripts/make/tools.mk @@ -1,8 +1,12 @@ # Setup preferred tools TOOL_LD = ld +TOOL_HOST_LD = ld TOOL_CC = gcc TOOL_CXX = g++ +TOOL_HOST_CXX = g++ TOOL_PHP = php +TOOL_PKG_CONFIG = pkg-config +TOOL_HOST_PKG_CONFIG = PKG_CONFIG_SYSROOT_DIR=/ pkg-config # Setup preferred flags FLAG_RELRO = -Wl,-z,relro,-z,now @@ -17,20 +21,27 @@ FLAG_CTUNE = -std=c++98 \ ifeq ($(BUILD_PLATFORM),Solaris) FLAG_RELRO = TOOL_LD = gld + TOOL_HOST_LD = gld endif # Setup system variables CC ?= $(TOOL_CC) CXX ?= $(TOOL_CXX) +HOST_CXX ?= $(TOOL_HOST_CXX) PHP ?= $(TOOL_PHP) LD ?= $(TOOL_LD) +HOST_LD ?= $(TOOL_HOST_LD) +PKG_CONFIG ?= $(TOOL_PKG_CONFIG) +HOST_PKG_CONFIG ?= $(TOOL_HOST_PKG_CONFIG) CFLAGS += $(CC_ARCH) $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) CXXFLAGS += $(CC_ARCH) $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) -SO_FLAGS = $(CC_ARCH) $(FLAG_RELRO) -Wl,--gc-sections -shared -Llibrary -lc -fPIC -MERGE_FLAGS = $(LD_ARCH) -r -EXE_TEST_FLAGS = $(LDFLAGS) $(CC_ARCH) -EXE_FLAGS = $(LDFLAGS) $(CC_ARCH) $(FLAG_RELRO) -Wl,--gc-sections +HOST_CXXFLAGS += $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) +SO_FLAGS += $(CC_ARCH) $(FLAG_RELRO) -Wl,--gc-sections -shared -Llibrary -lc -fPIC +MERGE_FLAGS += $(LD_ARCH) -r +EXE_TEST_FLAGS += $(LDFLAGS) $(CC_ARCH) +EXE_FLAGS += $(LDFLAGS) $(CC_ARCH) $(FLAG_RELRO) -Wl,--gc-sections +HOST_EXE_FLAGS += $(HOST_LDFLAGS) $(FLAG_RELRO) -Wl,--gc-sections ifeq ($(BUILD_PLATFORM), Linux) SO_FLAGS += -Wl,--no-undefined @@ -58,12 +69,18 @@ endif export CC export CXX +export HOST_CXX export PHP export LD +export HOST_LD +export PKG_CONFIG +export HOST_PKG_CONFIG export CFLAGS export CXXFLAGS +export HOST_CXXFLAGS export SO_FLAGS export MERGE_FLAGS export EXE_TEST_FLAGS export EXE_FLAGS +export HOST_EXE_FLAGS diff --git a/src/Makefile b/src/Makefile index d960ad84a..01ac70b74 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,3 +1,5 @@ +# Estimate different pre-requisites before launching build + # Command-line flag to silence nested $(MAKE). MAKE_OPTS += VERBOSE=$(VERBOSE) ifneq ($(VERBOSE),1) @@ -7,7 +9,8 @@ endif SUBDIRS = core metadata utils MODULES = $(SUBDIRS) CONTAINER_DEPS = $(OBJ_METADATA) $(OBJ_CORE) $(UTL_FILES) -UTL_DEPS = $(OBJ_CORE) $(OBJ_DSP) $(OBJ_METADATA) +UTL_DEPS = $(HOST_OBJ_CORE) $(HOST_OBJ_DSP) $(HOST_OBJ_METADATA) +OBJDIR ?= $(BUILDDIR) NEED_UI = 0 NEED_PLUGINS = 0 @@ -73,19 +76,34 @@ target: all # Rules $(SUBDIRS): - @echo "Building $(@)" + @echo "$(BUILDDIR)" mkdir -p $(OBJDIR)/$(@) - $(MAKE) $(MAKE_OPTS) -C $@ $(MAKECMDGOALS) OBJDIR=$(OBJDIR)/$(@) + $(MAKE) $(MAKE_OPTS) -C $@ all \ + CXX="$(CXX)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LD="$(LD)" \ + OBJDIR="$(OBJDIR)/$(@)" \ + BUILD_PROFILE="$(BUILD_PROFILE)" \ + SNDFILE_HEADERS="$(SNDFILE_HEADERS)" \ + SNDFILE_LIBS="$(SNDFILE_LIBS)" \ + LV2_HEADERS="$(LV2_HEADERS)" \ + LV2_LIBS="$(LV2_LIBS)" # Object dependencies $(OBJ_CORE): core +$(HOST_OBJ_CORE): core + $(OBJ_DSP): dsp +$(HOST_OBJ_DSP): dsp + $(OBJ_PLUGINS): plugins $(OBJ_METADATA): metadata +$(HOST_OBJ_METADATA): metadata + $(OBJ_UI_CORE): ui $(UTL_FILES): utils diff --git a/src/dsp/Makefile b/src/dsp/Makefile index aac8007d4..cc30a373c 100644 --- a/src/dsp/Makefile +++ b/src/dsp/Makefile @@ -34,27 +34,32 @@ LINK_OBJECTS = $(DSP_IMPL) $(BITS_IMPL) $(NATIVE_IMPL) # Build different DSP modules dependent on architecture ifeq ($(BUILD_PROFILE), i586) -LINK_OBJECTS += $(X86_IMPL) $(SSE_IMPL) $(SSE2_IMPL) $(SSE3_IMPL) $(SSE4_IMPL) $(AVX_IMPL) $(AVX2_IMPL) + LINK_OBJECTS += $(X86_IMPL) $(SSE_IMPL) $(SSE2_IMPL) $(SSE3_IMPL) \ + $(SSE4_IMPL) $(AVX_IMPL) $(AVX2_IMPL) endif ifeq ($(BUILD_PROFILE), x86_64) -LINK_OBJECTS += $(X86_IMPL) $(SSE_IMPL) $(SSE2_IMPL) $(SSE3_IMPL) $(SSE4_IMPL) $(AVX_IMPL) $(AVX2_IMPL) +LINK_OBJECTS += $(X86_IMPL) $(SSE_IMPL) $(SSE2_IMPL) $(SSE3_IMPL) \ + $(SSE4_IMPL) $(AVX_IMPL) $(AVX2_IMPL) endif ifeq ($(BUILD_PLATFORM), BSD) ifeq ($(BUILD_PROFILE), arm) - LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) + LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) endif endif +ifeq ($(BUILD_PROFILE), armv6a) + LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) +endif ifeq ($(BUILD_PROFILE), armv7a) -LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) + LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) endif ifeq ($(BUILD_PROFILE), armv7ve) -LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) + LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) endif ifeq ($(BUILD_PROFILE), arm32) -LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) + LINK_OBJECTS += $(ARM_IMPL) $(NEON_D32_IMPL) endif ifeq ($(BUILD_PROFILE), aarch64) -LINK_OBJECTS += $(AARCH64_IMPL) $(ASIMD_IMPL) + LINK_OBJECTS += $(AARCH64_IMPL) $(ASIMD_IMPL) endif .DEFAULT_GOAL := all diff --git a/src/utils/Makefile b/src/utils/Makefile index fbddcaa58..4b4fd2eb6 100644 --- a/src/utils/Makefile +++ b/src/utils/Makefile @@ -4,15 +4,21 @@ ifneq ($(VERBOSE),1) .SILENT: endif +CXX = $(HOST_CXX) +CXXFLAGS = $(HOST_CXXFLAGS) +MAKE_OPTS += CXX=$(HOST_CXX) CXXFLAGS=$(HOST_CXXFLAGS) + MODULES = $(UTL_RESGEN) FILELIST = resource_gen.o FILE = $(@:$(OBJDIR)/%.o=%.cpp) SUBDIRS = -OBJ_FILES = $(OBJ_CORE) $(OBJ_METADATA) +OBJ_FILES = $(HOST_OBJ_CORE) $(HOST_OBJ_METADATA) $(HOST_OBJ_DSP) OBJ_LIBS = $(PTHREAD_LIBS) $(MATH_LIBS) OBJ_EXTRA = INCLUDE_EXTRA = +export PKG_CONFIG_SYSROOT_DIR = / + ifeq ($(BUILD_PLATFORM),BSD) OBJ_LIBS += $(ICONV_LIBS) endif @@ -24,7 +30,7 @@ endif ifeq ($(findstring lv2,$(BUILD_MODULES)),lv2) MODULES += $(UTL_GENTTL) FILELIST += lv2_genttl.o - INCLUDE_EXTRA += $(LV2_HEADERS) + INCLUDE_EXTRA += $(HOST_LV2_HEADERS) endif ifeq ($(findstring vst,$(BUILD_MODULES)),vst) MODULES += $(UTL_VSTMAKE) @@ -54,28 +60,26 @@ $(SUBDIRS): $(MAKE) $(MAKE_OPTS) -C $@ $(MAKECMDGOALS) OBJDIR=$(OBJDIR)/$(@) $(FILES): - @echo " $(CXX) $(FILE)" - $(CXX) -o $(@) -c $(FILE) $(CPPFLAGS) -fPIC $(CXXFLAGS) $(INCLUDE) $(INCLUDE_EXTRA) + @echo " $(HOST_CXX) $(FILE)" + $(HOST_CXX) -o $(@) -c $(FILE) $(CPPFLAGS) -fPIC $(HOST_CXXFLAGS) $(INCLUDE) $(INCLUDE_EXTRA) # Rules for each utility -$(UTL_GENTTL): $(FILES) $(SUBDIRS) - @echo " $(CXX) $(notdir $(UTL_GENTTL))" - $(CXX) -o $(UTL_GENTTL) $(OBJDIR)/lv2_genttl.o $(OBJ_FILES) $(EXE_FLAGS) $(SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) $(LV2_LIBS) +$(UTL_GENTTL): $(OBJ_FILES) $(FILES) $(SUBDIRS) + @echo " $(HOST_CXX) $(notdir $(UTL_GENTTL))" + $(HOST_CXX) -o $(UTL_GENTTL) $(OBJDIR)/lv2_genttl.o $(OBJ_FILES) $(HOST_EXE_FLAGS) $(HOST_SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) $(LV2_LIBS) -$(UTL_JACKMAKE): $(FILES) $(SUBDIRS) - @echo " $(CXX) $(notdir $(UTL_JACKMAKE))" - $(CXX) -o $(UTL_JACKMAKE) $(OBJDIR)/jack_genmake.o $(OBJ_FILES) $(EXE_FLAGS) $(SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) +$(UTL_JACKMAKE): $(OBJ_FILES) $(FILES) $(SUBDIRS) + @echo " $(HOST_CXX) $(notdir $(UTL_JACKMAKE))" + $(HOST_CXX) -o $(UTL_JACKMAKE) $(OBJDIR)/jack_genmake.o $(OBJ_FILES) $(HOST_EXE_FLAGS) $(HOST_SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) -$(UTL_VSTMAKE): $(FILES) $(SUBDIRS) - @echo " $(CXX) $(notdir $(UTL_VSTMAKE))" - $(CXX) -o $(UTL_VSTMAKE) $(OBJDIR)/vst_genmake.o $(OBJ_FILES) $(EXE_FLAGS) $(DL_LIBS) $(OBJ_LIBS) +$(UTL_VSTMAKE): $(OBJ_FILES) $(FILES) $(SUBDIRS) + @echo " $(HOST_CXX) $(notdir $(UTL_VSTMAKE))" + $(HOST_CXX) -o $(UTL_VSTMAKE) $(OBJDIR)/vst_genmake.o $(OBJ_FILES) $(HOST_EXE_FLAGS) $(HOST_SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) -$(UTL_GENPHP): $(FILES) $(SUBDIRS) - @echo " $(CXX) $(notdir $(UTL_GENPHP))" - $(CXX) -o $(UTL_GENPHP) $(OBJDIR)/gen_php.o $(OBJ_FILES) $(EXE_FLAGS) $(SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) - -$(UTL_RESGEN): $(FILES) $(SUBDIRS) - @echo " $(CXX) $(notdir $(UTL_RESGEN))" - $(CXX) -o $(UTL_RESGEN) $(OBJDIR)/resource_gen.o $(OBJ_FILES) $(OBJ_DSP) $(OBJ_EXTRA) $(EXE_FLAGS) $(SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) - +$(UTL_GENPHP): $(OBJ_FILES) $(FILES) $(SUBDIRS) + @echo " $(HOST_CXX) $(notdir $(UTL_GENPHP))" + $(HOST_CXX) -o $(UTL_GENPHP) $(OBJDIR)/gen_php.o $(OBJ_FILES) $(HOST_EXE_FLAGS) $(HOST_SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) +$(UTL_RESGEN): $(OBJ_FILES) $(FILES) $(SUBDIRS) + @echo " $(HOST_CXX) $(notdir $(UTL_RESGEN))" + $(HOST_CXX) -o $(UTL_RESGEN) $(OBJDIR)/resource_gen.o $(OBJ_FILES) $(OBJ_EXTRA) $(HOST_EXE_FLAGS) $(HOST_SNDFILE_LIBS) $(DL_LIBS) $(OBJ_LIBS) From bdf810a34629b40e46337b3db5e305379f7ca793 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 9 Aug 2021 19:29:51 +0300 Subject: [PATCH 2/8] Fix LSP_MAIN_VERSION & LSP_LIB_PREFIX macros --- include/metadata/metadata.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/metadata/metadata.h b/include/metadata/metadata.h index 0efaa9d42..e009750c2 100644 --- a/include/metadata/metadata.h +++ b/include/metadata/metadata.h @@ -73,10 +73,18 @@ #define LSP_ARCHITECTURE "unknown" #endif /* ARCH */ +#define STRINGIFY_(x) #x +#define STRINGIFY(x) STRINGIFY_(x) + #ifndef LSP_MAIN_VERSION #define LSP_MAIN_VERSION "0.0.0" +#else + #define LSP_MAIN_VERSION_STR STRINGIFY(LSP_MAIN_VERSION) + #undef LSP_MAIN_VERSION + #define LSP_MAIN_VERSION LSP_MAIN_VERSION_STR #endif /* LSP_MAIN_VERSION */ + #define LSP_LV2_LATENCY_PORT "out_latency" #define LSP_LV2_ATOM_PORT_IN "in_ui" #define LSP_LV2_MIDI_PORT_IN "in_midi" @@ -86,7 +94,7 @@ #define LSP_LV2_OSC_PORT_OUT "out_osc" #ifdef LSP_INSTALL_PREFIX - #define LSP_LIB_PREFIX(x) LSP_INSTALL_PREFIX x + #define LSP_LIB_PREFIX(x) STRINGIFY(LSP_INSTALL_PREFIX) x #else #define LSP_LIB_PREFIX(x) x #endif /* PREFIX */ From e405af6e0779287930d5e3116e7ddbb8594669f7 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 9 Aug 2021 19:25:08 +0300 Subject: [PATCH 3/8] Fix .gitmodules --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index ac5ea32da..4480c1fdc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "Polynomial-Wiener-Hammerstein"] path = Polynomial-Wiener-Hammerstein - url = ../../CrocoDuckoDucks/Polynomial-Wiener-Hammerstein.git + url = https://github.com/CrocoDuckoDucks/Polynomial-Wiener-Hammerstein From 6f2c0a064a26e25bc8d24689f28802fb549e90e8 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 9 Aug 2021 19:24:32 +0300 Subject: [PATCH 4/8] Fix tmp/.gitignore --- tmp/.gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tmp/.gitignore b/tmp/.gitignore index 22e83649f..d6b7ef32c 100644 --- a/tmp/.gitignore +++ b/tmp/.gitignore @@ -1 +1,2 @@ -/* \ No newline at end of file +* +!.gitignore From ee3fc7af1326ccd5c0d9f8a436d4fa4ff8983420 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 2 Aug 2021 21:45:47 +0300 Subject: [PATCH 5/8] Use -Og instead of -O0 for debug builds --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ce3de4e9c..08698799f 100644 --- a/Makefile +++ b/Makefile @@ -131,8 +131,8 @@ test: export BUILD_MODULES = jack test: test_compile testdebug: OBJDIR = $(TESTDIR) -testdebug: export CFLAGS += -O0 -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector -testdebug: export CXXFLAGS += -O0 -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector +testdebug: export CFLAGS += -Og -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector +testdebug: export CXXFLAGS += -Og -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector testdebug: export EXE_TEST_FLAGS += -g3 testdebug: export MAKE_OPTS += LSP_TESTING=1 testdebug: export BUILD_MODULES = jack @@ -157,8 +157,8 @@ debugfile: export CFLAGS += -DLSP_TRACEFILE debugfile: export CXXFLAGS += -DLSP_TRACEFILE debugfile: debug -gdb: export CFLAGS += -O0 -g3 -DLSP_TRACE -gdb: export CXXFLAGS += -O0 -g3 -DLSP_TRACE +gdb: export CFLAGS += -Og -g3 -DLSP_TRACE +gdb: export CXXFLAGS += -Og -g3 -DLSP_TRACE gdb: compile profile: export CFLAGS += -g -pg -DLSP_PROFILING -no-pie -fno-pie -fPIC From 5f0aa7f9cdf07d9ab945ce6d6745afa35e77a67e Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 2 Aug 2021 21:57:06 +0300 Subject: [PATCH 6/8] Add check rule to run unit tests --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 08698799f..808d4640c 100644 --- a/Makefile +++ b/Makefile @@ -98,7 +98,7 @@ SRC_ID := $(ARTIFACT_ID)-src-$(LSP_VERSION) DOC_ID := $(ARTIFACT_ID)-doc-$(LSP_VERSION) .DEFAULT_GOAL := all -.PHONY: all experimental trace debug tracefile debugfile profile gdb test testdebug testprofile compile test_compile +.PHONY: all experimental trace debug tracefile debugfile profile gdb test check testdebug testprofile compile test_compile .PHONY: compile_info .PHONY: install install_ladspa install_lv2 install_vst install_jack install_doc install_xdg .PHONY: uninstall uninstall_ladspa uninstall_lv2 uninstall_vst uninstall_jack uninstall_doc uninstall_xdg @@ -130,6 +130,10 @@ test: export MAKE_OPTS += LSP_TESTING=1 test: export BUILD_MODULES = jack test: test_compile +# Run unit tests +check: test + .test/lsp-plugins-test utest + testdebug: OBJDIR = $(TESTDIR) testdebug: export CFLAGS += -Og -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector testdebug: export CXXFLAGS += -Og -DLSP_TESTING -DLSP_TRACE -g3 -fstack-protector From c047f40a4611e21bf03eb4408b6f5bb43baf92bd Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 2 Aug 2021 22:07:49 +0300 Subject: [PATCH 7/8] Show which files are being removed if VERBOSE=1 --- Makefile | 54 ++++++++++++++++++++++++++-------------------------- src/Makefile | 6 +++--- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 808d4640c..05da09650 100644 --- a/Makefile +++ b/Makefile @@ -217,10 +217,10 @@ utils: | compile_info @echo "Utils Build OK" clean: - -rm -rf $(BUILDDIR) - -rm -rf $(HOST_BUILDDIR) - -rm -rf $(TESTDIR) - -rm -rf $(CFGDIR) + rm -rf $(BUILDDIR) + rm -rf $(HOST_BUILDDIR) + rm -rf $(TESTDIR) + rm -rf $(CFGDIR) @echo "Clean OK" # Build targets @@ -376,7 +376,7 @@ release_doc: | release_prepare # Unrelease target unrelease: clean - -rm -rf $(RELEASE) + rm -rf $(RELEASE) @echo "Unrelease OK" # Uninstall target @@ -385,41 +385,41 @@ uninstall: $(UNINSTALLATIONS) uninstall_ladspa: @echo "Uninstalling LADSPA" - -rm -f $(DESTDIR)$(LADSPA_PATH)/$(ARTIFACT_ID)-ladspa.so + rm -f $(DESTDIR)$(LADSPA_PATH)/$(ARTIFACT_ID)-ladspa.so uninstall_lv2: @echo "Uninstalling LV2" - -rm -rf $(DESTDIR)$(LV2_PATH)/$(ARTIFACT_ID).lv2 + rm -rf $(DESTDIR)$(LV2_PATH)/$(ARTIFACT_ID).lv2 uninstall_vst: @echo "Uninstalling VST" - -rm -f $(DESTDIR)$(VST_PATH)/$(ARTIFACT_ID)-vst-*.so - -rm -rf $(DESTDIR)$(VST_PATH)/$(ARTIFACT_ID)-lxvst-* - -rm -rf $(DESTDIR)$(VST_PATH)/$(VST_ID) + rm -f $(DESTDIR)$(VST_PATH)/$(ARTIFACT_ID)-vst-*.so + rm -rf $(DESTDIR)$(VST_PATH)/$(ARTIFACT_ID)-lxvst-* + rm -rf $(DESTDIR)$(VST_PATH)/$(VST_ID) uninstall_jack: @echo "Uninstalling JACK" - -rm -f $(DESTDIR)$(BIN_PATH)/$(ARTIFACT_ID)-* - -rm -f $(DESTDIR)$(LIB_PATH)/$(ARTIFACT_ID)-jack-core-*.so - -rm -f $(DESTDIR)$(LIB_PATH)/$(R3D_ARTIFACT_ID) - -rm -rf $(DESTDIR)$(LIB_PATH)/$(ARTIFACT_ID) + rm -f $(DESTDIR)$(BIN_PATH)/$(ARTIFACT_ID)-* + rm -f $(DESTDIR)$(LIB_PATH)/$(ARTIFACT_ID)-jack-core-*.so + rm -f $(DESTDIR)$(LIB_PATH)/$(R3D_ARTIFACT_ID) + rm -rf $(DESTDIR)$(LIB_PATH)/$(ARTIFACT_ID) uninstall_xdg: @echo "Uninstalling desktop icons" - -rm -f $(DESTDIR)$(SHARE_PATH)/applications/in.lsp_plug.*.desktop - -rm -f $(DESTDIR)$(SHARE_PATH)/desktop-directories/lsp-plugins.directory - -rm -f $(DESTDIR)$(ETC_PATH)/xdg/menus/applications-merged/lsp-plugins.menu - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/16x16/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/22x22/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/24x24/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/32x32/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/48x48/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/64x64/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/128x128/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/256x256/apps/$(ARTIFACT_ID).* - -rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/scalable/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/applications/in.lsp_plug.*.desktop + rm -f $(DESTDIR)$(SHARE_PATH)/desktop-directories/lsp-plugins.directory + rm -f $(DESTDIR)$(ETC_PATH)/xdg/menus/applications-merged/lsp-plugins.menu + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/16x16/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/22x22/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/24x24/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/32x32/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/48x48/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/64x64/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/128x128/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/256x256/apps/$(ARTIFACT_ID).* + rm -f $(DESTDIR)$(SHARE_PATH)/icons/hicolor/scalable/apps/$(ARTIFACT_ID).* uninstall_doc: @echo "Uninstalling DOC" - -rm -rf $(DESTDIR)$(DOC_PATH)/$(ARTIFACT_ID) + rm -rf $(DESTDIR)$(DOC_PATH)/$(ARTIFACT_ID) diff --git a/src/Makefile b/src/Makefile index 01ac70b74..01b9d92de 100644 --- a/src/Makefile +++ b/src/Makefile @@ -120,7 +120,7 @@ $(OBJ_RES_CORE): $(OBJ_CORE) $(UTL_RESGEN) @echo "Generating builtin resources" mkdir -p $(OBJDIR)/res $(UTL_RESGEN) $(OBJDIR)/res/builtin_resource.cpp $(RESOURCE_PATHS) - -rm gmon.out >/dev/null 2>&1 + rm -f gmon.out >/dev/null 2>&1 $(CXX) -o $(OBJ_RES_CORE) -c $(OBJDIR)/res/builtin_resource.cpp -fPIC $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE) # Target dependencies @@ -139,12 +139,12 @@ vst_stub: $(UTL_VSTMAKE) @echo "Building VST stub" mkdir -p $(OBJDIR)/vst $(UTL_VSTMAKE) $(OBJDIR)/vst - -rm gmon.out >/dev/null 2>&1 + rm -f gmon.out >/dev/null 2>&1 $(MAKE) $(MAKE_OPTS) -C $(OBJDIR)/vst all OBJDIR=$(OBJDIR)/vst jack_stub: $(UTL_JACKMAKE) @echo "Building JACK stub" mkdir -p $(OBJDIR)/jack $(UTL_JACKMAKE) $(OBJDIR)/jack - -rm gmon.out >/dev/null 2>&1 + rm -f gmon.out >/dev/null 2>&1 $(MAKE) $(MAKE_OPTS) -C $(OBJDIR)/jack all OBJDIR=$(OBJDIR)/jack From b20c945ce45526c420a29ec86570ad5f68c98ac2 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Mon, 2 Aug 2021 23:27:46 +0300 Subject: [PATCH 8/8] Split $(FLAG_CTUNE) into $(FLAG_CXXSTANDARD) & $(FLAGS_CTUNE) --- Makefile | 7 +++++-- scripts/make/tools.mk | 12 +++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 05da09650..70cb6a4f8 100644 --- a/Makefile +++ b/Makefile @@ -161,8 +161,11 @@ debugfile: export CFLAGS += -DLSP_TRACEFILE debugfile: export CXXFLAGS += -DLSP_TRACEFILE debugfile: debug -gdb: export CFLAGS += -Og -g3 -DLSP_TRACE -gdb: export CXXFLAGS += -Og -g3 -DLSP_TRACE +gdb: export CFLAGS = -std=c++98 -Og -fno-inline -g3 -DLSP_TRACE +gdb: export CXXFLAGS = -std=c++98 -Og -fno-inline -g3 -DLSP_TRACE +gdb: export HOST_CXXFLAGS = -std=c++98 -Og -fno-inline -g3 -DLSP_TRACE +gdb: export EXE_FLAGS = -g3 +gdb: export HOST_EXE_FLAGS = -g3 gdb: compile profile: export CFLAGS += -g -pg -DLSP_PROFILING -no-pie -fno-pie -fPIC diff --git a/scripts/make/tools.mk b/scripts/make/tools.mk index 0cc859f00..508f8294a 100644 --- a/scripts/make/tools.mk +++ b/scripts/make/tools.mk @@ -11,8 +11,8 @@ TOOL_HOST_PKG_CONFIG = PKG_CONFIG_SYSROOT_DIR=/ pkg-config # Setup preferred flags FLAG_RELRO = -Wl,-z,relro,-z,now FLAG_VERSION = -DLSP_MAIN_VERSION=\"$(LSP_VERSION)\" -DLSP_INSTALL_PREFIX=\"$(PREFIX)\" -FLAG_CTUNE = -std=c++98 \ - -fno-exceptions -fno-rtti \ +FLAG_CXXSTANDARD = -std=c++98 +FLAGS_CTUNE = -fno-exceptions -fno-rtti \ -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables \ -fvisibility=hidden \ -pipe -Wall @@ -34,9 +34,11 @@ HOST_LD ?= $(TOOL_HOST_LD) PKG_CONFIG ?= $(TOOL_PKG_CONFIG) HOST_PKG_CONFIG ?= $(TOOL_HOST_PKG_CONFIG) -CFLAGS += $(CC_ARCH) $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) -CXXFLAGS += $(CC_ARCH) $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) -HOST_CXXFLAGS += $(FLAG_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) +CFLAGS += $(CC_ARCH) $(FLAG_CXXSTANDARD) $(FLAGS_CTUNE) \ + $(CC_FLAGS) $(FLAG_VERSION) +CXXFLAGS += $(CC_ARCH) $(FLAG_CXXSTANDARD) $(FLAGS_CTUNE) \ + $(CC_FLAGS) $(FLAG_VERSION) +HOST_CXXFLAGS += $(FLAG_CXXSTANDARD) $(FLAGS_CTUNE) $(CC_FLAGS) $(FLAG_VERSION) SO_FLAGS += $(CC_ARCH) $(FLAG_RELRO) -Wl,--gc-sections -shared -Llibrary -lc -fPIC MERGE_FLAGS += $(LD_ARCH) -r EXE_TEST_FLAGS += $(LDFLAGS) $(CC_ARCH)