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.

201 lines
5.6KB

  1. #!/usr/bin/make -f
  2. # Makefile for carla-frontend #
  3. # --------------------------- #
  4. # Created by falkTX
  5. #
  6. CWD=../..
  7. include $(CWD)/Makefile.mk
  8. # ---------------------------------------------------------------------------------------------------------------------
  9. BINDIR := $(CWD)/../bin
  10. RESDIR := $(CWD)/../resources
  11. ifeq ($(DEBUG),true)
  12. OBJDIR := $(CWD)/../build/frontend/Debug
  13. MODULEDIR := $(CWD)/../build/modules/Debug
  14. else
  15. OBJDIR := $(CWD)/../build/frontend/Release
  16. MODULEDIR := $(CWD)/../build/modules/Release
  17. endif
  18. # ---------------------------------------------------------------------------------------------------------------------
  19. BUILD_CXX_FLAGS += -I. -I$(CWD) -I$(CWD)/backend -I$(CWD)/includes -I$(CWD)/modules -I$(CWD)/utils
  20. BUILD_CXX_FLAGS += -DCARLA_SKIP_HOST_COMMON
  21. BUILD_CXX_FLAGS += $(FLUIDSYNTH_FLAGS)
  22. BUILD_CXX_FLAGS += $(QT5_FLAGS)
  23. # ---------------------------------------------------------------------------------------------------------------------
  24. OBJS = \
  25. $(OBJDIR)/carla.cpp.o \
  26. $(OBJDIR)/app.cpp.o \
  27. $(OBJDIR)/host.cpp.o \
  28. $(OBJDIR)/moc_host.cpp.o \
  29. $(OBJDIR)/Information.cpp.o \
  30. $(OBJDIR)/CarlaStandalone.cpp.o \
  31. $(OBJDIR)/CarlaStandaloneNSM.cpp.o
  32. TARGETS = $(BINDIR)/carla
  33. # ---------------------------------------------------------------------------------------------------------------------
  34. # UI code
  35. UIs = \
  36. ui_carla_about.hpp \
  37. ui_carla_about_juce.hpp \
  38. ui_carla_add_jack.hpp \
  39. ui_carla_database.hpp \
  40. ui_carla_edit.hpp \
  41. ui_carla_host.hpp \
  42. ui_carla_osc_connect.hpp \
  43. ui_carla_parameter.hpp \
  44. ui_carla_plugin_calf.hpp \
  45. ui_carla_plugin_classic.hpp \
  46. ui_carla_plugin_compact.hpp \
  47. ui_carla_plugin_default.hpp \
  48. ui_carla_plugin_presets.hpp \
  49. ui_carla_refresh.hpp \
  50. ui_carla_settings.hpp \
  51. ui_carla_settings_driver.hpp \
  52. ui_inputdialog_value.hpp \
  53. ui_midipattern.hpp
  54. # ---------------------------------------------------------------------------------------------------------------------
  55. # Resources
  56. RES = \
  57. resources_rc.hpp
  58. # ---------------------------------------------------------------------------------------------------------------------
  59. LIBS = $(MODULEDIR)/carla_engine.a
  60. LIBS += $(MODULEDIR)/carla_plugin.a
  61. LIBS += $(MODULEDIR)/jackbridge.a
  62. LIBS += $(MODULEDIR)/audio_decoder.a
  63. LIBS += $(MODULEDIR)/lilv.a
  64. LIBS += $(MODULEDIR)/native-plugins.a
  65. LIBS += $(MODULEDIR)/rtmempool.a
  66. LIBS += $(MODULEDIR)/sfzero.a
  67. LIBS += $(MODULEDIR)/water.a
  68. ifeq ($(HAVE_DGL),true)
  69. LIBS += $(MODULEDIR)/dgl.a
  70. endif
  71. ifeq ($(HAVE_HYLIA),true)
  72. LIBS += $(MODULEDIR)/hylia.a
  73. endif
  74. ifeq ($(USING_JUCE),true)
  75. LIBS += $(MODULEDIR)/juce_audio_basics.a
  76. LIBS += $(MODULEDIR)/juce_audio_devices.a
  77. LIBS += $(MODULEDIR)/juce_audio_processors.a
  78. LIBS += $(MODULEDIR)/juce_core.a
  79. LIBS += $(MODULEDIR)/juce_data_structures.a
  80. LIBS += $(MODULEDIR)/juce_events.a
  81. LIBS += $(MODULEDIR)/juce_graphics.a
  82. LIBS += $(MODULEDIR)/juce_gui_basics.a
  83. ifeq ($(MACOS),true)
  84. LIBS += $(MODULEDIR)/juce_gui_extra.a
  85. endif
  86. else
  87. LIBS += $(MODULEDIR)/rtaudio.a
  88. LIBS += $(MODULEDIR)/rtmidi.a
  89. endif
  90. # ---------------------------------------------------------------------------------------------------------------------
  91. LINK_FLAGS += $(QT5_LIBS)
  92. LINK_FLAGS += $(HYLIA_LIBS)
  93. LINK_FLAGS += $(JACKBRIDGE_LIBS)
  94. LINK_FLAGS += $(LILV_LIBS)
  95. LINK_FLAGS += $(NATIVE_PLUGINS_LIBS)
  96. LINK_FLAGS += $(RTMEMPOOL_LIBS)
  97. LINK_FLAGS += $(WATER_LIBS)
  98. LINK_FLAGS += $(LIBLO_LIBS)
  99. LINK_FLAGS += $(MAGIC_LIBS)
  100. LINK_FLAGS += $(FLUIDSYNTH_LIBS)
  101. LINK_FLAGS += $(X11_LIBS)
  102. ifeq ($(USING_JUCE),true)
  103. LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS)
  104. LINK_FLAGS += $(JUCE_AUDIO_DEVICES_LIBS)
  105. LINK_FLAGS += $(JUCE_AUDIO_PROCESSORS_LIBS)
  106. LINK_FLAGS += $(JUCE_CORE_LIBS)
  107. LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS)
  108. LINK_FLAGS += $(JUCE_EVENTS_LIBS)
  109. LINK_FLAGS += $(JUCE_GRAPHICS_LIBS)
  110. LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS)
  111. ifeq ($(MACOS),true)
  112. LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS)
  113. endif
  114. else
  115. LINK_FLAGS += $(RTAUDIO_LIBS)
  116. LINK_FLAGS += $(RTMIDI_LIBS)
  117. endif
  118. ifeq ($(JACKBRIDGE_DIRECT),true)
  119. LINK_FLAGS += $(JACK_LIBS)
  120. endif
  121. # ---------------------------------------------------------------------------------------------------------------------
  122. all: $(TARGETS) $(UIs) $(RES)
  123. # ---------------------------------------------------------------------------------------------------------------------
  124. clean:
  125. rm -f $(OBJS) $(UIs) $(TARGETS)
  126. debug:
  127. $(MAKE) DEBUG=true
  128. # ---------------------------------------------------------------------------------------------------------------------
  129. moc_%.cpp: %.hpp
  130. $(MOC_QT5) $< -o $@
  131. ui_%.hpp: $(RESDIR)/ui/%.ui
  132. $(UIC_QT5) $< -o $@
  133. resources_rc.hpp: $(RESDIR)/resources.qrc $(RESDIR)/*/*.png $(RESDIR)/*/*.svg
  134. $(RCC_QT5) $< -o $@
  135. # ---------------------------------------------------------------------------------------------------------------------
  136. $(BINDIR)/carla: $(OBJS)
  137. -@mkdir -p $(BINDIR)
  138. @echo "Linking carla"
  139. $(CXX) $(OBJS) $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@
  140. # ---------------------------------------------------------------------------------------------------------------------
  141. $(OBJDIR)/%.cpp.o: %.cpp $(UIs) $(RES)
  142. -@mkdir -p $(OBJDIR)
  143. @echo "Compiling $<"
  144. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  145. $(OBJDIR)/Information.cpp.o: $(CWD)/backend/utils/Information.cpp
  146. -@mkdir -p $(OBJDIR)
  147. @echo "Compiling $<"
  148. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  149. $(OBJDIR)/CarlaStandalone.cpp.o: $(CWD)/backend/CarlaStandalone.cpp
  150. -@mkdir -p $(OBJDIR)
  151. @echo "Compiling $<"
  152. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  153. $(OBJDIR)/CarlaStandaloneNSM.cpp.o: $(CWD)/backend/CarlaStandaloneNSM.cpp
  154. -@mkdir -p $(OBJDIR)
  155. @echo "Compiling $<"
  156. $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
  157. -include $(OBJS:%.o=%.d)
  158. # ---------------------------------------------------------------------------------------------------------------------