You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
4.1KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. # --------------------------------------------------------------
  7. # Project name, used for binaries
  8. NAME = Cardinal
  9. # --------------------------------------------------------------
  10. # Files to build (DPF stuff)
  11. FILES_DSP = \
  12. CardinalPlugin.cpp
  13. FILES_UI = \
  14. CardinalUI.cpp \
  15. dep.cpp \
  16. Window.cpp
  17. # --------------------------------------------------------------
  18. # Import base definitions
  19. USE_NANOVG_FBO = true
  20. USE_RGBA = true
  21. include ../dpf/Makefile.base.mk
  22. # --------------------------------------------------------------
  23. # Files to build (VCV stuff)
  24. FILES_DSP += Rack/dep/pffft/pffft.c
  25. FILES_DSP += Rack/dep/pffft/fftpack.c
  26. FILES_UI += Rack/dep/oui-blendish/blendish.c
  27. # FIXME dont use this
  28. FILES_UI += Rack/dep/osdialog/osdialog.c
  29. ifeq ($(MACOS),true)
  30. FILES_UI += Rack/dep/osdialog/osdialog_mac.m
  31. else ifeq ($(WINDOWS),true)
  32. FILES_UI += Rack/dep/osdialog/osdialog_win.c
  33. else
  34. FILES_UI += Rack/dep/osdialog/osdialog_zenity.c
  35. endif
  36. FILES_DSP += $(wildcard Rack/src/*.c)
  37. FILES_DSP += $(wildcard Rack/src/*/*.c)
  38. FILES_DSP += $(filter-out 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))
  39. FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
  40. # --------------------------------------------------------------
  41. # Extra libraries to link against
  42. EXTRA_LIBS = ../plugins/plugins.a
  43. EXTRA_LIBS += Rack/dep/lib/libjansson.a
  44. EXTRA_LIBS += Rack/dep/lib/libsamplerate.a
  45. EXTRA_LIBS += Rack/dep/lib/libspeexdsp.a
  46. ifeq ($(WINDOWS),true)
  47. EXTRA_LIBS += Rack/dep/lib/libarchive_static.a
  48. else
  49. EXTRA_LIBS += Rack/dep/lib/libarchive.a
  50. endif
  51. EXTRA_LIBS += Rack/dep/lib/libzstd.a
  52. EXTRA_DEPENDENCIES = $(EXTRA_LIBS)
  53. # --------------------------------------------------------------
  54. # Do some magic
  55. DPF_PATH = ../dpf
  56. DPF_TARGET_DIR = ../bin
  57. include ../dpf/Makefile.plugins.mk
  58. # --------------------------------------------------------------
  59. # Extra flags for VCV stuff
  60. ifeq ($(MACOS),true)
  61. BASE_FLAGS += -DARCH_MAC
  62. else ifeq ($(WINDOWS),true)
  63. BASE_FLAGS += -DARCH_WIN
  64. else
  65. BASE_FLAGS += -DARCH_LIN
  66. endif
  67. BASE_FLAGS += -fno-finite-math-only
  68. BASE_FLAGS += -I../dpf/dgl/src/nanovg
  69. BASE_FLAGS += -I../include
  70. BASE_FLAGS += -I../include/neon-compat
  71. BASE_FLAGS += -IRack/include
  72. BASE_FLAGS += -IRack/dep/include
  73. BASE_FLAGS += -IRack/dep/filesystem/include
  74. BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
  75. BASE_FLAGS += -IRack/dep/glfw/include
  76. BASE_FLAGS += -IRack/dep/nanosvg/src
  77. BASE_FLAGS += -IRack/dep/osdialog
  78. BASE_FLAGS += -IRack/dep/oui-blendish
  79. BASE_FLAGS += -IRack/dep/pffft
  80. BASE_FLAGS += -pthread
  81. ifeq ($(WINDOWS),true)
  82. BASE_FLAGS += -D_USE_MATH_DEFINES
  83. BASE_FLAGS += -DWIN32_LEAN_AND_MEAN
  84. BASE_FLAGS += -I../include/mingw-compat
  85. BASE_FLAGS += -I../include/mingw-std-threads
  86. endif
  87. ifeq ($(WITH_LTO),true)
  88. BASE_FLAGS += -fno-strict-aliasing -flto
  89. endif
  90. BUILD_C_FLAGS += -std=gnu11
  91. # --------------------------------------------------------------
  92. # FIXME lots of warnings from VCV side
  93. BASE_FLAGS += -Wno-unused-parameter
  94. BASE_FLAGS += -Wno-unused-variable
  95. # --------------------------------------------------------------
  96. # extra linker flags
  97. LINK_FLAGS += -pthread
  98. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  99. LINK_FLAGS += -ldl
  100. endif
  101. ifeq ($(MACOS),true)
  102. LINK_FLAGS += -framework IOKit
  103. else ifeq ($(WINDOWS),true)
  104. LINK_FLAGS += -ldbghelp -lshlwapi
  105. # needed by JW-Modules
  106. EXTRA_LIBS += -lws2_32 -lwinmm
  107. endif
  108. ifeq ($(WITH_LTO),true)
  109. LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch
  110. endif
  111. # --------------------------------------------------------------
  112. # temporary macro just to get the ball rolling
  113. ifeq ($(EXE_WRAPPER),wine)
  114. SOURCE_DIR = Z:$(subst /,\\,$(CURDIR))
  115. else
  116. SOURCE_DIR = $(CURDIR)
  117. endif
  118. BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"'
  119. # --------------------------------------------------------------
  120. # Enable all possible plugin types
  121. all: jack lv2 vst2 vst3
  122. # --------------------------------------------------------------