#!/usr/bin/make -f # Makefile for carla-bridges-ui # # ----------------------------- # # Created by falkTX # CWD=.. MODULENAME=carla-bridge include $(CWD)/Makefile.mk # ---------------------------------------------------------------------------------------------------------------------------- BINDIR := $(CWD)/../bin ifeq ($(DEBUG),true) OBJDIR := $(CWD)/../build/bridges-plugin/Debug MODULEDIR := $(CWD)/../build/modules/Debug else OBJDIR := $(CWD)/../build/bridges-plugin/Release MODULEDIR := $(CWD)/../build/modules/Release endif # ---------------------------------------------------------------------------------------------------------------------------- BUILD_CXX_FLAGS += -DBUILD_BRIDGE -I. -I$(CWD)/backend -I$(CWD)/includes -I$(CWD)/utils -isystem $(CWD)/modules BUILD_CXX_FLAGS += $(LIBLO_FLAGS) BUILD_LV2_FLAGS = $(BUILD_CXX_FLAGS) -DBRIDGE_LV2 BUILD_VST2_FLAGS = $(BUILD_CXX_FLAGS) -DBRIDGE_VST2 ifeq ($(CARLA_VESTIGE_HEADER),true) BUILD_VST2_FLAGS += -DVESTIGE_HEADER endif LINK_FLAGS += $(JUCE_CORE_LIBS) LINK_FLAGS += $(LIBLO_LIBS) # ---------------------------------------------------------------------------------------------------------------------------- BUILD_LV2_GTK2_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_GTK2 -DBRIDGE_LV2_GTK2 $(shell pkg-config --cflags gtk+-2.0) LINK_LV2_GTK2_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs gtk+-2.0) -ldl BUILD_LV2_GTK3_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_GTK3 -DBRIDGE_LV2_GTK3 $(shell pkg-config --cflags gtk+-3.0) LINK_LV2_GTK3_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs gtk+-3.0) -ldl BUILD_LV2_QT4_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_QT4 -DBRIDGE_LV2_QT4 $(shell pkg-config --cflags QtCore QtGui) -I$(OBJDIR) -I$(CWD)/theme LINK_LV2_QT4_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs QtCore QtGui) -ldl BUILD_LV2_QT5_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_QT5 -DBRIDGE_LV2_QT5 $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets) -I$(OBJDIR) -I$(CWD)/theme LINK_LV2_QT5_FLAGS = $(LINK_FLAGS) $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) -ldl BUILD_LV2_X11_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_X11 -DBRIDGE_LV2_X11 $(X11_FLAGS) LINK_LV2_X11_FLAGS = $(LINK_FLAGS) $(X11_LIBS) -ldl BUILD_LV2_COCOA_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_COCOA -DBRIDGE_LV2_COCOA -ObjC++ LINK_LV2_COCOA_FLAGS = $(LINK_FLAGS) -framework Cocoa -framework IOKit -framework QuartzCore -ldl BUILD_LV2_WINDOWS_FLAGS = $(BUILD_LV2_FLAGS) -DBRIDGE_HWND -DBRIDGE_LV2_HWND LINK_LV2_WINDOWS_FLAGS = $(LINK_FLAGS) -static -mwindows BUILD_VST2_X11_FLAGS = $(BUILD_VST2_FLAGS) -DBRIDGE_X11 -DBRIDGE_VST2_X11 $(X11_FLAGS) LINK_VST2_X11_FLAGS = $(LINK_FLAGS) $(X11_LIBS) -ldl ifeq ($(LINUX),true) LINK_LV2_GTK2_FLAGS += -lX11 LINK_LV2_GTK3_FLAGS += -lX11 LINK_LV2_QT4_FLAGS += -lX11 endif # ---------------------------------------------------------------------------------------------------------------------------- ifeq ($(MACOS_OR_WIN32),true) HAVE_QT4 = false HAVE_QT5 = false endif ifeq ($(HAVE_GTK2),true) TARGETS += ui_lv2-gtk2 endif ifeq ($(HAVE_GTK3),true) TARGETS += ui_lv2-gtk3 endif ifeq ($(HAVE_QT4),true) TARGETS += ui_lv2-qt4 endif ifeq ($(HAVE_QT5),true) TARGETS += ui_lv2-qt5 endif ifeq ($(HAVE_X11),true) TARGETS += ui_lv2-x11 TARGETS += ui_vst2-x11 endif ifeq ($(MACOS),true) TARGETS += ui_lv2-cocoa endif ifeq ($(WIN32),true) TARGETS += ui_lv2-windows endif # ---------------------------------------------------------------------------------------------------------------------------- all: $(TARGETS) # ---------------------------------------------------------------------------------------------------------------------------- clean: rm -f $(OBJDIR)/*.cpp $(OBJDIR)/*.moc $(OBJDIR)/*.o rm -f $(BINDIR)/$(MODULENAME)-lv2-* $(BINDIR)/$(MODULENAME)-vst2-* debug: $(MAKE) DEBUG=true doxygen: carla_bridge.doxygen doxygen $< # ---------------------------------------------------------------------------------------------------------------------------- ui_lv2-gtk2: $(BINDIR)/$(MODULENAME)-lv2-gtk2 ui_lv2-gtk3: $(BINDIR)/$(MODULENAME)-lv2-gtk3 ui_lv2-qt4: $(BINDIR)/$(MODULENAME)-lv2-qt4 ui_lv2-qt5: $(BINDIR)/$(MODULENAME)-lv2-qt5 ui_lv2-x11: $(BINDIR)/$(MODULENAME)-lv2-x11 ui_lv2-cocoa: $(BINDIR)/$(MODULENAME)-lv2-cocoa ui_lv2-windows: $(BINDIR)/$(MODULENAME)-lv2-windows.exe ui_vst2-x11: $(BINDIR)/$(MODULENAME)-vst2-x11 # ---------------------------------------------------------------------------------------------------------------------------- # Common libs LIBS_LV2 = \ $(MODULEDIR)/juce_core.a \ $(MODULEDIR)/lilv.a LIBS_LV2_JUCE = \ $(LIBS_LV2) \ $(MODULEDIR)/juce_data_structures.a \ $(MODULEDIR)/juce_events.a \ $(MODULEDIR)/juce_graphics.a \ $(MODULEDIR)/juce_gui_basics.a ifeq ($(MACOS),true) LIBS_LV2_JUCE += \ $(MODULEDIR)/juce_gui_extra.a endif LIBS_VST2 = \ $(MODULEDIR)/juce_core.a # ---------------------------------------------------------------------------------------------------------------------------- # Common objects $(OBJDIR)/%.cpp.lv2.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2)" @$(CXX) $< $(BUILD_LV2_FLAGS) -c -o $@ $(OBJDIR)/%.cpp.vst2.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (VST2)" @$(CXX) $< $(BUILD_VST2_FLAGS) -c -o $@ # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-gtk2 OBJS_LV2_GTK2 = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitGtk.cpp.lv2-gtk2.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-gtk2.o $(BINDIR)/$(MODULENAME)-lv2-gtk2: $(OBJS_LV2_GTK2) $(LIBS_LV2) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-gtk2" @$(CXX) $(OBJS_LV2_GTK2) $(LIBS_START) $(LIBS_LV2) $(LIBS_END) $(LINK_LV2_GTK2_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-gtk2.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-GTK2)" @$(CXX) $< $(BUILD_LV2_GTK2_FLAGS) -c -o $@ -include $(OBJS_LV2_GTK2:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-gtk3 OBJS_LV2_GTK3 = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitGtk.cpp.lv2-gtk3.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-gtk3.o $(BINDIR)/$(MODULENAME)-lv2-gtk3: $(OBJS_LV2_GTK3) $(LIBS_LV2) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-gtk3" @$(CXX) $(OBJS_LV2_GTK3) $(LIBS_START) $(LIBS_LV2) $(LIBS_END) $(LINK_LV2_GTK3_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-gtk3.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-GTK3)" @$(CXX) $< $(BUILD_LV2_GTK3_FLAGS) -c -o $@ -include $(OBJS_LV2_GTK3:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-qt4 OBJS_LV2_QT4 = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitQt.cpp.lv2-qt4.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-qt4.o $(BINDIR)/$(MODULENAME)-lv2-qt4: $(OBJS_LV2_QT4) $(LIBS_LV2) $(MODULEDIR)/theme.qt4.a -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-qt4" @$(CXX) $(OBJS_LV2_QT4) $(LIBS_START) $(LIBS_LV2) $(MODULEDIR)/theme.qt4.a $(LIBS_END) $(LINK_LV2_QT4_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-qt4.o: %.cpp $(OBJDIR)/CarlaBridgeToolkitQt4.moc $(OBJDIR)/resources.qt4.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-QT4)" @$(CXX) $< $(BUILD_LV2_QT4_FLAGS) -c -o $@ $(OBJDIR)/CarlaBridgeToolkitQt4.moc: CarlaBridgeToolkitQt.cpp -@mkdir -p $(OBJDIR) @echo "Generating CarlaBridgeToolkitQt4.moc" @$(MOC_QT4) $< -DMOC_PARSING -o $@ $(OBJDIR)/resources.qt4.cpp: ../../resources/resources-theme.qrc -@mkdir -p $(OBJDIR) @echo "Generating resources.qt4.cpp" @$(RCC_QT4) $< -o $@ -include $(OBJS_LV2_QT4:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-qt5 OBJS_LV2_QT5 = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitQt.cpp.lv2-qt5.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-qt5.o $(BINDIR)/$(MODULENAME)-lv2-qt5: $(OBJS_LV2_QT5) $(LIBS_LV2) $(MODULEDIR)/theme.qt5.a -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-qt5" @$(CXX) $(OBJS_LV2_QT5) $(LIBS_START) $(LIBS_LV2) $(MODULEDIR)/theme.qt5.a $(LIBS_END) $(LINK_LV2_QT5_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-qt5.o: %.cpp $(OBJDIR)/CarlaBridgeToolkitQt5.moc $(OBJDIR)/resources.qt5.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-QT5)" @$(CXX) $< $(BUILD_LV2_QT5_FLAGS) -c -o $@ $(OBJDIR)/CarlaBridgeToolkitQt5.moc: CarlaBridgeToolkitQt.cpp -@mkdir -p $(OBJDIR) @echo "Generating CarlaBridgeToolkitQt5.moc" @$(MOC_QT5) $< -DMOC_PARSING -o $@ $(OBJDIR)/resources.qt5.cpp: ../../resources/resources-theme.qrc -@mkdir -p $(OBJDIR) @echo "Generating resources.qt5.cpp" @$(RCC_QT5) $< -o $@ -include $(OBJS_LV2_QT5:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-x11 OBJS_LV2_X11 = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitPlugin.cpp.lv2-x11.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-x11.o $(BINDIR)/$(MODULENAME)-lv2-x11: $(OBJS_LV2_X11) $(LIBS_LV2) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-x11" @$(CXX) $(OBJS_LV2_X11) $(LIBS_START) $(LIBS_LV2) $(LIBS_END) $(LINK_LV2_X11_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-x11.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-X11)" @$(CXX) $< $(BUILD_LV2_X11_FLAGS) -c -o $@ -include $(OBJS_LV2_X11:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-cocoa OBJS_LV2_COCOA = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitPlugin.cpp.lv2-cocoa.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-cocoa.o $(BINDIR)/$(MODULENAME)-lv2-cocoa: $(OBJS_LV2_COCOA) $(LIBS_LV2_JUCE) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-cocoa" @$(CXX) $(OBJS_LV2_COCOA) $(LIBS_START) $(LIBS_LV2_JUCE) $(LIBS_END) $(LINK_LV2_COCOA_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-cocoa.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-Cocoa)" @$(CXX) $< $(BUILD_LV2_COCOA_FLAGS) -c -o $@ -include $(OBJS_LV2_COCOA:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_lv2-windows OBJS_LV2_WINDOWS = \ $(OBJDIR)/CarlaBridgeClient.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.lv2.o \ $(OBJDIR)/CarlaBridgeToolkitPlugin.cpp.lv2-windows.o \ $(OBJDIR)/CarlaBridgeUI-LV2.cpp.lv2-windows.o $(BINDIR)/$(MODULENAME)-lv2-windows.exe: $(OBJS_LV2_WINDOWS) $(LIBS_LV2_JUCE) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-lv2-windows.exe" @$(CXX) $(OBJS_LV2_WINDOWS) $(LIBS_START) $(LIBS_LV2_JUCE) $(LIBS_END) $(LINK_LV2_WINDOWS_FLAGS) -o $@ $(OBJDIR)/%.cpp.lv2-windows.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (LV2-Windows)" @$(CXX) $< $(BUILD_LV2_WINDOWS_FLAGS) -c -o $@ -include $(OBJS_LV2_WINDOWS:%.o=%.d) # ---------------------------------------------------------------------------------------------------------------------------- # ui_vst2-x11 OBJS_VST2_X11 = \ $(OBJDIR)/CarlaBridgeClient.cpp.vst2.o \ $(OBJDIR)/CarlaBridgeOsc.cpp.vst2.o \ $(OBJDIR)/CarlaBridgeToolkitPlugin.cpp.vst2-x11.o \ $(OBJDIR)/CarlaBridgeUI-VST2.cpp.vst2-x11.o $(BINDIR)/$(MODULENAME)-vst2-x11: $(OBJS_VST2_X11) $(LIBS_VST2) -@mkdir -p $(BINDIR) @echo "Linking $(MODULENAME)-vst2-x11" @$(CXX) $(OBJS_VST2_X11) $(LIBS_START) $(LIBS_VST2) $(LIBS_END) $(LINK_VST2_X11_FLAGS) -o $@ $(OBJDIR)/%.cpp.vst2-x11.o: %.cpp -@mkdir -p $(OBJDIR) @echo "Compiling $< (VST2-X11)" @$(CXX) $< $(BUILD_VST2_X11_FLAGS) -c -o $@ -include $(OBJS_VST2_X11:%.o=%.d) # ----------------------------------------------------------------------------------------------------------------------------