Audio plugin host https://kx.studio/carla
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.

158 lines
3.6KB

  1. #!/usr/bin/make -f
  2. # Makefile for carla plugin exports #
  3. # --------------------------------- #
  4. # Created by falkTX
  5. #
  6. include ../Makefile.mk
  7. BUILD_CXX_FLAGS += -I../backend -I../includes -I../modules -I../utils
  8. ifeq ($(HAVE_QT4),true)
  9. BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore QtGui)
  10. else
  11. BUILD_CXX_FLAGS += $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets)
  12. endif
  13. # --------------------------------------------------------------
  14. ifeq ($(HAVE_OPENGL),true)
  15. BUILD_CXX_FLAGS += -DWANT_OPENGL
  16. endif
  17. ifeq ($(HAVE_AF_DEPS),true)
  18. BUILD_CXX_FLAGS += -DWANT_AUDIOFILE
  19. endif
  20. ifeq ($(HAVE_MF_DEPS),true)
  21. BUILD_CXX_FLAGS += -DWANT_MIDIFILE
  22. endif
  23. ifeq ($(HAVE_ZYN_DEPS),true)
  24. BUILD_CXX_FLAGS += -DWANT_ZYNADDSUBFX
  25. endif
  26. # --------------------------------------------------------------
  27. # Common
  28. LINK_FLAGS += $(shell pkg-config --libs liblo)
  29. ifeq ($(HAVE_QT4),true)
  30. LINK_FLAGS += $(shell pkg-config --libs QtCore QtGui QtXml)
  31. else
  32. LINK_FLAGS += $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Xml Qt5Widgets)
  33. endif
  34. # --------------------------------------------------------------
  35. # Plugin
  36. ifeq ($(HAVE_FLUIDSYNTH),true)
  37. LINK_FLAGS += $(shell pkg-config --libs fluidsynth)
  38. endif
  39. ifeq ($(HAVE_LINUXSAMPLER),true)
  40. LINK_FLAGS += $(shell pkg-config --libs linuxsampler)
  41. endif
  42. # --------------------------------------------------------------
  43. # Native
  44. DGL_LIBS = -lX11
  45. ifeq ($(HAVE_AF_DEPS),true)
  46. LINK_FLAGS += $(shell pkg-config --libs sndfile)
  47. ifeq ($(HAVE_FFMPEG),true)
  48. LINK_FLAGS += $(shell pkg-config --libs libavcodec libavformat libavutil)
  49. endif
  50. endif
  51. ifeq ($(HAVE_MF_DEPS),true)
  52. LINK_FLAGS += $(shell pkg-config --libs smf)
  53. endif
  54. ifeq ($(HAVE_OPENGL),true)
  55. LINK_FLAGS += $(shell pkg-config --libs gl) $(DGL_LIBS)
  56. endif
  57. ifeq ($(HAVE_ZYN_DEPS),true)
  58. LINK_FLAGS += $(shell pkg-config --libs fftw3 mxml zlib)
  59. ifeq ($(HAVE_ZYN_UI_DEPS),true)
  60. LINK_FLAGS += $(shell pkg-config --libs ntk ntk_images)
  61. endif
  62. endif
  63. LINK_FLAGS += $(EXTRA_LIBS)
  64. # --------------------------------------------------------------
  65. # LIBS = ../backend/libcarla_engine_xx.a
  66. # LIBS += ../backend/libcarla_plugin.a
  67. LIBS += ../backend/libcarla_native.a
  68. LIBS += ../modules/rtmempool.a
  69. LIBS += ../modules/widgets.a
  70. LIBS += ../modules/juce_core.a
  71. ifeq ($(CARLA_PLUGIN_SUPPORT),true)
  72. LIBS += ../modules/lilv.a
  73. endif
  74. ifeq ($(HAVE_OPENGL),true)
  75. LIBS += ../modules/dgl.a
  76. endif
  77. ifeq ($(WIN32),true)
  78. TARGETS = carla-native.lv2/carla-native.dll
  79. TARGETS += carla-native-export.exe
  80. else
  81. ifeq ($(MACOS),true)
  82. TARGETS = carla-native.lv2/carla-native.dylib
  83. else
  84. TARGETS = carla-native.lv2/carla-native.so
  85. endif
  86. TARGETS += carla-native-export
  87. endif
  88. # --------------------------------------------------------------
  89. all: $(TARGETS)
  90. clean:
  91. rm -f *.o
  92. rm -f carla-native.lv2/*.*
  93. debug:
  94. $(MAKE) DEBUG=true
  95. # --------------------------------------------------------------
  96. %.cpp.o: %.cpp ../backend/CarlaNative.h
  97. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  98. carla-native.lv2/carla-native.dll: carla-native-plugin.cpp.o $(LIBS)
  99. $(CXX) $^ -shared $(LINK_FLAGS) -o $@
  100. carla-native.lv2/carla-native.dylib: carla-native-plugin.cpp.o $(LIBS)
  101. $(CXX) $^ -dynamiclib $(LINK_FLAGS) -o $@
  102. carla-native.lv2/carla-native.so: carla-native-plugin.cpp.o $(LIBS)
  103. $(CXX) $^ -shared $(LINK_FLAGS) -o $@
  104. carla-native-export: carla-native-export.cpp.o $(LIBS)
  105. $(CXX) $^ $(LINK_FLAGS) -o $@
  106. ./carla-native-export
  107. carla-native-export.exe: carla-native-export.cpp.o $(LIBS)
  108. $(CXX) $^ $(LINK_FLAGS) -o $@
  109. ./carla-native-export.exe
  110. # --------------------------------------------------------------
  111. .FORCE:
  112. .PHONY: .FORCE
  113. ../backend/libcarla_%.a: .FORCE
  114. $(MAKE) -C ../backend/$*
  115. ../modules/%.a: .FORCE
  116. $(MAKE) -C ../modules $*