diff --git a/CHANGELOG b/CHANGELOG index 3a29667d..605f9399 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,10 @@ * RECENT CHANGES ******************************************************************************* +=== 1.0.27 === +* Updated build scripts. +* Updated module versions in dependencies. + === 1.0.26 === * Updated build scripts. * Updated module versions in dependencies. diff --git a/include/lsp-plug.in/dsp/version.h b/include/lsp-plug.in/dsp/version.h index b3c20dc2..a4b35537 100644 --- a/include/lsp-plug.in/dsp/version.h +++ b/include/lsp-plug.in/dsp/version.h @@ -25,7 +25,7 @@ // Define version of headers #define LSP_DSP_LIB_MAJOR 1 #define LSP_DSP_LIB_MINOR 0 -#define LSP_DSP_LIB_MICRO 26 +#define LSP_DSP_LIB_MICRO 27 #if defined(__WINDOWS__) || defined(__WIN32__) || defined(__WIN64__) || defined(_WIN64) || defined(_WIN32) || defined(__WINNT) || defined(__WINNT__) #define LSP_DSP_LIB_EXPORT_MODIFIER __declspec(dllexport) diff --git a/make/configure.mk b/make/configure.mk index d1437fd3..c3fc59f2 100644 --- a/make/configure.mk +++ b/make/configure.mk @@ -49,7 +49,7 @@ MERGED_DEPENDENCIES := \ $(TEST_DEPENDENCIES) UNIQ_MERGED_DEPENDENCIES := $(call uniq, $(MERGED_DEPENDENCIES)) DEPENDENCIES = $(UNIQ_MERGED_DEPENDENCIES) -FEATURES := $(sort $(call subtraction,$(SUB_FEATURES),$(DEFAULT_FEATURES) $(ADD_FEATURES))) +BUILD_FEATURES := $(sort $(call subtraction,$(SUB_FEATURES),$(if $(FEATURES),$(FEATURES),$(DEFAULT_FEATURES)) $(ADD_FEATURES))) # Determine versions ifeq ($(findstring -devel,$(ARTIFACT_VERSION)),-devel) @@ -270,7 +270,7 @@ $(CONFIG_VARS): prepare config: $(CONFIG_VARS) echo "Host architecture: $(HOST_ARCHITECTURE_FAMILY)/$(HOST_ARCHITECTURE) ($(HOST_ARCHITECTURE_CFLAGS))" echo "Architecture: $(ARCHITECTURE_FAMILY)/$(ARCHITECTURE) ($(ARCHITECTURE_CFLAGS))" - echo "Features: $(FEATURES)" + echo "Features: $(BUILD_FEATURES)" echo "Configured OK" help: | pathvars toolvars sysvars diff --git a/make/system.mk b/make/system.mk index dbb73119..b4d5386a 100644 --- a/make/system.mk +++ b/make/system.mk @@ -53,6 +53,17 @@ else endif BUILD_ARCH := $(if $(ARCHITECTURE),$(ARCHITECTURE),$(HOST_BUILD_ARCH)) +ifeq ($(PLATFORM),Linux) + OBJ_LDFLAGS_X86 = -m elf_i386 + OBJ_LDFLAGS_X86_64 = -m elf_x86_64 +else ifeq ($(PLATFORM),BSD) + OBJ_LDFLAGS_X86 = -m elf_i386 + OBJ_LDFLAGS_X86_64 = -m elf_x86_64 +else ifeq ($(PLATFORM),Windows) + OBJ_LDFLAGS_X86 = -m i386pe + OBJ_LDFLAGS_X86_64 = -m i386pep +endif + # Set actual architecture for HOST and TARGET builds # The current architecture can be obtained by: gcc -Q --help=target define detect_architecture = @@ -100,30 +111,37 @@ define detect_architecture = $(2)_NAME = x86_64 $(2)_FAMILY = x86_64 $(2)_CFLAGS := -march=x86-64 -m64 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86_64) else ifeq ($(patsubst %amd64%,amd64,$(1)),amd64) $(2)_NAME = x86_64 $(2)_FAMILY = x86_64 $(2)_CFLAGS := -march=x86-64 -m64 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86_64) else ifeq ($(patsubst %AMD64%,AMD64,$(1)),AMD64) $(2)_NAME = x86_64 $(2)_FAMILY = x86_64 $(2)_CFLAGS := -march=x86-64 -m64 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86_64) else ifeq ($(1),i86pc) $(2)_NAME = x86_64 $(2)_FAMILY = x86_64 $(2)_CFLAGS := -march=x86-64 -m64 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86_64) else ifeq ($(patsubst %i686%,i686,$(1)),i686) $(2)_NAME = i686 $(2)_FAMILY = ia32 $(2)_CFLAGS := -march=i686 -m32 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86) else ifeq ($(patsubst i%86,i586,$(1)),i586) $(2)_NAME = i586 $(2)_FAMILY = ia32 $(2)_CFLAGS := -march=i586 -m32 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86) else ifeq ($(1),x86) $(2)_NAME = i686 $(2)_FAMILY = ia32 $(2)_CFLAGS := -march=i686 -m32 + $(2)_LDFLAGS := $(OBJ_LDFLAGS_X86) else ifeq ($(1),riscv32) $(2)_NAME = riscv32 $(2)_FAMILY = riscv32 @@ -191,11 +209,11 @@ COMMON_VARS = \ ARCHITECTURE \ ARCHITECTURE_FAMILY \ ARCHITECTURE_CFLAGS \ + BUILD_FEATURES \ CROSS_COMPILE \ DEBUG \ EXECUTABLE_EXT \ EXPORT_SYMBOLS \ - FEATURES \ HOST_ARCHITECTURE \ HOST_ARCHITECTURE_FAMILY \ HOST_ARCHITECTURE_CFLAGS \ diff --git a/modules.mk b/modules.mk index df0804ae..e50ec5d8 100644 --- a/modules.mk +++ b/modules.mk @@ -19,13 +19,13 @@ # # Variables that describe dependencies -LSP_COMMON_LIB_VERSION := 1.0.38 +LSP_COMMON_LIB_VERSION := 1.0.39 LSP_COMMON_LIB_NAME := lsp-common-lib LSP_COMMON_LIB_TYPE := src LSP_COMMON_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_COMMON_LIB_NAME).git LSP_COMMON_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_COMMON_LIB_NAME).git -LSP_TEST_FW_VERSION := 1.0.27 +LSP_TEST_FW_VERSION := 1.0.28 LSP_TEST_FW_NAME := lsp-test-fw LSP_TEST_FW_TYPE := src LSP_TEST_FW_URL_RO := https://github.com/lsp-plugins/$(LSP_TEST_FW_NAME).git diff --git a/project.mk b/project.mk index d60d636b..9f222839 100644 --- a/project.mk +++ b/project.mk @@ -23,4 +23,4 @@ ARTIFACT_ID = LSP_DSP_LIB ARTIFACT_NAME = lsp-dsp-lib ARTIFACT_DESC = DSP library for digital signal processing ARTIFACT_HEADERS = lsp-plug.in -ARTIFACT_VERSION = 1.0.26 +ARTIFACT_VERSION = 1.0.27 diff --git a/src/Makefile b/src/Makefile index f5810ac8..cf1d7d74 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ # -# Copyright (C) 2020 Linux Studio Plugins Project -# (C) 2020 Vladimir Sadovnikov +# Copyright (C) 2024 Linux Studio Plugins Project +# (C) 2024 Vladimir Sadovnikov # # This file is part of lsp-dsp-lib # @@ -97,16 +97,14 @@ CXX_OBJ_ALL = \ $(CXX_OBJ_TEST) \ $(CXX_OBJ_NOTEST) -ifneq ($(BUILD_HOST),1) - ifeq ($(ARCHITECTURE_FAMILY),ia32) - CXX_OBJ_EXT += $(CXX_OBJ_X86) $(CXX_OBJ_SSE) $(CXX_OBJ_SSE2) $(CXX_OBJ_SSE3) $(CXX_OBJ_SSE4) $(CXX_OBJ_AVX) $(CXX_OBJ_AVX2) $(CXX_OBJ_AVX512) - else ifeq ($(ARCHITECTURE_FAMILY),x86_64) - CXX_OBJ_EXT += $(CXX_OBJ_X86) $(CXX_OBJ_SSE) $(CXX_OBJ_SSE2) $(CXX_OBJ_SSE3) $(CXX_OBJ_SSE4) $(CXX_OBJ_AVX) $(CXX_OBJ_AVX2) $(CXX_OBJ_AVX512) - else ifeq ($(ARCHITECTURE_FAMILY),arm32) - CXX_OBJ_EXT += $(CXX_OBJ_ARM) $(CXX_OBJ_NEON_D32) - else ifeq ($(ARCHITECTURE_FAMILY),aarch64) - CXX_OBJ_EXT += $(CXX_OBJ_AARCH64) $(CXX_OBJ_ASIMD) - endif +ifeq ($($(HOST)ARCHITECTURE_FAMILY),ia32) + CXX_OBJ_EXT += $(CXX_OBJ_X86) $(CXX_OBJ_SSE) $(CXX_OBJ_SSE2) $(CXX_OBJ_SSE3) $(CXX_OBJ_SSE4) $(CXX_OBJ_AVX) $(CXX_OBJ_AVX2) $(CXX_OBJ_AVX512) +else ifeq ($($(HOST)ARCHITECTURE_FAMILY),x86_64) + CXX_OBJ_EXT += $(CXX_OBJ_X86) $(CXX_OBJ_SSE) $(CXX_OBJ_SSE2) $(CXX_OBJ_SSE3) $(CXX_OBJ_SSE4) $(CXX_OBJ_AVX) $(CXX_OBJ_AVX2) $(CXX_OBJ_AVX512) +else ifeq ($($(HOST)ARCHITECTURE_FAMILY),arm32) + CXX_OBJ_EXT += $(CXX_OBJ_ARM) $(CXX_OBJ_NEON_D32) +else ifeq ($($(HOST)ARCHITECTURE_FAMILY),aarch64) + CXX_OBJ_EXT += $(CXX_OBJ_AARCH64) $(CXX_OBJ_ASIMD) endif ALL_HEADERS = $(call rwildcard, $(ARTIFACT_INC), *.h) @@ -151,7 +149,7 @@ compile: $(ARTIFACT_OBJ) $(CXX_OBJ_ALL): echo " $($(HOST)CXX) [$(ARTIFACT_NAME)] $(CXX_FILE)" mkdir -p $(dir $@) - $($(HOST)CXX) -o $(@) -c $(CXX_FILE) -fPIC $($(HOST)CXXFLAGS) $(ARTIFACT_MFLAGS) $($(HOST)EXT_FLAGS) $(INCLUDE) $(ARTIFACT_CFLAGS) -MMD -MP -MF $(DEP_FILE) -MT $(@) + $($(HOST)CXX) -o $(@) -c $(CXX_FILE) -fPIC $($(HOST)CXXFLAGS) $(ARTIFACT_MFLAGS) $(EXT_FLAGS) $(INCLUDE) $(ARTIFACT_CFLAGS) -MMD -MP -MF $(DEP_FILE) -MT $(@) # Producing large object files $(ARTIFACT_OBJ): $(CXX_OBJ)