|
- #!/usr/bin/make -f
- # Makefile for DISTRHO Plugins #
- # ---------------------------- #
- # Created by falkTX
- #
-
- # --------------------------------------------------------------
- # Build config
-
- PREFIX ?= /usr/local
- DESTDIR ?=
- SYSDEPS ?= false
-
- # --------------------------------------------------------------
- # Project name, used for binaries
-
- NAME = Cardinal
-
- # --------------------------------------------------------------
- # Files to build (DPF stuff)
-
- FILES_DSP = \
- CardinalPlugin.cpp
-
- FILES_UI = \
- CardinalUI.cpp \
- dep.cpp \
- Window.cpp
-
- # --------------------------------------------------------------
- # Import base definitions
-
- USE_NANOVG_FBO = true
- USE_RGBA = true
- include ../dpf/Makefile.base.mk
-
- # --------------------------------------------------------------
- # Files to build (VCV stuff)
-
- FILES_DSP += Rack/dep/pffft/pffft.c
- FILES_DSP += Rack/dep/pffft/fftpack.c
-
- FILES_UI += Rack/dep/oui-blendish/blendish.c
-
- # FIXME dont use this
- FILES_UI += Rack/dep/osdialog/osdialog.c
- ifeq ($(MACOS),true)
- FILES_UI += Rack/dep/osdialog/osdialog_mac.m
- else ifeq ($(WINDOWS),true)
- FILES_UI += Rack/dep/osdialog/osdialog_win.c
- else
- FILES_UI += Rack/dep/osdialog/osdialog_zenity.c
- endif
-
- FILES_DSP += $(wildcard Rack/src/*.c)
- FILES_DSP += $(wildcard Rack/src/*/*.c)
- FILES_DSP += $(filter-out Rack/src/asset.cpp Rack/src/common.cpp Rack/src/dep.cpp Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/keyboard.cpp Rack/src/library.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
- FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
-
- # --------------------------------------------------------------
- # Extra libraries to link against
-
- ifneq ($(SYSDEPS),true)
- EXTRA_LIBS = ../plugins/plugins.a
- EXTRA_LIBS += Rack/dep/lib/libjansson.a
- EXTRA_LIBS += Rack/dep/lib/libsamplerate.a
- EXTRA_LIBS += Rack/dep/lib/libspeexdsp.a
- ifeq ($(WINDOWS),true)
- EXTRA_LIBS += Rack/dep/lib/libarchive_static.a
- else
- EXTRA_LIBS += Rack/dep/lib/libarchive.a
- endif
- EXTRA_LIBS += Rack/dep/lib/libzstd.a
-
- EXTRA_DEPENDENCIES = $(EXTRA_LIBS)
- endif
-
- # --------------------------------------------------------------
- # Do some magic
-
- DPF_PATH = ../dpf
- DPF_BUILD_DIR = ../build
- DPF_TARGET_DIR = ../bin
- USE_VST2_BUNDLE = true
- include ../dpf/Makefile.plugins.mk
-
- # --------------------------------------------------------------
- # Extra flags for VCV stuff
-
- ifeq ($(MACOS),true)
- BASE_FLAGS += -DARCH_MAC
- else ifeq ($(WINDOWS),true)
- BASE_FLAGS += -DARCH_WIN
- else
- BASE_FLAGS += -DARCH_LIN
- endif
-
- BASE_FLAGS += -fno-finite-math-only
- BASE_FLAGS += -I../dpf/dgl/src/nanovg
- BASE_FLAGS += -I../include
- BASE_FLAGS += -I../include/neon-compat
- BASE_FLAGS += -IRack/include
- ifeq ($(SYSDEPS),true)
- BASE_FLAGS += $(shell pkg-config --cflags jansson libarchive samplerate speexdsp)
- else
- BASE_FLAGS += -IRack/dep/include
- endif
- BASE_FLAGS += -IRack/dep/filesystem/include
- BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
- BASE_FLAGS += -IRack/dep/glfw/include
- BASE_FLAGS += -IRack/dep/nanosvg/src
- BASE_FLAGS += -IRack/dep/osdialog
- BASE_FLAGS += -IRack/dep/oui-blendish
- BASE_FLAGS += -IRack/dep/pffft
- BASE_FLAGS += -pthread
-
- ifeq ($(WINDOWS),true)
- BASE_FLAGS += -D_USE_MATH_DEFINES
- BASE_FLAGS += -DWIN32_LEAN_AND_MEAN
- BASE_FLAGS += -I../include/mingw-compat
- BASE_FLAGS += -I../include/mingw-std-threads
- endif
-
- ifeq ($(WITH_LTO),true)
- BASE_FLAGS += -fno-strict-aliasing -flto
- endif
-
- BUILD_C_FLAGS += -std=gnu11
-
- # --------------------------------------------------------------
- # FIXME lots of warnings from VCV side
-
- BASE_FLAGS += -Wno-unused-parameter
- BASE_FLAGS += -Wno-unused-variable
-
- # --------------------------------------------------------------
- # extra linker flags
-
- LINK_FLAGS += -pthread
-
- ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
- LINK_FLAGS += -ldl
- endif
-
- ifeq ($(MACOS),true)
- LINK_FLAGS += -framework IOKit
- else ifeq ($(WINDOWS),true)
- LINK_FLAGS += -ldbghelp -lshlwapi
- # needed by JW-Modules
- EXTRA_LIBS += -lws2_32 -lwinmm
- endif
-
- ifeq ($(SYSDEPS),true)
- LINK_FLAGS += $(shell pkg-config --libs jansson libarchive samplerate speexdsp)
- endif
-
- ifeq ($(WITH_LTO),true)
- LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch
- endif
-
- # --------------------------------------------------------------
- # fallback path to resource files
-
- ifeq ($(EXE_WRAPPER),wine)
- SOURCE_DIR = Z:$(subst /,\\,$(CURDIR))
- else
- SOURCE_DIR = $(CURDIR)
- endif
-
- ifneq ($(SYSDEPS),true)
- BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"'
- endif
-
- BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"'
-
- # --------------------------------------------------------------
- # Enable all possible plugin types
-
- all: jack lv2 vst2 vst3 resources
-
- # --------------------------------------------------------------
-
- CORE_RESOURCES = $(subst Rack/res/,,$(wildcard Rack/res/*)) template.vcv
-
- PLUGIN_RESOURCES += $(CORE_RESOURCES:%=../bin/Cardinal.lv2/resources/%)
- ifeq ($(MACOS),true)
- PLUGIN_RESOURCES += $(CORE_RESOURCES:%=../bin/Cardinal.vst/Contents/Resources/%)
- else
- PLUGIN_RESOURCES += $(CORE_RESOURCES:%=../bin/Cardinal.vst/resources/%)
- endif
- PLUGIN_RESOURCES += $(CORE_RESOURCES:%=../bin/Cardinal.vst3/Contents/Resources/%)
-
- resources: $(PLUGIN_RESOURCES)
-
- ../bin/Cardinal.%/template.vcv: template.vcv
- -@mkdir -p "$(shell dirname $@)"
- ln -sf $(abspath $<) $@
-
- ../bin/Cardinal.lv2/resources/%: Rack/res/%
- -@mkdir -p "$(shell dirname $@)"
- ln -sf $(abspath $<) $@
-
- ../bin/Cardinal.vst/resources/%: Rack/res/%
- -@mkdir -p "$(shell dirname $@)"
- ln -sf $(abspath $<) $@
-
- ../bin/Cardinal.vst/Contents/Resources/%: Rack/res/%
- -@mkdir -p "$(shell dirname $@)"
- ln -sf $(abspath $<) $@
-
- ../bin/Cardinal.vst3/Contents/Resources/%: Rack/res/%
- -@mkdir -p "$(shell dirname $@)"
- ln -sf $(abspath $<) $@
-
- # --------------------------------------------------------------
|