| @@ -36,6 +36,113 @@ endif | |||||
| all: BIN RES UI WIDGETS | all: BIN RES UI WIDGETS | ||||
| # ---------------------------------------------------------------------------------------------------------------------------- | |||||
| # Config | |||||
| config: source/carla_config.py source/includes/config.h | |||||
| source/carla_config.py: | |||||
| @echo "#!/usr/bin/env python3" > $@ | |||||
| @echo "# -*- coding: utf-8 -*-" >> $@ | |||||
| ifeq ($(DEFAULT_QT),4) | |||||
| @echo "config_UseQt5 = False" >> $@ | |||||
| else | |||||
| @echo "config_UseQt5 = True" >> $@ | |||||
| endif | |||||
| source/includes/config.h: | |||||
| @echo "/* Carla config, auto-generated file */" > $@ | |||||
| @echo "" >> $@ | |||||
| @echo "/* additional audio drivers, Linux only */" >> $@ | |||||
| ifeq ($(HAVE_ALSA),true) | |||||
| @echo "#define HAVE_ALSA" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_ALSA" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||||
| @echo "#define HAVE_PULSEAUDIO" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_PULSEAUDIO" >> $@ | |||||
| endif | |||||
| @echo "" >> $@ | |||||
| @echo "/* optional libs for extra backend features */" >> $@ | |||||
| ifeq ($(HAVE_LIBLO),true) | |||||
| @echo "#define HAVE_LIBLO" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_LIBLO" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_LIBMAGIC),true) | |||||
| @echo "#define HAVE_LIBMAGIC" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_LIBMAGIC" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||||
| @echo "#define HAVE_FLUIDSYNTH" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_FLUIDSYNTH" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||||
| @echo "#define HAVE_LINUXSAMPLER" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_LINUXSAMPLER" >> $@ | |||||
| endif | |||||
| @echo "" >> $@ | |||||
| @echo "/* optional libs for extra plugins and UIs */" >> $@ | |||||
| ifeq ($(HAVE_DGL),true) | |||||
| @echo "#define HAVE_DGL" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_DGL" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_PROJECTM),true) | |||||
| @echo "#define HAVE_PROJECTM" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_PROJECTM" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||||
| @echo "#define HAVE_ZYN_DEPS" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_ZYN_DEPS" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | |||||
| @echo "#define HAVE_ZYN_UI_DEPS" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_ZYN_UI_DEPS" >> $@ | |||||
| endif | |||||
| @echo "" >> $@ | |||||
| @echo "/* extra toolkits/frameworks for plugin UIs (native) */" >> $@ | |||||
| ifeq ($(HAVE_X11),true) | |||||
| @echo "#define HAVE_X11" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_X11" >> $@ | |||||
| endif | |||||
| @echo "" >> $@ | |||||
| @echo "/* extra toolkits/frameworks for plugin UIs (bridges, Linux only) */" >> $@ | |||||
| ifeq ($(HAVE_GTK2),true) | |||||
| @echo "#define HAVE_GTK2" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_GTK2" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_GTK3),true) | |||||
| @echo "#define HAVE_GTK3" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_GTK3" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_QT4),true) | |||||
| @echo "#define HAVE_QT4" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_QT4" >> $@ | |||||
| endif | |||||
| ifeq ($(HAVE_QT5),true) | |||||
| @echo "#define HAVE_QT5" >> $@ | |||||
| else | |||||
| @echo "// #define HAVE_QT5" >> $@ | |||||
| endif | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| # Binaries (native) | # Binaries (native) | ||||
| @@ -81,7 +188,7 @@ ifeq ($(HAVE_QT5),true) | |||||
| ALL_LIBS += $(MODULEDIR)/theme.qt5.a | ALL_LIBS += $(MODULEDIR)/theme.qt5.a | ||||
| endif | endif | ||||
| libs: $(ALL_LIBS) | |||||
| libs: config $(ALL_LIBS) | |||||
| $(MODULEDIR)/carla_engine.a: .FORCE | $(MODULEDIR)/carla_engine.a: .FORCE | ||||
| @$(MAKE) -C source/backend/engine | @$(MAKE) -C source/backend/engine | ||||
| @@ -140,7 +247,7 @@ discovery: libs | |||||
| @$(MAKE) -C source/discovery | @$(MAKE) -C source/discovery | ||||
| ifeq ($(LINUX),true) | ifeq ($(LINUX),true) | ||||
| interposer: | |||||
| interposer: config | |||||
| @$(MAKE) -C source/interposer | @$(MAKE) -C source/interposer | ||||
| else | else | ||||
| interposer: | interposer: | ||||
| @@ -150,7 +257,7 @@ plugin: backend bridges-plugin bridges-ui discovery | |||||
| @$(MAKE) -C source/plugin | @$(MAKE) -C source/plugin | ||||
| ifeq ($(HAVE_QT),true) | ifeq ($(HAVE_QT),true) | ||||
| theme: | |||||
| theme: config | |||||
| @$(MAKE) -C source/theme | @$(MAKE) -C source/theme | ||||
| else | else | ||||
| theme: | theme: | ||||
| @@ -174,7 +281,7 @@ LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a | |||||
| LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a | LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a | ||||
| endif | endif | ||||
| posix32: $(LIBS_POSIX32) | |||||
| posix32: config $(LIBS_POSIX32) | |||||
| $(MAKE) -C source/bridges-plugin posix32 | $(MAKE) -C source/bridges-plugin posix32 | ||||
| $(MAKE) -C source/discovery posix32 | $(MAKE) -C source/discovery posix32 | ||||
| @@ -196,7 +303,7 @@ LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a | |||||
| LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a | LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a | ||||
| endif | endif | ||||
| posix64: $(LIBS_POSIX64) | |||||
| posix64: config $(LIBS_POSIX64) | |||||
| $(MAKE) -C source/bridges-plugin posix64 | $(MAKE) -C source/bridges-plugin posix64 | ||||
| $(MAKE) -C source/discovery posix64 | $(MAKE) -C source/discovery posix64 | ||||
| @@ -214,7 +321,7 @@ LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a | |||||
| LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a | LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a | ||||
| LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a | LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a | ||||
| win32: $(LIBS_WIN32) | |||||
| win32: config $(LIBS_WIN32) | |||||
| $(MAKE) -C source/bridges-plugin win32 | $(MAKE) -C source/bridges-plugin win32 | ||||
| $(MAKE) -C source/discovery win32 | $(MAKE) -C source/discovery win32 | ||||
| @@ -232,18 +339,18 @@ LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a | |||||
| LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a | LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a | ||||
| LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a | LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a | ||||
| win64: $(LIBS_WIN64) | |||||
| win64: config $(LIBS_WIN64) | |||||
| $(MAKE) -C source/bridges-plugin win64 | $(MAKE) -C source/bridges-plugin win64 | ||||
| $(MAKE) -C source/discovery win64 | $(MAKE) -C source/discovery win64 | ||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| # Binaries (wine) | # Binaries (wine) | ||||
| wine32: | |||||
| wine32: config | |||||
| $(MAKE) -C source/jackbridge wine32 | $(MAKE) -C source/jackbridge wine32 | ||||
| cp -f $(MODULEDIR)/jackbridge-wine32.dll.so $(BINDIR)/jackbridge-wine32.dll | cp -f $(MODULEDIR)/jackbridge-wine32.dll.so $(BINDIR)/jackbridge-wine32.dll | ||||
| wine64: | |||||
| wine64: config | |||||
| $(MAKE) -C source/jackbridge wine64 | $(MAKE) -C source/jackbridge wine64 | ||||
| cp -f $(MODULEDIR)/jackbridge-wine64.dll.so $(BINDIR)/jackbridge-wine64.dll | cp -f $(MODULEDIR)/jackbridge-wine64.dll.so $(BINDIR)/jackbridge-wine64.dll | ||||
| @@ -293,18 +400,9 @@ RES = \ | |||||
| bin/resources/ui_carla_settings.py \ | bin/resources/ui_carla_settings.py \ | ||||
| bin/resources/ui_carla_settings_driver.py \ | bin/resources/ui_carla_settings_driver.py \ | ||||
| bin/resources/ui_inputdialog_value.py \ | bin/resources/ui_inputdialog_value.py \ | ||||
| source/carla_config.py \ | |||||
| source/resources_rc.py | source/resources_rc.py | ||||
| RES: $(RES) | |||||
| source/carla_config.py: | |||||
| @echo "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n" > $@ | |||||
| ifeq ($(DEFAULT_QT),4) | |||||
| @echo "config_UseQt5 = False" >> $@ | |||||
| else | |||||
| @echo "config_UseQt5 = True" >> $@ | |||||
| endif | |||||
| RES: config $(RES) | |||||
| source/resources_rc.py: resources/resources.qrc resources/*/*.png resources/*/*.svg | source/resources_rc.py: resources/resources.qrc resources/*/*.png resources/*/*.svg | ||||
| $(PYRCC) $< -o $@ | $(PYRCC) $< -o $@ | ||||
| @@ -339,7 +437,7 @@ UIs = \ | |||||
| source/ui_carla_settings_driver.py \ | source/ui_carla_settings_driver.py \ | ||||
| source/ui_inputdialog_value.py | source/ui_inputdialog_value.py | ||||
| UI: $(UIs) | |||||
| UI: config $(UIs) | |||||
| source/ui_%.py: resources/ui/%.ui | source/ui_%.py: resources/ui/%.ui | ||||
| $(PYUIC) $< -o $@ | $(PYUIC) $< -o $@ | ||||
| @@ -360,7 +458,7 @@ WIDGETS = \ | |||||
| source/pixmapkeyboard.py \ | source/pixmapkeyboard.py \ | ||||
| source/racklistwidget.py | source/racklistwidget.py | ||||
| WIDGETS: $(WIDGETS) | |||||
| WIDGETS: config $(WIDGETS) | |||||
| source/%.py: source/widgets/%.py | source/%.py: source/widgets/%.py | ||||
| $(LINK) widgets/$*.py $@ | $(LINK) widgets/$*.py $@ | ||||
| @@ -378,6 +476,7 @@ clean: | |||||
| rm -f $(UIs) | rm -f $(UIs) | ||||
| rm -f $(WIDGETS) | rm -f $(WIDGETS) | ||||
| rm -f *~ source/*~ source/*.pyc source/*_rc.py source/ui_*.py | rm -f *~ source/*~ source/*.pyc source/*_rc.py source/ui_*.py | ||||
| rm -f source/carla_config.py source/includes/config.h | |||||
| distclean: clean | distclean: clean | ||||
| rm -f bin/*.dll bin/*.so | rm -f bin/*.dll bin/*.so | ||||
| @@ -756,21 +855,21 @@ ifeq ($(HAVE_QT5),true) | |||||
| else | else | ||||
| @echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)" | @echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)" | ||||
| endif | endif | ||||
| ifeq ($(MACOS),true) | |||||
| @echo "Cocoa: $(ANS_YES) (direct+bridge)" | |||||
| else | |||||
| @echo "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)" | |||||
| endif | |||||
| ifeq ($(WIN32),true) | |||||
| @echo "Windows: $(ANS_YES) (direct+bridge)" | |||||
| else | |||||
| @echo "Windows: $(ANS_NO) $(mZ)Windows only$(mE)" | |||||
| endif | |||||
| ifeq ($(HAVE_X11),true) | ifeq ($(HAVE_X11),true) | ||||
| @echo "X11: $(ANS_YES) (direct+bridge)" | @echo "X11: $(ANS_YES) (direct+bridge)" | ||||
| else | else | ||||
| @echo "X11: $(ANS_NO) $(mS)X11 missing$(mE)" | @echo "X11: $(ANS_NO) $(mS)X11 missing$(mE)" | ||||
| endif | endif | ||||
| # ifeq ($(MACOS),true) | |||||
| # @echo "Cocoa: $(ANS_YES) (direct+bridge)" | |||||
| # else | |||||
| # @echo "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)" | |||||
| # endif | |||||
| # ifeq ($(WIN32),true) | |||||
| # @echo "Windows: $(ANS_YES) (direct+bridge)" | |||||
| # else | |||||
| # @echo "Windows: $(ANS_NO) $(mZ)Windows only$(mE)" | |||||
| # endif | |||||
| @echo "" | @echo "" | ||||
| @echo "$(tS)---> File formats: $(tE)" | @echo "$(tS)---> File formats: $(tE)" | ||||
| @@ -804,6 +903,11 @@ ifeq ($(HAVE_DGL),true) | |||||
| else | else | ||||
| @echo "DISTRHO Plugins:$(ANS_YES) (without UI)" | @echo "DISTRHO Plugins:$(ANS_YES) (without UI)" | ||||
| endif | endif | ||||
| ifeq ($(HAVE_PROJECTM),true) | |||||
| @echo "DISTRHO ProM: $(ANS_YES)" | |||||
| else | |||||
| @echo "DISTRHO ProM: $(ANS_NO) (missing libprojectM)" | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | ifeq ($(HAVE_ZYN_DEPS),true) | ||||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | ifeq ($(HAVE_ZYN_UI_DEPS),true) | ||||
| @echo "ZynAddSubFX: $(ANS_YES) (with UI)" | @echo "ZynAddSubFX: $(ANS_YES) (with UI)" | ||||
| @@ -142,15 +142,6 @@ endif | |||||
| endif | endif | ||||
| endif | endif | ||||
| # -------------------------------------------------------------- | |||||
| # Check for required libs | |||||
| ifeq ($(LINUX),true) | |||||
| ifeq (,$(wildcard /usr/include/magic.h)) | |||||
| $(error libmagic missing, cannot continue) | |||||
| endif | |||||
| endif | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Check for optional libs (required by backend or bridges) | # Check for optional libs (required by backend or bridges) | ||||
| @@ -173,6 +164,13 @@ HAVE_QT5 = $(shell pkg-config --exists Qt5Core Qt5Gui Qt5Widgets && ech | |||||
| HAVE_LIBLO = $(shell pkg-config --exists liblo && echo true) | HAVE_LIBLO = $(shell pkg-config --exists liblo && echo true) | ||||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | ||||
| HAVE_LINUXSAMPLER = $(shell pkg-config --atleast-version=1.0.0.svn41 linuxsampler && echo true) | HAVE_LINUXSAMPLER = $(shell pkg-config --atleast-version=1.0.0.svn41 linuxsampler && echo true) | ||||
| HAVE_PROJECTM = $(shell pkg-config --exists libprojectM && echo true) | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml zlib && echo true) | |||||
| HAVE_ZYN_UI_DEPS = $(shell pkg-config --exists ntk_images ntk && echo true) | |||||
| # libmagic doesn't have a pkg-config file, so we need to call the compiler to test it | |||||
| HAVE_LIBMAGIC = $(shell echo '\#include <magic.h>' | $(CC) $(CFLAGS) -x c -w -c - -o .libmagic-tmp 2>/dev/null && echo true) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Set Qt tools | # Set Qt tools | ||||
| @@ -247,35 +245,9 @@ else | |||||
| DEFAULT_QT ?= 5 | DEFAULT_QT ?= 5 | ||||
| endif | endif | ||||
| # -------------------------------------------------------------- | |||||
| # Check for optional libs (required by internal plugins) | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml zlib && echo true) | |||||
| HAVE_ZYN_UI_DEPS = $(shell pkg-config --exists ntk_images ntk && echo true) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Set base defines | # Set base defines | ||||
| ifeq ($(HAVE_DGL),true) | |||||
| BASE_FLAGS += -DHAVE_DGL | |||||
| endif | |||||
| ifeq ($(HAVE_LIBLO),true) | |||||
| BASE_FLAGS += -DHAVE_LIBLO | |||||
| endif | |||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||||
| BASE_FLAGS += -DHAVE_FLUIDSYNTH | |||||
| endif | |||||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||||
| BASE_FLAGS += -DHAVE_LINUXSAMPLER | |||||
| endif | |||||
| ifeq ($(HAVE_X11),true) | |||||
| BASE_FLAGS += -DHAVE_X11 | |||||
| endif | |||||
| ifeq ($(CARLA_VESTIGE_HEADER),true) | ifeq ($(CARLA_VESTIGE_HEADER),true) | ||||
| BASE_FLAGS += -DVESTIGE_HEADER | BASE_FLAGS += -DVESTIGE_HEADER | ||||
| endif | endif | ||||
| @@ -298,6 +270,11 @@ LINUXSAMPLER_FLAGS = $(shell pkg-config --cflags linuxsampler) -DIS_CPP11=1 -Wno | |||||
| LINUXSAMPLER_LIBS = $(shell pkg-config --libs linuxsampler) | LINUXSAMPLER_LIBS = $(shell pkg-config --libs linuxsampler) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_PROJECTM),true) | |||||
| PROJECTM_FLAGS = $(shell pkg-config --cflags libprojectM) | |||||
| PROJECTM_LIBS = $(shell pkg-config --libs libprojectM) | |||||
| endif | |||||
| ifeq ($(HAVE_X11),true) | ifeq ($(HAVE_X11),true) | ||||
| X11_FLAGS = $(shell pkg-config --cflags x11) | X11_FLAGS = $(shell pkg-config --cflags x11) | ||||
| X11_LIBS = $(shell pkg-config --libs x11) | X11_LIBS = $(shell pkg-config --libs x11) | ||||
| @@ -367,10 +344,8 @@ endif | |||||
| # Set libs stuff (part 3) | # Set libs stuff (part 3) | ||||
| ifeq ($(HAVE_ZYN_DEPS),true) | ifeq ($(HAVE_ZYN_DEPS),true) | ||||
| NATIVE_PLUGINS_FLAGS += -DWANT_ZYNADDSUBFX | |||||
| NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs fftw3 mxml zlib) | NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs fftw3 mxml zlib) | ||||
| ifeq ($(HAVE_ZYN_UI_DEPS),true) | ifeq ($(HAVE_ZYN_UI_DEPS),true) | ||||
| NATIVE_PLUGINS_FLAGS += -DWANT_ZYNADDSUBFX_UI | |||||
| NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs ntk_images ntk) | NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs ntk_images ntk) | ||||
| endif | endif | ||||
| endif | endif | ||||
| @@ -65,7 +65,6 @@ STANDALONE_LINK_FLAGS = $(JACKBRIDGE_LIBS) | |||||
| STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | ||||
| STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | ||||
| STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | STANDALONE_LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
| STANDALONE_LINK_FLAGS += $(LIBLO_LIBS) | |||||
| STANDALONE_LINK_FLAGS += $(LILV_LIBS) | STANDALONE_LINK_FLAGS += $(LILV_LIBS) | ||||
| STANDALONE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | STANDALONE_LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | ||||
| STANDALONE_LINK_FLAGS += $(RTMEMPOOL_LIBS) | STANDALONE_LINK_FLAGS += $(RTMEMPOOL_LIBS) | ||||
| @@ -85,8 +84,12 @@ STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS) | |||||
| STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) | STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_DGL),true) | |||||
| STANDALONE_LINK_FLAGS += $(DGL_LIBS) | |||||
| ifeq ($(HAVE_LIBLO),true) | |||||
| STANDALONE_LINK_FLAGS += $(LIBLO_LIBS) | |||||
| endif | |||||
| ifeq ($(HAVE_LIBMAGIC),true) | |||||
| STANDALONE_LINK_FLAGS += -lmagic | |||||
| endif | endif | ||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | ifeq ($(HAVE_FLUIDSYNTH),true) | ||||
| @@ -97,12 +100,12 @@ ifeq ($(HAVE_LINUXSAMPLER),true) | |||||
| STANDALONE_LINK_FLAGS += $(LINUXSAMPLER_LIBS) | STANDALONE_LINK_FLAGS += $(LINUXSAMPLER_LIBS) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_X11),true) | |||||
| STANDALONE_LINK_FLAGS += $(X11_LIBS) | |||||
| ifeq ($(HAVE_DGL),true) | |||||
| STANDALONE_LINK_FLAGS += $(DGL_LIBS) | |||||
| endif | endif | ||||
| ifeq ($(UNIX),true) | |||||
| STANDALONE_LINK_FLAGS += -lmagic | |||||
| ifeq ($(HAVE_X11),true) | |||||
| STANDALONE_LINK_FLAGS += $(X11_LIBS) | |||||
| endif | endif | ||||
| UTILS_LINK_FLAGS = $(JUCE_AUDIO_BASICS_LIBS) | UTILS_LINK_FLAGS = $(JUCE_AUDIO_BASICS_LIBS) | ||||
| @@ -1448,7 +1448,7 @@ protected: | |||||
| event.ctrl.convertToMidiData(event.channel, size, data); | event.ctrl.convertToMidiData(event.channel, size, data); | ||||
| CARLA_SAFE_ASSERT_CONTINUE(size > 0 && size <= 3); | CARLA_SAFE_ASSERT_CONTINUE(size > 0 && size <= 3); | ||||
| if (curMidiDataPos + 1 /* size*/ + 4 /* time */ + size >= kBridgeRtClientDataMidiOutSize) | |||||
| if (curMidiDataPos + 1U /* size*/ + 4U /* time */ + size >= kBridgeRtClientDataMidiOutSize) | |||||
| break; | break; | ||||
| // set size | // set size | ||||
| @@ -1462,7 +1462,7 @@ protected: | |||||
| for (uint8_t j=0; j<size; ++j) | for (uint8_t j=0; j<size; ++j) | ||||
| *midiData++ = data[j]; | *midiData++ = data[j]; | ||||
| curMidiDataPos += 1 /* size*/ + 4 /* time */ + size; | |||||
| curMidiDataPos += 1U /* size*/ + 4U /* time */ + size; | |||||
| } | } | ||||
| else if (event.type == kEngineEventTypeMidi) | else if (event.type == kEngineEventTypeMidi) | ||||
| { | { | ||||
| @@ -1486,7 +1486,7 @@ protected: | |||||
| for (uint8_t j=1; j<_midiEvent.size; ++j) | for (uint8_t j=1; j<_midiEvent.size; ++j) | ||||
| *midiData++ = _midiData[j]; | *midiData++ = _midiData[j]; | ||||
| curMidiDataPos += 1 /* size*/ + 4 /* time */ + _midiEvent.size; | |||||
| curMidiDataPos += 1U /* size*/ + 4U /* time */ + _midiEvent.size; | |||||
| } | } | ||||
| } | } | ||||
| @@ -15,6 +15,8 @@ | |||||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | * For a full copy of the GNU General Public License see the doc/GPL.txt file. | ||||
| */ | */ | ||||
| #include "CarlaDefines.h" | |||||
| #ifdef HAVE_LIBLO | #ifdef HAVE_LIBLO | ||||
| #include "CarlaEngine.hpp" | #include "CarlaEngine.hpp" | ||||
| @@ -18,6 +18,8 @@ | |||||
| #ifndef CARLA_ENGINE_OSC_HPP_INCLUDED | #ifndef CARLA_ENGINE_OSC_HPP_INCLUDED | ||||
| #define CARLA_ENGINE_OSC_HPP_INCLUDED | #define CARLA_ENGINE_OSC_HPP_INCLUDED | ||||
| #include "CarlaDefines.h" | |||||
| #ifdef HAVE_LIBLO | #ifdef HAVE_LIBLO | ||||
| #include "CarlaBackend.h" | #include "CarlaBackend.h" | ||||
| @@ -15,6 +15,8 @@ | |||||
| * For a full copy of the GNU General Public License see the doc/GPL.txt file. | * For a full copy of the GNU General Public License see the doc/GPL.txt file. | ||||
| */ | */ | ||||
| #include "CarlaDefines.h" | |||||
| #ifdef HAVE_LIBLO | #ifdef HAVE_LIBLO | ||||
| #include "CarlaBackendUtils.hpp" | #include "CarlaBackendUtils.hpp" | ||||
| @@ -1676,7 +1676,7 @@ public: | |||||
| midiData = midiData + 1; | midiData = midiData + 1; | ||||
| // get time as 32bit | // get time as 32bit | ||||
| time = *(uint32_t*)midiData; | |||||
| time = *(const uint32_t*)midiData; | |||||
| // advance 32 bits (4 bytes) | // advance 32 bits (4 bytes) | ||||
| midiData = midiData + 4; | midiData = midiData + 4; | ||||
| @@ -1689,7 +1689,7 @@ public: | |||||
| pData->event.portOut->writeMidiEvent(time, size, data); | pData->event.portOut->writeMidiEvent(time, size, data); | ||||
| read += 1 /* size*/ + 4 /* time */ + size; | |||||
| read += 1U /* size*/ + 4U /* time */ + size; | |||||
| } | } | ||||
| } // End of Control and MIDI Output | } // End of Control and MIDI Output | ||||
| @@ -411,7 +411,7 @@ public: | |||||
| void setCtrlChannel(const int8_t channel, const bool sendOsc, const bool sendCallback) noexcept override | void setCtrlChannel(const int8_t channel, const bool sendOsc, const bool sendCallback) noexcept override | ||||
| { | { | ||||
| if (channel >= 0 && channel < MAX_MIDI_CHANNELS) | if (channel >= 0 && channel < MAX_MIDI_CHANNELS) | ||||
| pData->prog.current = fCurProgs[channel]; | |||||
| pData->prog.current = static_cast<int32_t>(fCurProgs[channel]); | |||||
| CarlaPlugin::setCtrlChannel(channel, sendOsc, sendCallback); | CarlaPlugin::setCtrlChannel(channel, sendOsc, sendCallback); | ||||
| } | } | ||||
| @@ -438,7 +438,7 @@ public: | |||||
| if (programList.size() == MAX_MIDI_CHANNELS) | if (programList.size() == MAX_MIDI_CHANNELS) | ||||
| { | { | ||||
| int8_t channel = 0; | |||||
| uint8_t channel = 0; | |||||
| for (juce::String *it=programList.begin(), *end=programList.end(); it != end; ++it) | for (juce::String *it=programList.begin(), *end=programList.end(); it != end; ++it) | ||||
| { | { | ||||
| const int index(it->getIntValue()); | const int index(it->getIntValue()); | ||||
| @@ -464,15 +464,15 @@ public: | |||||
| const int8_t channel(kIsGIG ? pData->ctrlChannel : int8_t(0)); | const int8_t channel(kIsGIG ? pData->ctrlChannel : int8_t(0)); | ||||
| if (index >= 0 && channel >= 0) | if (index >= 0 && channel >= 0) | ||||
| setProgramInternal(static_cast<uint>(index), channel, sendCallback, false); | |||||
| setProgramInternal(static_cast<uint>(index), static_cast<uint8_t>(channel), sendCallback, false); | |||||
| CarlaPlugin::setProgram(index, sendGui, sendOsc, sendCallback); | CarlaPlugin::setProgram(index, sendGui, sendOsc, sendCallback); | ||||
| } | } | ||||
| void setProgramInternal(const uint32_t index, const int8_t channel, const bool sendCallback, const bool inRtContent) noexcept | |||||
| void setProgramInternal(const uint32_t index, const uint8_t channel, const bool sendCallback, const bool inRtContent) noexcept | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN(index < pData->prog.count,); | CARLA_SAFE_ASSERT_RETURN(index < pData->prog.count,); | ||||
| CARLA_SAFE_ASSERT_RETURN(channel >= 0 && channel < MAX_MIDI_CHANNELS,); | |||||
| CARLA_SAFE_ASSERT_RETURN(channel < MAX_MIDI_CHANNELS,); | |||||
| if (fCurProgs[channel] == index) | if (fCurProgs[channel] == index) | ||||
| return; | return; | ||||
| @@ -500,12 +500,14 @@ public: | |||||
| if (pData->ctrlChannel == channel) | if (pData->ctrlChannel == channel) | ||||
| { | { | ||||
| pData->prog.current = index; | |||||
| const int32_t iindex(static_cast<int32_t>(index)); | |||||
| pData->prog.current = iindex; | |||||
| if (inRtContent) | if (inRtContent) | ||||
| pData->postponeRtEvent(kPluginPostRtEventProgramChange, static_cast<int32_t>(index), 0, 0.0f); | |||||
| pData->postponeRtEvent(kPluginPostRtEventProgramChange, iindex, 0, 0.0f); | |||||
| else if (sendCallback) | else if (sendCallback) | ||||
| pData->engine->callback(ENGINE_CALLBACK_PROGRAM_CHANGED, pData->id, index, 0, 0.0f, nullptr); | |||||
| pData->engine->callback(ENGINE_CALLBACK_PROGRAM_CHANGED, pData->id, iindex, 0, 0.0f, nullptr); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1042,8 +1044,19 @@ public: | |||||
| // -------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------- | ||||
| // Parameter outputs | // Parameter outputs | ||||
| fParamBuffers[LinuxSamplerDiskStreamCount] = fEngineChannels[0]->GetDiskStreamCount(); | |||||
| fParamBuffers[LinuxSamplerVoiceCount] = fEngineChannels[0]->GetVoiceCount(); | |||||
| uint diskStreamCount=0, voiceCount=0; | |||||
| for (uint i=0; i<kMaxChannels; ++i) | |||||
| { | |||||
| LinuxSampler::EngineChannel* const engineChannel(fEngineChannels[i]); | |||||
| CARLA_SAFE_ASSERT_CONTINUE(engineChannel != nullptr); | |||||
| diskStreamCount += engineChannel->GetDiskStreamCount(); | |||||
| /**/ voiceCount += engineChannel->GetVoiceCount(); | |||||
| } | |||||
| fParamBuffers[LinuxSamplerDiskStreamCount] = static_cast<float>(diskStreamCount); | |||||
| fParamBuffers[LinuxSamplerVoiceCount] = static_cast<float>(voiceCount); | |||||
| } | } | ||||
| bool processSingle(float** const outBuffer, const uint32_t frames, const uint32_t timeOffset) | bool processSingle(float** const outBuffer, const uint32_t frames, const uint32_t timeOffset) | ||||
| @@ -1198,7 +1211,7 @@ public: | |||||
| samplerChannel->SetEngineType(kIsGIG ? "GIG" : "SFZ"); | samplerChannel->SetEngineType(kIsGIG ? "GIG" : "SFZ"); | ||||
| samplerChannel->SetAudioOutputDevice(&fAudioOutputDevice); | samplerChannel->SetAudioOutputDevice(&fAudioOutputDevice); | ||||
| samplerChannel->SetMidiInputDevice(&fMidiInputDevice); | |||||
| //samplerChannel->SetMidiInputDevice(&fMidiInputDevice); | |||||
| samplerChannel->SetMidiInputChannel(kUses16Outs ? static_cast<LinuxSampler::midi_chan_t>(i) : LinuxSampler::midi_chan_all); | samplerChannel->SetMidiInputChannel(kUses16Outs ? static_cast<LinuxSampler::midi_chan_t>(i) : LinuxSampler::midi_chan_all); | ||||
| //samplerChannel->Connect(fMidiInputPort); | //samplerChannel->Connect(fMidiInputPort); | ||||
| @@ -1208,6 +1221,7 @@ public: | |||||
| engineChannel->Pan(0.0f); | engineChannel->Pan(0.0f); | ||||
| engineChannel->Volume(kIsGIG ? LinuxSampler::kVolumeMax/10.0f : LinuxSampler::kVolumeMax); // FIXME | engineChannel->Volume(kIsGIG ? LinuxSampler::kVolumeMax/10.0f : LinuxSampler::kVolumeMax); // FIXME | ||||
| engineChannel->SetMidiInstrumentMapToDefault(); | engineChannel->SetMidiInstrumentMapToDefault(); | ||||
| engineChannel->Connect(fMidiInputPort); | |||||
| if (kUses16Outs) | if (kUses16Outs) | ||||
| { | { | ||||
| @@ -19,7 +19,8 @@ | |||||
| #include <gtk/gtk.h> | #include <gtk/gtk.h> | ||||
| #ifdef CARLA_OS_LINUX | |||||
| #if defined(CARLA_OS_LINUX) && defined(HAVE_X11) | |||||
| # define USE_CUSTOM_X11_METHODS | |||||
| # include <gdk/gdkx.h> | # include <gdk/gdkx.h> | ||||
| #endif | #endif | ||||
| @@ -225,10 +226,11 @@ protected: | |||||
| CARLA_SAFE_ASSERT_RETURN(fWindow != nullptr,); | CARLA_SAFE_ASSERT_RETURN(fWindow != nullptr,); | ||||
| carla_debug("CarlaBridgeToolkitGtk::setTransient(0x" P_UINTPTR ")", winId); | carla_debug("CarlaBridgeToolkitGtk::setTransient(0x" P_UINTPTR ")", winId); | ||||
| #ifdef USE_CUSTOM_X11_METHODS | |||||
| GdkWindow* const gdkWindow(gtk_widget_get_window(fWindow)); | GdkWindow* const gdkWindow(gtk_widget_get_window(fWindow)); | ||||
| CARLA_SAFE_ASSERT_RETURN(gdkWindow != nullptr,); | CARLA_SAFE_ASSERT_RETURN(gdkWindow != nullptr,); | ||||
| #ifdef BRIDGE_GTK3 | |||||
| # ifdef BRIDGE_GTK3 | |||||
| GdkDisplay* const gdkDisplay(gdk_window_get_display(gdkWindow)); | GdkDisplay* const gdkDisplay(gdk_window_get_display(gdkWindow)); | ||||
| CARLA_SAFE_ASSERT_RETURN(gdkDisplay != nullptr,); | CARLA_SAFE_ASSERT_RETURN(gdkDisplay != nullptr,); | ||||
| @@ -237,15 +239,16 @@ protected: | |||||
| const ::XID xid(gdk_x11_window_get_xid(gdkWindow)); | const ::XID xid(gdk_x11_window_get_xid(gdkWindow)); | ||||
| CARLA_SAFE_ASSERT_RETURN(xid != 0,); | CARLA_SAFE_ASSERT_RETURN(xid != 0,); | ||||
| #else | |||||
| # else | |||||
| ::Display* const display(gdk_x11_drawable_get_xdisplay(gdkWindow)); | ::Display* const display(gdk_x11_drawable_get_xdisplay(gdkWindow)); | ||||
| CARLA_SAFE_ASSERT_RETURN(display != nullptr,); | CARLA_SAFE_ASSERT_RETURN(display != nullptr,); | ||||
| const ::XID xid(gdk_x11_drawable_get_xid(gdkWindow)); | const ::XID xid(gdk_x11_drawable_get_xid(gdkWindow)); | ||||
| CARLA_SAFE_ASSERT_RETURN(xid != 0,); | CARLA_SAFE_ASSERT_RETURN(xid != 0,); | ||||
| #endif | |||||
| # endif | |||||
| XSetTransientForHint(display, xid, static_cast< ::Window>(winId)); | XSetTransientForHint(display, xid, static_cast< ::Window>(winId)); | ||||
| #endif | |||||
| } | } | ||||
| // --------------------------------------------------------------------- | // --------------------------------------------------------------------- | ||||
| @@ -30,7 +30,8 @@ | |||||
| # include <QtGui/QMainWindow> | # include <QtGui/QMainWindow> | ||||
| #endif | #endif | ||||
| #if defined(CARLA_OS_LINUX) && QT_VERSION < QT_VERSION_CHECK(5, 0, 0) | |||||
| #if defined(CARLA_OS_LINUX) && defined(HAVE_X11) && QT_VERSION < QT_VERSION_CHECK(5, 0, 0) | |||||
| # define USE_CUSTOM_X11_METHODS | |||||
| # include <QtGui/QX11Info> | # include <QtGui/QX11Info> | ||||
| # include <X11/Xlib.h> | # include <X11/Xlib.h> | ||||
| #endif | #endif | ||||
| @@ -116,7 +117,7 @@ public: | |||||
| if (options.transientWindowId != 0) | if (options.transientWindowId != 0) | ||||
| { | { | ||||
| #if defined(CARLA_OS_LINUX) && QT_VERSION < QT_VERSION_CHECK(5, 0, 0) | |||||
| #ifdef USE_CUSTOM_X11_METHODS | |||||
| XSetTransientForHint(QX11Info::display(), static_cast< ::Window>(fWindow->winId()), static_cast< ::Window>(options.transientWindowId)); | XSetTransientForHint(QX11Info::display(), static_cast< ::Window>(fWindow->winId()), static_cast< ::Window>(options.transientWindowId)); | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -26,9 +26,6 @@ | |||||
| #include "lv2/atom.h" | #include "lv2/atom.h" | ||||
| #include "lv2/urid.h" | #include "lv2/urid.h" | ||||
| //#include "CarlaBridgeToolkit.hpp" | |||||
| //#include "CarlaLibUtils.hpp" | |||||
| CARLA_BRIDGE_START_NAMESPACE | CARLA_BRIDGE_START_NAMESPACE | ||||
| /*! | /*! | ||||
| @@ -53,10 +53,12 @@ BUILD_WINDOWS_FLAGS = $(BUILD_CXX_FLAGS) -DBRIDGE_HWND | |||||
| LINK_WINDOWS_FLAGS = $(LINK_FLAGS) -static -mwindows | LINK_WINDOWS_FLAGS = $(LINK_FLAGS) -static -mwindows | ||||
| ifeq ($(LINUX),true) | ifeq ($(LINUX),true) | ||||
| ifeq ($(HAVE_X11),true) | |||||
| LINK_GTK2_FLAGS += -lX11 | LINK_GTK2_FLAGS += -lX11 | ||||
| LINK_GTK3_FLAGS += -lX11 | LINK_GTK3_FLAGS += -lX11 | ||||
| LINK_QT4_FLAGS += -lX11 | LINK_QT4_FLAGS += -lX11 | ||||
| endif | endif | ||||
| endif | |||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -18,10 +18,8 @@ | |||||
| #ifndef CARLA_DEFINES_H_INCLUDED | #ifndef CARLA_DEFINES_H_INCLUDED | ||||
| #define CARLA_DEFINES_H_INCLUDED | #define CARLA_DEFINES_H_INCLUDED | ||||
| /* IDE Helper */ | |||||
| #ifndef REAL_BUILD | |||||
| # include "config.h" | |||||
| #endif | |||||
| /* Configuration */ | |||||
| #include "config.h" | |||||
| /* Compatibility with non-clang compilers */ | /* Compatibility with non-clang compilers */ | ||||
| #ifndef __has_feature | #ifndef __has_feature | ||||
| @@ -66,6 +66,9 @@ END_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXPORT | |||||
| void carla_register_native_plugin_distrho_3bandeq(); | |||||
| CARLA_EXPORT | CARLA_EXPORT | ||||
| void carla_register_native_plugin_distrho_3bandeq() | void carla_register_native_plugin_distrho_3bandeq() | ||||
| { | { | ||||
| @@ -66,6 +66,9 @@ END_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXPORT | |||||
| void carla_register_native_plugin_distrho_3bandsplitter(); | |||||
| CARLA_EXPORT | CARLA_EXPORT | ||||
| void carla_register_native_plugin_distrho_3bandsplitter() | void carla_register_native_plugin_distrho_3bandsplitter() | ||||
| { | { | ||||
| @@ -67,6 +67,9 @@ END_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXPORT | |||||
| void carla_register_native_plugin_distrho_mverb(); | |||||
| CARLA_EXPORT | CARLA_EXPORT | ||||
| void carla_register_native_plugin_distrho_mverb() | void carla_register_native_plugin_distrho_mverb() | ||||
| { | { | ||||
| @@ -66,6 +66,9 @@ END_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXPORT | |||||
| void carla_register_native_plugin_distrho_nekobi(); | |||||
| CARLA_EXPORT | CARLA_EXPORT | ||||
| void carla_register_native_plugin_distrho_nekobi() | void carla_register_native_plugin_distrho_nekobi() | ||||
| { | { | ||||
| @@ -66,6 +66,9 @@ END_NAMESPACE_DISTRHO | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_EXPORT | |||||
| void carla_register_native_plugin_distrho_pingpongpan(); | |||||
| CARLA_EXPORT | CARLA_EXPORT | ||||
| void carla_register_native_plugin_distrho_pingpongpan() | void carla_register_native_plugin_distrho_pingpongpan() | ||||
| { | { | ||||
| @@ -60,7 +60,6 @@ LINK_FLAGS += $(JACKBRIDGE_LIBS) | |||||
| LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) | ||||
| LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | LINK_FLAGS += $(JUCE_AUDIO_FORMATS_LIBS) | ||||
| LINK_FLAGS += $(JUCE_CORE_LIBS) | LINK_FLAGS += $(JUCE_CORE_LIBS) | ||||
| LINK_FLAGS += $(LIBLO_LIBS) | |||||
| LINK_FLAGS += $(LILV_LIBS) | LINK_FLAGS += $(LILV_LIBS) | ||||
| LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | LINK_FLAGS += $(NATIVE_PLUGINS_LIBS) | ||||
| LINK_FLAGS += $(RTMEMPOOL_LIBS) | LINK_FLAGS += $(RTMEMPOOL_LIBS) | ||||
| @@ -77,8 +76,12 @@ ifeq ($(MACOS),true) | |||||
| LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_DGL),true) | |||||
| LINK_FLAGS += $(DGL_LIBS) | |||||
| ifeq ($(HAVE_LIBLO),true) | |||||
| LINK_FLAGS += $(LIBLO_LIBS) | |||||
| endif | |||||
| ifeq ($(HAVE_LIBMAGIC),true) | |||||
| LINK_FLAGS += -lmagic | |||||
| endif | endif | ||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | ifeq ($(HAVE_FLUIDSYNTH),true) | ||||
| @@ -89,12 +92,12 @@ ifeq ($(HAVE_LINUXSAMPLER),true) | |||||
| LINK_FLAGS += $(LINUXSAMPLER_LIBS) | LINK_FLAGS += $(LINUXSAMPLER_LIBS) | ||||
| endif | endif | ||||
| ifeq ($(HAVE_X11),true) | |||||
| LINK_FLAGS += $(X11_LIBS) | |||||
| ifeq ($(HAVE_DGL),true) | |||||
| LINK_FLAGS += $(DGL_LIBS) | |||||
| endif | endif | ||||
| ifeq ($(UNIX),true) | |||||
| LINK_FLAGS += -lmagic | |||||
| ifeq ($(HAVE_X11),true) | |||||
| LINK_FLAGS += $(X11_LIBS) | |||||
| endif | endif | ||||
| # ---------------------------------------------------------------------------------------------------------------------------- | # ---------------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -21,13 +21,13 @@ | |||||
| #include "CarlaBackend.h" | #include "CarlaBackend.h" | ||||
| #include "CarlaUtils.hpp" | #include "CarlaUtils.hpp" | ||||
| #if defined(CARLA_OS_UNIX) && ! defined(BUILD_BRIDGE) | |||||
| # include "magic.h" | |||||
| #if defined(HAVE_LIBMAGIC) && ! defined(BUILD_BRIDGE) | |||||
| # include <magic.h> | |||||
| #endif | #endif | ||||
| CARLA_BACKEND_START_NAMESPACE | CARLA_BACKEND_START_NAMESPACE | ||||
| #if defined(CARLA_OS_UNIX) && ! defined(BUILD_BRIDGE) | |||||
| #if defined(HAVE_LIBMAGIC) && ! defined(BUILD_BRIDGE) | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| class CarlaMagic | class CarlaMagic | ||||
| @@ -72,7 +72,7 @@ BinaryType getBinaryTypeFromFile(const char* const filename) | |||||
| if (filename == nullptr || filename[0] == '\0') | if (filename == nullptr || filename[0] == '\0') | ||||
| return BINARY_NATIVE; | return BINARY_NATIVE; | ||||
| #if defined(CARLA_OS_UNIX) && ! defined(BUILD_BRIDGE) | |||||
| #if defined(HAVE_LIBMAGIC) && ! defined(BUILD_BRIDGE) | |||||
| static const CarlaMagic magic; | static const CarlaMagic magic; | ||||
| const char* const output(magic.getFileDescription(filename)); | const char* const output(magic.getFileDescription(filename)); | ||||