Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
| @@ -18,12 +18,22 @@ SYSDEPS ?= false | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Check for system-wide dependencies | # Check for system-wide dependencies | ||||
| # HAVE_LIBARCHIVE = $(shell pkg-config --exists libarchive && echo true) | |||||
| # | |||||
| # libjansson.a | |||||
| # libsamplerate.a | |||||
| # libspeexdsp.a | |||||
| # libzstd.a | |||||
| ifeq ($(SYSDEPS),true) | |||||
| ifneq ($(shell pkg-config --exists jansson && echo true),true) | |||||
| $(error jansson dpendency not installed/available) | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists libarchive && echo true),true) | |||||
| $(error libarchive dpendency not installed/available) | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists samplerate && echo true),true) | |||||
| $(error samplerate dpendency not installed/available) | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists speexdsp && echo true),true) | |||||
| $(error speexdsp dpendency not installed/available) | |||||
| endif | |||||
| endif | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| @@ -31,7 +41,9 @@ cardinal: deps dgl plugins | |||||
| $(MAKE) all -C src | $(MAKE) all -C src | ||||
| deps: | deps: | ||||
| ifneq ($(SYSDEPS),true) | |||||
| $(MAKE) all -C deps | $(MAKE) all -C deps | ||||
| endif | |||||
| dgl: | dgl: | ||||
| $(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl | $(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl | ||||
| @@ -4,7 +4,12 @@ | |||||
| # Created by falkTX | # Created by falkTX | ||||
| # | # | ||||
| DEP_PATH = $(abspath ../src/Rack/dep) | |||||
| # -------------------------------------------------------------- | |||||
| # Build config | |||||
| PREFIX ?= /usr/local | |||||
| DESTDIR ?= | |||||
| SYSDEPS ?= false | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Import base definitions | # Import base definitions | ||||
| @@ -259,9 +264,6 @@ BASE_FLAGS += -I../include/neon-compat | |||||
| BASE_FLAGS += -I../src | BASE_FLAGS += -I../src | ||||
| BASE_FLAGS += -I../src/Rack/include | BASE_FLAGS += -I../src/Rack/include | ||||
| BASE_FLAGS += -I../src/Rack/include/dsp | BASE_FLAGS += -I../src/Rack/include/dsp | ||||
| BASE_FLAGS += -I../src/Rack/dep/include | |||||
| # BASE_FLAGS += -I../src/Rack/dep/filesystem/include | |||||
| # BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src | |||||
| BASE_FLAGS += -I../src/Rack/dep/glfw/include | BASE_FLAGS += -I../src/Rack/dep/glfw/include | ||||
| BASE_FLAGS += -I../src/Rack/dep/nanosvg/src | BASE_FLAGS += -I../src/Rack/dep/nanosvg/src | ||||
| BASE_FLAGS += -I../src/Rack/dep/osdialog | BASE_FLAGS += -I../src/Rack/dep/osdialog | ||||
| @@ -269,6 +271,12 @@ BASE_FLAGS += -I../src/Rack/dep/oui-blendish | |||||
| BASE_FLAGS += -I../src/Rack/dep/pffft | BASE_FLAGS += -I../src/Rack/dep/pffft | ||||
| BASE_FLAGS += -pthread | BASE_FLAGS += -pthread | ||||
| # ifneq ($(SYSDEPS),true) | |||||
| # BASE_FLAGS += -I../src/Rack/dep/include | |||||
| # # BASE_FLAGS += -I../src/Rack/dep/filesystem/include | |||||
| # # BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src | |||||
| # endif | |||||
| ifeq ($(WINDOWS),true) | ifeq ($(WINDOWS),true) | ||||
| BASE_FLAGS += -D_USE_MATH_DEFINES | BASE_FLAGS += -D_USE_MATH_DEFINES | ||||
| BASE_FLAGS += -DWIN32_LEAN_AND_MEAN | BASE_FLAGS += -DWIN32_LEAN_AND_MEAN | ||||
| @@ -85,11 +85,13 @@ struct Initializer { | |||||
| if (asset::systemDir.empty()) | if (asset::systemDir.empty()) | ||||
| { | { | ||||
| #ifdef CARDINAL_PLUGIN_SOURCE_DIR | |||||
| // Make system dir point to source code location as fallback | // Make system dir point to source code location as fallback | ||||
| asset::systemDir = CARDINAL_PLUGIN_SOURCE_DIR DISTRHO_OS_SEP_STR "Rack"; | asset::systemDir = CARDINAL_PLUGIN_SOURCE_DIR DISTRHO_OS_SEP_STR "Rack"; | ||||
| // And if that fails, use install target prefix | // And if that fails, use install target prefix | ||||
| if (! system::isDirectory(system::join(asset::systemDir, "res"))) | if (! system::isDirectory(system::join(asset::systemDir, "res"))) | ||||
| #endif | |||||
| { | { | ||||
| asset::bundlePath = CARDINAL_PLUGIN_PREFIX "/share/Cardinal/PluginManifests"; | asset::bundlePath = CARDINAL_PLUGIN_PREFIX "/share/Cardinal/PluginManifests"; | ||||
| asset::systemDir = CARDINAL_PLUGIN_PREFIX "/share/Cardinal"; | asset::systemDir = CARDINAL_PLUGIN_PREFIX "/share/Cardinal"; | ||||
| @@ -60,6 +60,7 @@ FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cp | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Extra libraries to link against | # Extra libraries to link against | ||||
| ifneq ($(SYSDEPS),true) | |||||
| EXTRA_LIBS = ../plugins/plugins.a | EXTRA_LIBS = ../plugins/plugins.a | ||||
| EXTRA_LIBS += Rack/dep/lib/libjansson.a | EXTRA_LIBS += Rack/dep/lib/libjansson.a | ||||
| EXTRA_LIBS += Rack/dep/lib/libsamplerate.a | EXTRA_LIBS += Rack/dep/lib/libsamplerate.a | ||||
| @@ -72,6 +73,7 @@ endif | |||||
| EXTRA_LIBS += Rack/dep/lib/libzstd.a | EXTRA_LIBS += Rack/dep/lib/libzstd.a | ||||
| EXTRA_DEPENDENCIES = $(EXTRA_LIBS) | EXTRA_DEPENDENCIES = $(EXTRA_LIBS) | ||||
| endif | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Do some magic | # Do some magic | ||||
| @@ -98,7 +100,11 @@ BASE_FLAGS += -I../dpf/dgl/src/nanovg | |||||
| BASE_FLAGS += -I../include | BASE_FLAGS += -I../include | ||||
| BASE_FLAGS += -I../include/neon-compat | BASE_FLAGS += -I../include/neon-compat | ||||
| BASE_FLAGS += -IRack/include | BASE_FLAGS += -IRack/include | ||||
| ifeq ($(SYSDEPS),true) | |||||
| BASE_FLAGS += $(shell pkg-config --cflags jansson libarchive samplerate speexdsp) | |||||
| else | |||||
| BASE_FLAGS += -IRack/dep/include | BASE_FLAGS += -IRack/dep/include | ||||
| endif | |||||
| BASE_FLAGS += -IRack/dep/filesystem/include | BASE_FLAGS += -IRack/dep/filesystem/include | ||||
| BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src | BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src | ||||
| BASE_FLAGS += -IRack/dep/glfw/include | BASE_FLAGS += -IRack/dep/glfw/include | ||||
| @@ -144,12 +150,16 @@ LINK_FLAGS += -ldbghelp -lshlwapi | |||||
| EXTRA_LIBS += -lws2_32 -lwinmm | EXTRA_LIBS += -lws2_32 -lwinmm | ||||
| endif | endif | ||||
| ifeq ($(SYSDEPS),true) | |||||
| LINK_FLAGS += $(shell pkg-config --libs jansson libarchive samplerate speexdsp) | |||||
| endif | |||||
| ifeq ($(WITH_LTO),true) | ifeq ($(WITH_LTO),true) | ||||
| LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch | LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch | ||||
| endif | endif | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # temporary macro just to get the ball rolling | |||||
| # fallback path to resource files | |||||
| ifeq ($(EXE_WRAPPER),wine) | ifeq ($(EXE_WRAPPER),wine) | ||||
| SOURCE_DIR = Z:$(subst /,\\,$(CURDIR)) | SOURCE_DIR = Z:$(subst /,\\,$(CURDIR)) | ||||
| @@ -157,7 +167,10 @@ else | |||||
| SOURCE_DIR = $(CURDIR) | SOURCE_DIR = $(CURDIR) | ||||
| endif | endif | ||||
| ifneq ($(SYSDEPS),true) | |||||
| BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"' | BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"' | ||||
| endif | |||||
| BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' | BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||