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.

131 lines
3.3KB

  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 = CVCRack
  9. # --------------------------------------------------------------
  10. # Files to build (DPF stuff)
  11. FILES_DSP = \
  12. CVCRackPlugin.cpp
  13. FILES_UI = \
  14. CVCRackUI.cpp
  15. # --------------------------------------------------------------
  16. # Import base definitions
  17. include ../../dpf/Makefile.base.mk
  18. # --------------------------------------------------------------
  19. # Files to build (VCV stuff)
  20. FILES_DSP += Rack/dep/pffft/pffft.c
  21. FILES_DSP += Rack/dep/pffft/fftpack.c
  22. FILES_UI += Rack/dep/oui-blendish/blendish.c
  23. FILES_UI += Rack/dep/nanovg/src/nanovg.c
  24. # FILES_UI += Rack/dep/glfw/deps/glad.c
  25. # FIXME dont use this
  26. FILES_UI += Rack/dep/osdialog/osdialog.c
  27. ifeq ($(MACOS),true)
  28. FILES_UI += Rack/dep/osdialog/osdialog_mac.m
  29. else ifeq ($(WINDOWS),true)
  30. FILES_UI += Rack/dep/osdialog/osdialog_win.c
  31. else
  32. FILES_UI += Rack/dep/osdialog/osdialog_zenity.c
  33. endif
  34. FILES_DSP += $(wildcard Rack/src/*.c)
  35. FILES_DSP += $(wildcard Rack/src/*/*.c)
  36. FILES_DSP += $(filter-out Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
  37. FILES_DSP += $(wildcard Rack/src/*/*.cpp)
  38. # EXTRA_LIBS = Rack/dep/lib/libcurl.a
  39. EXTRA_LIBS += Rack/dep/lib/libglfw3.a
  40. EXTRA_LIBS += Rack/dep/lib/libjansson.a
  41. EXTRA_LIBS += Rack/dep/lib/libspeexdsp.a
  42. EXTRA_LIBS += Rack/dep/lib/libzstd.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. # --------------------------------------------------------------
  51. # Do some magic
  52. include ../../dpf/Makefile.plugins.mk
  53. ifeq ($(WINDOWS),true)
  54. CMAKE := cmake -G 'Unix Makefiles' -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_RC_COMPILER=$(subst gcc,windres,$(CC))
  55. else
  56. CMAKE := cmake
  57. endif
  58. Rack/dep/lib/%.a:
  59. $(MAKE) CMAKE="$(CMAKE) -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX='$(abspath Rack/dep)'" -C Rack/dep lib/$*.a
  60. # --------------------------------------------------------------
  61. # Extra flags for VCV stuff
  62. BASE_FLAGS += -D_APP_VERSION=2.git.0
  63. BASE_FLAGS += -IRack/include
  64. BASE_FLAGS += -IRack/dep/include
  65. BASE_FLAGS += -IRack/dep/filesystem/include
  66. BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
  67. BASE_FLAGS += -IRack/dep/glfw/deps
  68. BASE_FLAGS += -IRack/dep/nanovg/src
  69. BASE_FLAGS += -IRack/dep/nanosvg/src
  70. BASE_FLAGS += -IRack/dep/osdialog
  71. BASE_FLAGS += -IRack/dep/oui-blendish
  72. BASE_FLAGS += -IRack/dep/pffft
  73. ifeq ($(WINDOWS),true)
  74. BASE_FLAGS += -Imingw-compat
  75. BUILD_CXX_FLAGS += -Imingw-std-threads
  76. endif
  77. ifeq ($(MACOS),true)
  78. BASE_FLAGS += -DARCH_MAC
  79. else ifeq ($(WINDOWS),true)
  80. BASE_FLAGS += -DARCH_WIN
  81. else
  82. BASE_FLAGS += -DARCH_LIN
  83. endif
  84. # FIXME lots of warnings from VCV side
  85. BASE_FLAGS += -Wno-unused-parameter
  86. BASE_FLAGS += -Wno-unused-variable
  87. # extra linker flags
  88. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  89. LINK_FLAGS += -ldl
  90. endif
  91. ifeq ($(MACOS),true)
  92. LINK_FLAGS += -framework IOKit
  93. endif
  94. # TODO needed on windows? need to check
  95. LINK_FLAGS += -lpthread
  96. # --------------------------------------------------------------
  97. # Enable all possible plugin types
  98. TARGETS = jack lv2 vst2 vst3
  99. all: $(TARGETS)
  100. # --------------------------------------------------------------