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.

141 lines
3.6KB

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