Makefile update, and support of VCV Rack SDK
This commit is contained in:
parent
e05e651d02
commit
5b28feac03
3 changed files with 373 additions and 214 deletions
267
common.mk
Normal file
267
common.mk
Normal file
|
|
@ -0,0 +1,267 @@
|
||||||
|
# Common definitions for builds based on GNU Make
|
||||||
|
|
||||||
|
ifndef SFIZZ_DIR
|
||||||
|
$(error sfizz: The source directory must be set before including)
|
||||||
|
endif
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
SFIZZ_MACHINE := $(shell $(CC) -dumpmachine)
|
||||||
|
SFIZZ_PROCESSOR := $(firstword $(subst -, ,$(SFIZZ_MACHINE)))
|
||||||
|
|
||||||
|
ifneq (,$(filter i%86,$(SFIZZ_PROCESSOR)))
|
||||||
|
SFIZZ_CPU_I386 := 1
|
||||||
|
SFIZZ_CPU_I386_OR_X86_64 := 1
|
||||||
|
endif
|
||||||
|
ifneq (,$(filter x86_64,$(SFIZZ_PROCESSOR)))
|
||||||
|
SFIZZ_CPU_X86_64 := 1
|
||||||
|
SFIZZ_CPU_I386_OR_X86_64 := 1
|
||||||
|
endif
|
||||||
|
ifneq (,$(filter arm%,$(SFIZZ_PROCESSOR)))
|
||||||
|
SFIZZ_CPU_ARM := 1
|
||||||
|
SFIZZ_CPU_ARM_OR_AARCH64 := 1
|
||||||
|
endif
|
||||||
|
ifneq (,$(filter aarch64%,$(SFIZZ_PROCESSOR)))
|
||||||
|
SFIZZ_CPU_AARCH64 := 1
|
||||||
|
SFIZZ_CPU_ARM_OR_AARCH64 := 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS = -I$(SFIZZ_DIR)/src
|
||||||
|
SFIZZ_CXX_FLAGS = $(SFIZZ_C_FLAGS)
|
||||||
|
|
||||||
|
SFIZZ_SOURCES = \
|
||||||
|
src/sfizz/ADSREnvelope.cpp \
|
||||||
|
src/sfizz/AudioReader.cpp \
|
||||||
|
src/sfizz/Curve.cpp \
|
||||||
|
src/sfizz/effects/Apan.cpp \
|
||||||
|
src/sfizz/Effects.cpp \
|
||||||
|
src/sfizz/modulations/ModId.cpp \
|
||||||
|
src/sfizz/modulations/ModKey.cpp \
|
||||||
|
src/sfizz/modulations/ModKeyHash.cpp \
|
||||||
|
src/sfizz/modulations/ModMatrix.cpp \
|
||||||
|
src/sfizz/modulations/sources/ADSREnvelope.cpp \
|
||||||
|
src/sfizz/modulations/sources/Controller.cpp \
|
||||||
|
src/sfizz/modulations/sources/FlexEnvelope.cpp \
|
||||||
|
src/sfizz/modulations/sources/LFO.cpp \
|
||||||
|
src/sfizz/effects/Compressor.cpp \
|
||||||
|
src/sfizz/effects/Disto.cpp \
|
||||||
|
src/sfizz/effects/Eq.cpp \
|
||||||
|
src/sfizz/effects/Filter.cpp \
|
||||||
|
src/sfizz/effects/Fverb.cpp \
|
||||||
|
src/sfizz/effects/Gain.cpp \
|
||||||
|
src/sfizz/effects/Gate.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantArrayAVX.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantArray.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantArraySSE.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantStringAVX.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantString.cpp \
|
||||||
|
src/sfizz/effects/impl/ResonantStringSSE.cpp \
|
||||||
|
src/sfizz/effects/Limiter.cpp \
|
||||||
|
src/sfizz/effects/Lofi.cpp \
|
||||||
|
src/sfizz/effects/Nothing.cpp \
|
||||||
|
src/sfizz/effects/Rectify.cpp \
|
||||||
|
src/sfizz/effects/Strings.cpp \
|
||||||
|
src/sfizz/effects/Width.cpp \
|
||||||
|
src/sfizz/EQPool.cpp \
|
||||||
|
src/sfizz/FileId.cpp \
|
||||||
|
src/sfizz/FileMetadata.cpp \
|
||||||
|
src/sfizz/FilePool.cpp \
|
||||||
|
src/sfizz/FilterPool.cpp \
|
||||||
|
src/sfizz/FlexEGDescription.cpp \
|
||||||
|
src/sfizz/FlexEnvelope.cpp \
|
||||||
|
src/sfizz/FloatEnvelopes.cpp \
|
||||||
|
src/sfizz/Logger.cpp \
|
||||||
|
src/sfizz/LFO.cpp \
|
||||||
|
src/sfizz/LFODescription.cpp \
|
||||||
|
src/sfizz/MidiState.cpp \
|
||||||
|
src/sfizz/OpcodeCleanup.cpp \
|
||||||
|
src/sfizz/Opcode.cpp \
|
||||||
|
src/sfizz/Oversampler.cpp \
|
||||||
|
src/sfizz/Panning.cpp \
|
||||||
|
src/sfizz/Parser.cpp \
|
||||||
|
src/sfizz/parser/Parser.cpp \
|
||||||
|
src/sfizz/parser/ParserPrivate.cpp \
|
||||||
|
src/sfizz/PolyphonyGroup.cpp \
|
||||||
|
src/sfizz/PowerFollower.cpp \
|
||||||
|
src/sfizz/Region.cpp \
|
||||||
|
src/sfizz/RegionSet.cpp \
|
||||||
|
src/sfizz/RTSemaphore.cpp \
|
||||||
|
src/sfizz/ScopedFTZ.cpp \
|
||||||
|
src/sfizz/sfizz.cpp \
|
||||||
|
src/sfizz/sfizz_wrapper.cpp \
|
||||||
|
src/sfizz/SfzFilter.cpp \
|
||||||
|
src/sfizz/SfzHelpers.cpp \
|
||||||
|
src/sfizz/SIMDHelpers.cpp \
|
||||||
|
src/sfizz/simd/HelpersSSE.cpp \
|
||||||
|
src/sfizz/simd/HelpersAVX.cpp \
|
||||||
|
src/sfizz/Smoothers.cpp \
|
||||||
|
src/sfizz/Synth.cpp \
|
||||||
|
src/sfizz/Tuning.cpp \
|
||||||
|
src/sfizz/utility/SpinMutex.cpp \
|
||||||
|
src/sfizz/Voice.cpp \
|
||||||
|
src/sfizz/VoiceStealing.cpp \
|
||||||
|
src/sfizz/Wavetables.cpp
|
||||||
|
|
||||||
|
### Other internal
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/sfizz
|
||||||
|
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external
|
||||||
|
|
||||||
|
# Pkg-config dependency
|
||||||
|
|
||||||
|
SFIZZ_PKG_CONFIG ?= pkg-config
|
||||||
|
|
||||||
|
# Sndfile dependency
|
||||||
|
|
||||||
|
SFIZZ_SNDFILE_C_FLAGS ?= $(shell $(SFIZZ_PKG_CONFIG) --cflags sndfile)
|
||||||
|
SFIZZ_SNDFILE_CXX_FLAGS ?= $(SFIZZ_SNDFILE_C_FLAGS)
|
||||||
|
SFIZZ_SNDFILE_LINK_FLAGS ?= $(shell $(SFIZZ_PKG_CONFIG) --libs sndfile)
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += $(SFIZZ_SNDFILE_C_FLAGS)
|
||||||
|
SFIZZ_CXX_FLAGS += $(SFIZZ_SNDFILE_CXX_FLAGS)
|
||||||
|
SFIZZ_LINK_FLAGS += $(SFIZZ_SNDFILE_LINK_FLAGS)
|
||||||
|
|
||||||
|
### Abseil dependency
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/external/abseil-cpp
|
||||||
|
# absl::base
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/cycleclock.cc \
|
||||||
|
external/abseil-cpp/absl/base/internal/spinlock.cc \
|
||||||
|
external/abseil-cpp/absl/base/internal/sysinfo.cc \
|
||||||
|
external/abseil-cpp/absl/base/internal/thread_identity.cc \
|
||||||
|
external/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
|
||||||
|
# absl::exponential_biased
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/exponential_biased.cc
|
||||||
|
# absl::dynamic_annotations
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/dynamic_annotations.cc
|
||||||
|
# absl::malloc_internal
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/low_level_alloc.cc
|
||||||
|
# absl::raw_logging_internal
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/raw_logging.cc
|
||||||
|
# absl::spinlock_wait
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/spinlock_wait.cc
|
||||||
|
# absl::throw_delegate
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/base/internal/throw_delegate.cc
|
||||||
|
# absl::strings
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/strings/ascii.cc \
|
||||||
|
external/abseil-cpp/absl/strings/charconv.cc \
|
||||||
|
external/abseil-cpp/absl/strings/escaping.cc \
|
||||||
|
external/abseil-cpp/absl/strings/internal/charconv_bigint.cc \
|
||||||
|
external/abseil-cpp/absl/strings/internal/charconv_parse.cc \
|
||||||
|
external/abseil-cpp/absl/strings/internal/memutil.cc \
|
||||||
|
external/abseil-cpp/absl/strings/match.cc \
|
||||||
|
external/abseil-cpp/absl/strings/numbers.cc \
|
||||||
|
external/abseil-cpp/absl/strings/str_cat.cc \
|
||||||
|
external/abseil-cpp/absl/strings/str_replace.cc \
|
||||||
|
external/abseil-cpp/absl/strings/str_split.cc \
|
||||||
|
external/abseil-cpp/absl/strings/string_view.cc \
|
||||||
|
external/abseil-cpp/absl/strings/substitute.cc
|
||||||
|
# absl::hashtablez_sampler
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/container/internal/hashtablez_sampler.cc \
|
||||||
|
external/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc
|
||||||
|
# absl::raw_hash_set
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/container/internal/raw_hash_set.cc
|
||||||
|
# absl::synchronization
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/synchronization/barrier.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/blocking_counter.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/internal/waiter.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/notification.cc \
|
||||||
|
external/abseil-cpp/absl/synchronization/mutex.cc
|
||||||
|
# absl::graphcycles_internal
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/synchronization/internal/graphcycles.cc
|
||||||
|
# absl::time
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/time/civil_time.cc \
|
||||||
|
external/abseil-cpp/absl/time/clock.cc \
|
||||||
|
external/abseil-cpp/absl/time/duration.cc \
|
||||||
|
external/abseil-cpp/absl/time/format.cc \
|
||||||
|
external/abseil-cpp/absl/time/time.cc
|
||||||
|
# absl::time_zone
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc \
|
||||||
|
external/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc
|
||||||
|
# absl::stacktrace
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/debugging/stacktrace.cc
|
||||||
|
# absl::symbolize
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/debugging/symbolize.cc
|
||||||
|
# absl::demangle_internal
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/debugging/internal/demangle.cc
|
||||||
|
# absl::debugging_internal
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/debugging/internal/address_is_readable.cc \
|
||||||
|
external/abseil-cpp/absl/debugging/internal/elf_mem_image.cc \
|
||||||
|
external/abseil-cpp/absl/debugging/internal/vdso_support.cc
|
||||||
|
# absl::hash
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/hash/internal/hash.cc
|
||||||
|
# absl::city
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/hash/internal/city.cc
|
||||||
|
# absl::int128
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
external/abseil-cpp/absl/numeric/int128.cc
|
||||||
|
|
||||||
|
### Spline dependency
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external/spline
|
||||||
|
SFIZZ_SOURCES += src/external/spline/spline/spline.cpp
|
||||||
|
|
||||||
|
### Cpuid dependency
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += \
|
||||||
|
-I$(SFIZZ_DIR)/src/external/cpuid/src \
|
||||||
|
-I$(SFIZZ_DIR)/src/external/cpuid/platform/src
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
src/external/cpuid/src/cpuid/cpuinfo.cpp \
|
||||||
|
src/external/cpuid/src/cpuid/version.cpp
|
||||||
|
|
||||||
|
### Pugixml dependency
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external/pugixml/src
|
||||||
|
SFIZZ_SOURCES += src/external/pugixml/src/pugixml.cpp
|
||||||
|
|
||||||
|
### Kissfft dependency
|
||||||
|
|
||||||
|
SFIZZ_C_FLAGS += \
|
||||||
|
-I$(SFIZZ_DIR)/src/external/kiss_fft \
|
||||||
|
-I$(SFIZZ_DIR)/src/external/kiss_fft/tools
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
src/external/kiss_fft/kiss_fft.c \
|
||||||
|
src/external/kiss_fft/tools/kiss_fftr.c
|
||||||
|
|
||||||
|
### Surge tuning library dependency
|
||||||
|
|
||||||
|
SFIZZ_CXX_FLAGS += \
|
||||||
|
-I$(SFIZZ_DIR)/src/external/tunings/include
|
||||||
|
SFIZZ_SOURCES += \
|
||||||
|
src/external/tunings/src/Tunings.cpp
|
||||||
|
|
||||||
|
### jsl dependency
|
||||||
|
SFIZZ_CXX_FLAGS += \
|
||||||
|
-I$(SFIZZ_DIR)/external/jsl/include
|
||||||
222
dpf.mk
222
dpf.mk
|
|
@ -37,15 +37,20 @@
|
||||||
|
|
||||||
SFIZZ_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
SFIZZ_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||||
SFIZZ_BUILD_DIR := $(SFIZZ_DIR)/dpf-build
|
SFIZZ_BUILD_DIR := $(SFIZZ_DIR)/dpf-build
|
||||||
|
|
||||||
SFIZZ_C_FLAGS = -I$(SFIZZ_DIR)/src
|
|
||||||
SFIZZ_CXX_FLAGS = $(SFIZZ_C_FLAGS)
|
|
||||||
SFIZZ_LINK_FLAGS = $(SFIZZ_BUILD_DIR)/libsfizz.a
|
SFIZZ_LINK_FLAGS = $(SFIZZ_BUILD_DIR)/libsfizz.a
|
||||||
|
SFIZZ_PKG_CONFIG ?= $(PKG_CONFIG)
|
||||||
|
include $(SFIZZ_DIR)/common.mk
|
||||||
|
|
||||||
ifeq ($(LINUX),true)
|
ifeq ($(LINUX),true)
|
||||||
|
SFIZZ_C_FLAGS += -pthread
|
||||||
|
SFIZZ_CXX_FLAGS += -pthread
|
||||||
SFIZZ_LINK_FLAGS += -pthread
|
SFIZZ_LINK_FLAGS += -pthread
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(LINUX),true)
|
||||||
|
SFIZZ_LINK_FLAGS += -lm
|
||||||
|
endif
|
||||||
|
|
||||||
sfizz-all: sfizz-lib
|
sfizz-all: sfizz-lib
|
||||||
|
|
||||||
sfizz-lib: $(SFIZZ_BUILD_DIR)/libsfizz.a
|
sfizz-lib: $(SFIZZ_BUILD_DIR)/libsfizz.a
|
||||||
|
|
@ -55,217 +60,6 @@ sfizz-clean:
|
||||||
|
|
||||||
.PHONY: sfizz-all sfizz-lib sfizz-clean
|
.PHONY: sfizz-all sfizz-lib sfizz-clean
|
||||||
|
|
||||||
SFIZZ_SOURCES = \
|
|
||||||
src/sfizz/ADSREnvelope.cpp \
|
|
||||||
src/sfizz/AudioReader.cpp \
|
|
||||||
src/sfizz/Curve.cpp \
|
|
||||||
src/sfizz/effects/Apan.cpp \
|
|
||||||
src/sfizz/Effects.cpp \
|
|
||||||
src/sfizz/modulations/ModId.cpp \
|
|
||||||
src/sfizz/modulations/ModKey.cpp \
|
|
||||||
src/sfizz/modulations/ModKeyHash.cpp \
|
|
||||||
src/sfizz/modulations/ModMatrix.cpp \
|
|
||||||
src/sfizz/modulations/sources/ADSREnvelope.cpp \
|
|
||||||
src/sfizz/modulations/sources/Controller.cpp \
|
|
||||||
src/sfizz/modulations/sources/FlexEGDescription.cpp \
|
|
||||||
src/sfizz/modulations/sources/FlexEnvelope.cpp \
|
|
||||||
src/sfizz/modulations/sources/LFO.cpp \
|
|
||||||
src/sfizz/effects/Compressor.cpp \
|
|
||||||
src/sfizz/effects/Disto.cpp \
|
|
||||||
src/sfizz/effects/Eq.cpp \
|
|
||||||
src/sfizz/effects/Filter.cpp \
|
|
||||||
src/sfizz/effects/Fverb.cpp \
|
|
||||||
src/sfizz/effects/Gain.cpp \
|
|
||||||
src/sfizz/effects/Gate.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantArrayAVX.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantArray.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantArraySSE.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantStringAVX.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantString.cpp \
|
|
||||||
src/sfizz/effects/impl/ResonantStringSSE.cpp \
|
|
||||||
src/sfizz/effects/Limiter.cpp \
|
|
||||||
src/sfizz/effects/Lofi.cpp \
|
|
||||||
src/sfizz/effects/Nothing.cpp \
|
|
||||||
src/sfizz/effects/Rectify.cpp \
|
|
||||||
src/sfizz/effects/Strings.cpp \
|
|
||||||
src/sfizz/effects/Width.cpp \
|
|
||||||
src/sfizz/EQPool.cpp \
|
|
||||||
src/sfizz/FileId.cpp \
|
|
||||||
src/sfizz/FileMetadata.cpp \
|
|
||||||
src/sfizz/FilePool.cpp \
|
|
||||||
src/sfizz/FilterPool.cpp \
|
|
||||||
src/sfizz/FlexEnvelope.cpp \
|
|
||||||
src/sfizz/FloatEnvelopes.cpp \
|
|
||||||
src/sfizz/Logger.cpp \
|
|
||||||
src/sfizz/LFO.cpp \
|
|
||||||
src/sfizz/LFODescription.cpp \
|
|
||||||
src/sfizz/MidiState.cpp \
|
|
||||||
src/sfizz/OpcodeCleanup.cpp \
|
|
||||||
src/sfizz/Opcode.cpp \
|
|
||||||
src/sfizz/Oversampler.cpp \
|
|
||||||
src/sfizz/Panning.cpp \
|
|
||||||
src/sfizz/Parser.cpp \
|
|
||||||
src/sfizz/parser/Parser.cpp \
|
|
||||||
src/sfizz/parser/ParserPrivate.cpp \
|
|
||||||
src/sfizz/PowerFollower.cpp \
|
|
||||||
src/sfizz/Region.cpp \
|
|
||||||
src/sfizz/RTSemaphore.cpp \
|
|
||||||
src/sfizz/ScopedFTZ.cpp \
|
|
||||||
src/sfizz/sfizz.cpp \
|
|
||||||
src/sfizz/sfizz_wrapper.cpp \
|
|
||||||
src/sfizz/SfzFilter.cpp \
|
|
||||||
src/sfizz/SfzHelpers.cpp \
|
|
||||||
src/sfizz/SIMDHelpers.cpp \
|
|
||||||
src/sfizz/simd/HelpersSSE.cpp \
|
|
||||||
src/sfizz/simd/HelpersAVX.cpp \
|
|
||||||
src/sfizz/Synth.cpp \
|
|
||||||
src/sfizz/Tuning.cpp \
|
|
||||||
src/sfizz/utility/SpinMutex.cpp \
|
|
||||||
src/sfizz/Voice.cpp \
|
|
||||||
src/sfizz/Wavetables.cpp
|
|
||||||
|
|
||||||
### Other internal
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/sfizz
|
|
||||||
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external
|
|
||||||
|
|
||||||
# Sndfile dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += $(shell $(PKG_CONFIG) --cflags sndfile)
|
|
||||||
SFIZZ_LINK_FLAGS += $(shell $(PKG_CONFIG) --libs sndfile)
|
|
||||||
|
|
||||||
### Abseil dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/external/abseil-cpp
|
|
||||||
# absl::base
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/cycleclock.cc \
|
|
||||||
external/abseil-cpp/absl/base/internal/spinlock.cc \
|
|
||||||
external/abseil-cpp/absl/base/internal/sysinfo.cc \
|
|
||||||
external/abseil-cpp/absl/base/internal/thread_identity.cc \
|
|
||||||
external/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
|
|
||||||
# absl::exponential_biased
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/exponential_biased.cc
|
|
||||||
# absl::dynamic_annotations
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/dynamic_annotations.cc
|
|
||||||
# absl::malloc_internal
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/low_level_alloc.cc
|
|
||||||
# absl::raw_logging_internal
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/raw_logging.cc
|
|
||||||
# absl::spinlock_wait
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/spinlock_wait.cc
|
|
||||||
# absl::throw_delegate
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/base/internal/throw_delegate.cc
|
|
||||||
# absl::strings
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/strings/ascii.cc \
|
|
||||||
external/abseil-cpp/absl/strings/charconv.cc \
|
|
||||||
external/abseil-cpp/absl/strings/escaping.cc \
|
|
||||||
external/abseil-cpp/absl/strings/internal/charconv_bigint.cc \
|
|
||||||
external/abseil-cpp/absl/strings/internal/charconv_parse.cc \
|
|
||||||
external/abseil-cpp/absl/strings/internal/memutil.cc \
|
|
||||||
external/abseil-cpp/absl/strings/match.cc \
|
|
||||||
external/abseil-cpp/absl/strings/numbers.cc \
|
|
||||||
external/abseil-cpp/absl/strings/str_cat.cc \
|
|
||||||
external/abseil-cpp/absl/strings/str_replace.cc \
|
|
||||||
external/abseil-cpp/absl/strings/str_split.cc \
|
|
||||||
external/abseil-cpp/absl/strings/string_view.cc \
|
|
||||||
external/abseil-cpp/absl/strings/substitute.cc
|
|
||||||
# absl::hashtablez_sampler
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/container/internal/hashtablez_sampler.cc \
|
|
||||||
external/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc
|
|
||||||
# absl::raw_hash_set
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/container/internal/raw_hash_set.cc
|
|
||||||
# absl::synchronization
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/synchronization/barrier.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/blocking_counter.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/internal/waiter.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/notification.cc \
|
|
||||||
external/abseil-cpp/absl/synchronization/mutex.cc
|
|
||||||
# absl::graphcycles_internal
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/synchronization/internal/graphcycles.cc
|
|
||||||
# absl::time
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/time/civil_time.cc \
|
|
||||||
external/abseil-cpp/absl/time/clock.cc \
|
|
||||||
external/abseil-cpp/absl/time/duration.cc \
|
|
||||||
external/abseil-cpp/absl/time/format.cc \
|
|
||||||
external/abseil-cpp/absl/time/time.cc
|
|
||||||
# absl::time_zone
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc \
|
|
||||||
external/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc
|
|
||||||
# absl::stacktrace
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/debugging/stacktrace.cc
|
|
||||||
# absl::symbolize
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/debugging/symbolize.cc
|
|
||||||
# absl::demangle_internal
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/debugging/internal/demangle.cc
|
|
||||||
# absl::debugging_internal
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/debugging/internal/address_is_readable.cc \
|
|
||||||
external/abseil-cpp/absl/debugging/internal/elf_mem_image.cc \
|
|
||||||
external/abseil-cpp/absl/debugging/internal/vdso_support.cc
|
|
||||||
# absl::hash
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/hash/internal/hash.cc
|
|
||||||
# absl::city
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/hash/internal/city.cc
|
|
||||||
# absl::int128
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
external/abseil-cpp/absl/numeric/int128.cc
|
|
||||||
|
|
||||||
### Spline dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external/spline
|
|
||||||
SFIZZ_SOURCES += src/external/spline/spline/spline.cpp
|
|
||||||
|
|
||||||
### Cpuid dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += \
|
|
||||||
-I$(SFIZZ_DIR)/src/external/cpuid/src \
|
|
||||||
-I$(SFIZZ_DIR)/src/external/cpuid/platform/src
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
src/external/cpuid/src/cpuid/cpuinfo.cpp \
|
|
||||||
src/external/cpuid/src/cpuid/version.cpp
|
|
||||||
|
|
||||||
### Pugixml dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external/pugixml/src
|
|
||||||
SFIZZ_SOURCES += src/external/pugixml/src/pugixml.cpp
|
|
||||||
|
|
||||||
### Kissfft dependency
|
|
||||||
|
|
||||||
SFIZZ_C_FLAGS += \
|
|
||||||
-I$(SFIZZ_DIR)/src/external/kiss_fft \
|
|
||||||
-I$(SFIZZ_DIR)/src/external/kiss_fft/tools
|
|
||||||
SFIZZ_SOURCES += \
|
|
||||||
src/external/kiss_fft/kiss_fft.c \
|
|
||||||
src/external/kiss_fft/tools/kiss_fftr.c
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
SFIZZ_OBJECTS = $(SFIZZ_SOURCES:%=$(SFIZZ_BUILD_DIR)/%.o)
|
SFIZZ_OBJECTS = $(SFIZZ_SOURCES:%=$(SFIZZ_BUILD_DIR)/%.o)
|
||||||
|
|
|
||||||
98
rack.mk
Normal file
98
rack.mk
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
|
||||||
|
#
|
||||||
|
# A build file to help using sfizz with the VCV Rack SDK
|
||||||
|
# ------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Usage notes:
|
||||||
|
#
|
||||||
|
# 1. In the `dep` subfolder of your plugin folder,
|
||||||
|
#
|
||||||
|
# Check out the sfizz source code as a submodule
|
||||||
|
#
|
||||||
|
# git submodule add https://github.com/sfztools/sfizz.git
|
||||||
|
#
|
||||||
|
# 2. At the root of your plugin folder,
|
||||||
|
#
|
||||||
|
# Add the following lines, at the bottom of `Makefile`:
|
||||||
|
#
|
||||||
|
# # Include the sfizz library
|
||||||
|
# include dep/sfizz/rack.mk
|
||||||
|
# CFLAGS += $(SFIZZ_C_FLAGS)
|
||||||
|
# CXXFLAGS += $(SFIZZ_CXX_FLAGS)
|
||||||
|
# LDFLAGS += $(SFIZZ_LINK_FLAGS)
|
||||||
|
# $(TARGET): $(SFIZZ_TARGET)
|
||||||
|
#
|
||||||
|
# 3. In the file `Makefile`,
|
||||||
|
#
|
||||||
|
# Above the line `include dep/sfizz/rack.mk`, some configuration variables
|
||||||
|
# may be customized.
|
||||||
|
#
|
||||||
|
# SFIZZ_RACK_PLUGIN_DIR = <the root directory of the Rack plugin>
|
||||||
|
# SFIZZ_PKG_CONFIG = <a custom pkg-config command>
|
||||||
|
# SFIZZ_SNDFILE_C_FLAGS = <compiler flags of sndfile for C>
|
||||||
|
# SFIZZ_SNDFILE_CXX_FLAGS = <compiler flags of sndfile for C++>
|
||||||
|
# SFIZZ_SNDFILE_LINK_FLAGS = <linker flags of sndfile>
|
||||||
|
|
||||||
|
ifndef RACK_DIR
|
||||||
|
$(error sfizz: We are not invoked from the Rack SDK)
|
||||||
|
endif
|
||||||
|
|
||||||
|
SFIZZ_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
SFIZZ_RACK_PLUGIN_DIR ?= .
|
||||||
|
ifneq ($(shell test -f $(SFIZZ_RACK_PLUGIN_DIR)/plugin.json && echo 1),1)
|
||||||
|
$(error sfizz: This is not a Rack plugin directory)
|
||||||
|
endif
|
||||||
|
SFIZZ_BUILD_DIR := $(SFIZZ_RACK_PLUGIN_DIR)/build/sfizz
|
||||||
|
include $(SFIZZ_DIR)/common.mk
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
ifdef ARCH_LIN
|
||||||
|
SFIZZ_C_FLAGS += -pthread
|
||||||
|
SFIZZ_CXX_FLAGS += -pthread
|
||||||
|
SFIZZ_LINK_FLAGS += -pthread
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef ARCH_LIN
|
||||||
|
SFIZZ_LINK_FLAGS += -lm
|
||||||
|
endif
|
||||||
|
|
||||||
|
SFIZZ_TARGET := $(SFIZZ_BUILD_DIR)/libsfizz.a
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
SFIZZ_OBJECTS = $(SFIZZ_SOURCES:%=$(SFIZZ_BUILD_DIR)/%.o)
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/libsfizz.a: $(SFIZZ_OBJECTS)
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(AR) crs $@ $^
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
ifeq ($(SFIZZ_CPU_I386_OR_X86_64),1)
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/%SSE.cpp.o: $(SFIZZ_DIR)/%SSE.cpp
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(CXX) $(CXXFLAGS) $(CXXFLAGS) -msse2 -c -o $@ $<
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/%AVX.cpp.o: $(SFIZZ_DIR)/%AVX.cpp
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(CXX) $(CXXFLAGS) $(CXXFLAGS) -mavx -c -o $@ $<
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/%.cpp.o: $(SFIZZ_DIR)/%.cpp
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(CXX) $(CXXFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/%.cc.o: $(SFIZZ_DIR)/%.cc
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(CXX) $(CXXFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(SFIZZ_BUILD_DIR)/%.c.o: $(SFIZZ_DIR)/%.c
|
||||||
|
-@mkdir -p $(dir $@)
|
||||||
|
$(CC) $(CFLAGS) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
-include $(SFIZZ_OBJECTS:%.o=%.d)
|
||||||
Loading…
Add table
Reference in a new issue