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.

153 lines
3.9KB

  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. FILES_UI += dep.cpp
  16. FILES_UI += Window.cpp
  17. # --------------------------------------------------------------
  18. # Import base definitions
  19. # UI_TYPE = external
  20. USE_NANOVG_FBO = 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. # FILES_UI += Rack/dep/nanovg/src/nanovg.c
  28. # FIXME dont use this
  29. FILES_UI += Rack/dep/osdialog/osdialog.c
  30. ifeq ($(MACOS),true)
  31. FILES_UI += Rack/dep/osdialog/osdialog_mac.m
  32. else ifeq ($(WINDOWS),true)
  33. FILES_UI += Rack/dep/osdialog/osdialog_win.c
  34. else
  35. FILES_UI += Rack/dep/osdialog/osdialog_zenity.c
  36. endif
  37. FILES_DSP += $(wildcard Rack/src/*.c)
  38. FILES_DSP += $(wildcard Rack/src/*/*.c)
  39. FILES_DSP += $(filter-out Rack/src/dep.cpp Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
  40. FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
  41. EXTRA_LIBS += Rack/dep/lib/libjansson.a
  42. EXTRA_LIBS += Rack/dep/lib/libspeexdsp.a
  43. ifeq ($(WINDOWS),true)
  44. EXTRA_LIBS += Rack/dep/lib/libarchive_static.a
  45. EXTRA_LIBS += Rack/dep/lib/libglew32.a
  46. else
  47. EXTRA_LIBS += Rack/dep/lib/libarchive.a
  48. EXTRA_LIBS += Rack/dep/lib/libGLEW.a
  49. endif
  50. EXTRA_LIBS += Rack/dep/lib/libzstd.a
  51. # for raw GLFW window
  52. # EXTRA_LIBS += Rack/dep/lib/libglfw3.a
  53. # FILES_DSP += Rack/src/gamepad.cpp Rack/src/window/Window.cpp
  54. # --------------------------------------------------------------
  55. # Do some magic
  56. include ../../dpf/Makefile.plugins.mk
  57. ifeq ($(WINDOWS),true)
  58. CMAKE := cmake -G 'Unix Makefiles' -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=$(subst gcc,windres,$(CC))
  59. else
  60. CMAKE := cmake
  61. endif
  62. BUILD_C_FLAGS += -std=gnu11
  63. Rack/dep/lib/%.a:
  64. $(MAKE) CMAKE="$(CMAKE) -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX='$(abspath Rack/dep)'" -C Rack/dep lib/$*.a
  65. Rack/dep/lib/libarchive.a: Rack/dep/lib/libzstd.a
  66. Rack/dep/lib/libarchive_static.a: Rack/dep/lib/libzstd.a
  67. Rack/dep/lib/libcrypto.a: Rack/dep/lib/libssl.a
  68. # --------------------------------------------------------------
  69. # Extra flags for VCV stuff
  70. BASE_FLAGS += -D_APP_VERSION=2.git.0
  71. BASE_FLAGS += -I$(DPF_PATH)/dgl/src/nanovg
  72. BASE_FLAGS += -IRack/include
  73. BASE_FLAGS += -IRack/dep/include
  74. BASE_FLAGS += -IRack/dep/filesystem/include
  75. BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
  76. # BASE_FLAGS += -IRack/dep/glew-2.1.0/include
  77. # BASE_FLAGS += -IRack/dep/glfw/deps
  78. BASE_FLAGS += -IRack/dep/glfw/include
  79. # BASE_FLAGS += -IRack/dep/nanovg/src
  80. BASE_FLAGS += -IRack/dep/nanosvg/src
  81. BASE_FLAGS += -IRack/dep/osdialog
  82. BASE_FLAGS += -IRack/dep/oui-blendish
  83. BASE_FLAGS += -IRack/dep/pffft
  84. ifeq ($(WINDOWS),true)
  85. BASE_FLAGS += -Imingw-compat
  86. BUILD_CXX_FLAGS += -Imingw-std-threads
  87. endif
  88. ifeq ($(MACOS),true)
  89. BASE_FLAGS += -DARCH_MAC
  90. else ifeq ($(WINDOWS),true)
  91. BASE_FLAGS += -DARCH_WIN
  92. else
  93. BASE_FLAGS += -DARCH_LIN
  94. endif
  95. # FIXME lots of warnings from VCV side
  96. BASE_FLAGS += -Wno-unused-parameter
  97. BASE_FLAGS += -Wno-unused-variable
  98. # extra linker flags
  99. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  100. LINK_FLAGS += -ldl
  101. endif
  102. ifeq ($(MACOS),true)
  103. LINK_FLAGS += -framework IOKit
  104. else ifeq ($(WINDOWS),true)
  105. LINK_FLAGS += -ldbghelp -lshlwapi
  106. endif
  107. # LINK_FLAGS += $(OPENGL_LIBS)
  108. # TODO needed on windows? need to check
  109. LINK_FLAGS += -lpthread
  110. # --------------------------------------------------------------
  111. # Enable all possible plugin types
  112. TARGETS = jack lv2 vst2 vst3
  113. all: $(TARGETS)
  114. # --------------------------------------------------------------