carla/Makefile

808 lines
26 KiB
Makefile
Raw Normal View History

2013-01-19 18:43:37 +02:00
#!/usr/bin/make -f
# Makefile for Carla #
2013-03-13 16:48:35 +02:00
# ------------------ #
2013-01-19 18:43:37 +02:00
# Created by falkTX
#
2013-06-01 03:20:00 +03:00
include source/Makefile.mk
# --------------------------------------------------------------
2013-01-19 18:43:37 +02:00
PREFIX = /usr/local
DESTDIR =
LINK = ln -sf
2014-01-19 04:51:48 +02:00
2014-06-11 12:11:46 +03:00
ifeq ($(DEFAULT_QT),4)
PYUIC ?= pyuic4 -w
PYRCC ?= pyrcc4 -py3
2014-06-11 12:11:46 +03:00
else
PYUIC ?= pyuic5
PYRCC ?= pyrcc5
endif
2013-01-19 18:43:37 +02:00
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-19 18:43:37 +02:00
2014-06-08 17:59:36 +03:00
all: BIN RES UI WIDGETS
2013-01-19 18:43:37 +02:00
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2014-06-10 14:08:50 +03:00
# Binaries (native)
2013-01-19 18:43:37 +02:00
BIN: libs backend bridges-plugin bridges-ui discovery interposer plugin theme
2014-06-08 17:59:36 +03:00
2014-06-10 14:08:50 +03:00
# --------------------------------------------------------------
2013-01-28 06:17:05 +02:00
2014-06-11 21:18:44 +03:00
ALL_LIBS += source/backend/carla_engine.a
ALL_LIBS += source/backend/carla_engine_plugin.a
ALL_LIBS += source/backend/carla_plugin.a
2014-06-10 14:08:50 +03:00
ALL_LIBS += source/modules/jackbridge.a
2014-06-08 17:59:36 +03:00
ALL_LIBS += source/modules/juce_audio_basics.a
ALL_LIBS += source/modules/juce_audio_formats.a
ALL_LIBS += source/modules/juce_core.a
ALL_LIBS += source/modules/lilv.a
ALL_LIBS += source/modules/native-plugins.a
ALL_LIBS += source/modules/rtmempool.a
2014-07-22 07:53:21 +03:00
ifeq ($(MACOS_OR_WIN32),true)
ALL_LIBS += source/modules/juce_audio_devices.a
ALL_LIBS += source/modules/juce_audio_processors.a
ALL_LIBS += source/modules/juce_data_structures.a
ALL_LIBS += source/modules/juce_events.a
2014-06-08 17:59:36 +03:00
ALL_LIBS += source/modules/juce_graphics.a
ALL_LIBS += source/modules/juce_gui_basics.a
ifeq ($(MACOS),true)
2014-06-08 17:59:36 +03:00
ALL_LIBS += source/modules/juce_gui_extra.a
endif
2014-07-22 08:14:19 +03:00
else
ALL_LIBS += source/modules/rtaudio.a
ALL_LIBS += source/modules/rtmidi.a
2014-06-08 17:59:36 +03:00
endif
2013-01-19 18:43:37 +02:00
2014-06-10 14:08:50 +03:00
ifeq ($(HAVE_QT4),true)
ALL_LIBS += source/modules/theme.qt4.a
endif
ifeq ($(HAVE_QT5),true)
ALL_LIBS += source/modules/theme.qt5.a
endif
2013-06-01 03:20:00 +03:00
2014-06-10 14:08:50 +03:00
libs: $(ALL_LIBS)
2014-06-11 21:18:44 +03:00
source/backend/carla_%_plugin.a: .FORCE
$(MAKE) -C source/backend/$* ../carla_$*_plugin.a
2014-06-13 17:27:31 +03:00
source/backend/carla_%.a: .FORCE
$(MAKE) -C source/backend/$* ../carla_$*.a
2014-06-10 14:08:50 +03:00
source/modules/%.qt4.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.qt4.a
2013-10-07 17:57:56 +03:00
2014-06-10 14:08:50 +03:00
source/modules/%.qt5.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.qt5.a
2013-01-29 07:45:50 +02:00
source/modules/%.posix32.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.posix32.a
2014-08-11 18:52:34 +03:00
source/modules/%.posix32e.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.posix32e.a
source/modules/%.posix64.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.posix64.a
2014-08-11 18:52:34 +03:00
source/modules/%.posix64e.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.posix64e.a
source/modules/%.win32.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.win32.a
2014-08-11 18:52:34 +03:00
source/modules/%.win32e.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.win32e.a
source/modules/%.win64.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.win64.a
2014-08-11 18:52:34 +03:00
source/modules/%.win64e.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.win64e.a
2014-06-13 17:27:31 +03:00
source/modules/%.a: .FORCE
$(MAKE) -C source/modules/$* ../$*.a
2014-06-10 14:08:50 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
2014-06-11 12:11:46 +03:00
backend: bin/libcarla_standalone2$(LIB_EXT)
2013-01-29 07:45:50 +02:00
2014-06-11 12:11:46 +03:00
bin/libcarla_standalone2$(LIB_EXT): libs .FORCE
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/backend
2013-01-29 07:45:50 +02:00
2014-06-08 17:59:36 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
bridges-plugin: bin/carla-bridge-native$(APP_EXT)
2014-06-10 14:08:50 +03:00
bin/carla-bridge-native$(APP_EXT): libs .FORCE
2014-07-25 03:12:45 +03:00
$(MAKE) -C source/bridges-plugin
2014-06-10 14:08:50 +03:00
# --------------------------------------------------------------
bridges-ui: libs .FORCE
$(MAKE) -C source/bridges-ui
# --------------------------------------------------------------
2014-06-10 14:08:50 +03:00
discovery: bin/carla-discovery-native$(APP_EXT)
bin/carla-discovery-native$(APP_EXT): libs .FORCE
$(MAKE) -C source/discovery
# --------------------------------------------------------------
interposer: bin/libcarla_interposer.so
bin/libcarla_interposer.so: .FORCE
$(MAKE) -C source/interposer
# --------------------------------------------------------------
2014-09-10 22:54:38 +03:00
plugin: plugin_build bin/carla.lv2/manifest.ttl
plugin_build: libs .FORCE
2014-09-07 21:41:48 +03:00
$(MAKE) -C source/plugin
2014-06-10 14:08:50 +03:00
2014-09-10 22:54:38 +03:00
bin/carla.lv2/manifest.ttl: plugin_build bridges-plugin bridges-ui discovery
cd bin && ./carla-lv2-export$(APP_EXT); cd ..
cd bin/carla.lv2 && $(LINK) ../*bridge-* ../carla-discovery-* .; cd ..
2014-06-10 14:08:50 +03:00
# --------------------------------------------------------------
ifeq ($(HAVE_QT),true)
2014-06-11 12:11:46 +03:00
theme: bin/styles/carlastyle$(LIB_EXT)
2014-06-10 14:08:50 +03:00
2014-06-11 12:11:46 +03:00
bin/styles/carlastyle$(LIB_EXT): .FORCE
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/modules/theme
else
theme:
endif
2014-06-10 14:08:50 +03:00
# --------------------------------------------------------------
# Binaries (posix32)
LIBS_POSIX32 += source/modules/jackbridge.posix32.a
LIBS_POSIX32 += source/modules/juce_audio_basics.posix32.a
LIBS_POSIX32 += source/modules/juce_core.posix32.a
2014-07-24 11:25:11 +03:00
LIBS_POSIX32 += source/modules/lilv.posix32.a
LIBS_POSIX32 += source/modules/rtmempool.posix32.a
ifeq ($(MACOS),true)
LIBS_POSIX32 += source/modules/juce_audio_processors.posix32.a
LIBS_POSIX32 += source/modules/juce_data_structures.posix32.a
LIBS_POSIX32 += source/modules/juce_events.posix32.a
LIBS_POSIX32 += source/modules/juce_graphics.posix32.a
LIBS_POSIX32 += source/modules/juce_gui_basics.posix32.a
LIBS_POSIX32 += source/modules/juce_gui_extra.posix32.a
2014-07-24 11:25:11 +03:00
endif
posix32: $(LIBS_POSIX32)
2014-07-25 03:12:45 +03:00
$(MAKE) -C source/bridges-plugin posix32
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/discovery posix32
# --------------------------------------------------------------
# Binaries (posix64)
LIBS_POSIX64 += source/modules/jackbridge.posix64.a
LIBS_POSIX64 += source/modules/juce_audio_basics.posix64.a
LIBS_POSIX64 += source/modules/juce_core.posix64.a
2014-07-24 11:25:11 +03:00
LIBS_POSIX64 += source/modules/lilv.posix64.a
LIBS_POSIX64 += source/modules/rtmempool.posix64.a
ifeq ($(MACOS),true)
LIBS_POSIX64 += source/modules/juce_audio_processors.posix64.a
LIBS_POSIX64 += source/modules/juce_data_structures.posix64.a
LIBS_POSIX64 += source/modules/juce_events.posix64.a
LIBS_POSIX64 += source/modules/juce_graphics.posix64.a
LIBS_POSIX64 += source/modules/juce_gui_basics.posix64.a
LIBS_POSIX64 += source/modules/juce_gui_extra.posix64.a
2014-07-24 11:25:11 +03:00
endif
posix64: $(LIBS_POSIX64)
2014-07-25 03:12:45 +03:00
$(MAKE) -C source/bridges-plugin posix64
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/discovery posix64
# --------------------------------------------------------------
# Binaries (win32)
2014-08-12 19:29:07 +03:00
LIBS_WIN32 += source/modules/jackbridge.win32e.a
LIBS_WIN32 += source/modules/juce_audio_basics.win32.a
LIBS_WIN32 += source/modules/juce_audio_processors.win32.a
LIBS_WIN32 += source/modules/juce_core.win32.a
LIBS_WIN32 += source/modules/juce_data_structures.win32.a
LIBS_WIN32 += source/modules/juce_events.win32.a
LIBS_WIN32 += source/modules/juce_graphics.win32.a
LIBS_WIN32 += source/modules/juce_gui_basics.win32.a
LIBS_WIN32 += source/modules/lilv.win32.a
LIBS_WIN32 += source/modules/rtmempool.win32.a
win32: $(LIBS_WIN32)
2014-07-25 03:12:45 +03:00
$(MAKE) -C source/bridges-plugin win32
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/discovery win32
# --------------------------------------------------------------
# Binaries (win64)
2014-08-12 19:29:07 +03:00
LIBS_WIN64 += source/modules/jackbridge.win64e.a
LIBS_WIN64 += source/modules/juce_audio_basics.win64.a
LIBS_WIN64 += source/modules/juce_audio_processors.win64.a
LIBS_WIN64 += source/modules/juce_core.win64.a
LIBS_WIN64 += source/modules/juce_data_structures.win64.a
LIBS_WIN64 += source/modules/juce_events.win64.a
LIBS_WIN64 += source/modules/juce_graphics.win64.a
LIBS_WIN64 += source/modules/juce_gui_basics.win64.a
LIBS_WIN64 += source/modules/lilv.win64.a
LIBS_WIN64 += source/modules/rtmempool.win64.a
win64: $(LIBS_WIN64)
2014-07-25 03:12:45 +03:00
$(MAKE) -C source/bridges-plugin win64
2014-06-10 14:08:50 +03:00
$(MAKE) -C source/discovery win64
# --------------------------------------------------------------
# Binaries (wine)
2014-06-10 14:08:50 +03:00
wine32:
2014-08-11 18:52:34 +03:00
$(MAKE) -C source/modules/jackbridge wine32
2014-08-12 19:29:07 +03:00
cp -f source/modules/jackbridge-wine32.dll.so bin/jackbridge-wine32.dll
2014-06-10 14:08:50 +03:00
wine64:
2014-08-11 18:52:34 +03:00
$(MAKE) -C source/modules/jackbridge wine64
2014-08-12 19:29:07 +03:00
cp -f source/modules/jackbridge-wine64.dll.so bin/jackbridge-wine64.dll
2013-01-29 07:45:50 +02:00
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
# Resources
2013-01-19 18:43:37 +02:00
2014-06-08 17:59:36 +03:00
RES = \
2014-08-29 07:18:57 +03:00
bin/resources/carla_app.py \
2014-06-10 14:08:50 +03:00
bin/resources/carla_backend.py \
bin/resources/carla_config.py \
bin/resources/carla_database.py \
bin/resources/carla_host.py \
bin/resources/carla_panels.py \
2014-06-10 14:08:50 +03:00
bin/resources/carla_settings.py \
bin/resources/carla_skin.py \
bin/resources/carla_shared.py \
2014-08-29 07:18:57 +03:00
bin/resources/carla_utils.py \
2014-06-10 14:08:50 +03:00
bin/resources/carla_widgets.py \
bin/resources/canvaspreviewframe.py \
bin/resources/digitalpeakmeter.py \
bin/resources/externalui.py \
bin/resources/ledbutton.py \
bin/resources/paramspinbox.py \
bin/resources/patchcanvas.py \
bin/resources/patchcanvas_theme.py \
bin/resources/pixmapbutton.py \
bin/resources/pixmapdial.py \
bin/resources/pixmapkeyboard.py \
2014-10-03 22:09:56 +03:00
bin/resources/racklistwidget.py \
2014-06-10 14:08:50 +03:00
bin/resources/resources_rc.py \
bin/resources/ui_carla_about.py \
2014-08-14 15:08:19 +03:00
bin/resources/ui_carla_about_juce.py \
2014-06-10 14:08:50 +03:00
bin/resources/ui_carla_database.py \
bin/resources/ui_carla_edit.py \
bin/resources/ui_carla_host.py \
2014-10-08 00:51:39 +03:00
bin/resources/ui_carla_panel_time.py \
2014-06-10 14:08:50 +03:00
bin/resources/ui_carla_parameter.py \
bin/resources/ui_carla_plugin_basic_fx.py \
bin/resources/ui_carla_plugin_calf.py \
bin/resources/ui_carla_plugin_default.py \
2014-09-16 17:56:04 +03:00
bin/resources/ui_carla_plugin_sf2.py \
2014-06-10 14:08:50 +03:00
bin/resources/ui_carla_plugin_zita.py \
bin/resources/ui_carla_plugin_zynfx.py \
bin/resources/ui_carla_refresh.py \
bin/resources/ui_carla_settings.py \
bin/resources/ui_carla_settings_driver.py \
bin/resources/ui_inputdialog_value.py \
2014-06-08 17:59:36 +03:00
source/carla_config.py \
source/resources_rc.py
2013-01-19 18:43:37 +02:00
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
source/resources_rc.py: resources/resources.qrc resources/*/*.png resources/*/*.svg
2013-01-19 18:43:37 +02:00
$(PYRCC) $< -o $@
2014-06-10 14:08:50 +03:00
bin/resources/%.py: source/%.py
$(LINK) $(CURDIR)/source/$*.py bin/resources/
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
# UI code
2013-01-19 18:43:37 +02:00
2013-03-12 15:37:45 +02:00
UIs = \
source/ui_carla_control.py \
source/ui_carla_about.py \
2014-08-14 15:08:19 +03:00
source/ui_carla_about_juce.py \
2013-03-12 15:37:45 +02:00
source/ui_carla_database.py \
source/ui_carla_edit.py \
2013-09-24 16:22:03 +03:00
source/ui_carla_host.py \
2014-10-08 00:51:39 +03:00
source/ui_carla_panel_time.py \
source/ui_carla_parameter.py \
2014-02-12 01:21:55 +02:00
source/ui_carla_plugin_basic_fx.py \
2014-01-05 15:39:49 +02:00
source/ui_carla_plugin_calf.py \
2014-09-16 17:56:04 +03:00
source/ui_carla_plugin_default.py \
source/ui_carla_plugin_sf2.py \
2014-02-10 20:56:27 +02:00
source/ui_carla_plugin_zita.py \
2014-01-05 02:28:39 +02:00
source/ui_carla_plugin_zynfx.py \
2013-03-12 15:37:45 +02:00
source/ui_carla_refresh.py \
source/ui_carla_settings.py \
2013-04-25 05:08:49 +03:00
source/ui_carla_settings_driver.py \
2013-01-19 18:43:37 +02:00
source/ui_inputdialog_value.py
UI: $(UIs)
source/ui_%.py: resources/ui/%.ui
$(PYUIC) $< -o $@
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
# Widgets
2013-01-19 18:43:37 +02:00
2013-03-02 14:34:46 +02:00
WIDGETS = \
source/canvaspreviewframe.py \
source/digitalpeakmeter.py \
source/ledbutton.py \
source/paramspinbox.py \
source/pixmapbutton.py \
source/pixmapdial.py \
2014-10-03 22:09:56 +03:00
source/pixmapkeyboard.py \
source/racklistwidget.py
2013-01-19 18:43:37 +02:00
WIDGETS: $(WIDGETS)
2013-08-18 08:14:10 +03:00
source/%.py: source/widgets/%.py
$(LINK) widgets/$*.py $@
2013-01-19 18:43:37 +02:00
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-19 18:43:37 +02:00
clean:
2014-06-10 14:08:50 +03:00
$(MAKE) clean -C source/backend
2014-07-25 03:12:45 +03:00
$(MAKE) clean -C source/bridges-plugin
$(MAKE) clean -C source/bridges-ui
2014-06-10 14:08:50 +03:00
$(MAKE) clean -C source/discovery
$(MAKE) clean -C source/modules
$(MAKE) clean -C source/plugin
2013-01-19 18:43:37 +02:00
rm -f $(RES)
rm -f $(UIs)
rm -f $(WIDGETS)
2013-03-12 15:37:45 +02:00
rm -f *~ source/*~ source/*.pyc source/*_rc.py source/ui_*.py
2013-01-29 07:45:50 +02:00
debug:
$(MAKE) DEBUG=true
doxygen:
$(MAKE) doxygen -C source/backend
# --------------------------------------------------------------
2013-01-19 18:43:37 +02:00
install:
# Create directories
install -d $(DESTDIR)$(PREFIX)/bin/
install -d $(DESTDIR)$(PREFIX)/lib/carla/
install -d $(DESTDIR)$(PREFIX)/lib/carla/styles/
install -d $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
2014-09-07 21:41:48 +03:00
install -d $(DESTDIR)$(PREFIX)/lib/vst/
install -d $(DESTDIR)$(PREFIX)/lib/pkgconfig/
install -d $(DESTDIR)$(PREFIX)/include/carla/
install -d $(DESTDIR)$(PREFIX)/include/carla/includes/
2013-01-19 18:43:37 +02:00
install -d $(DESTDIR)$(PREFIX)/share/applications/
install -d $(DESTDIR)$(PREFIX)/share/carla/
install -d $(DESTDIR)$(PREFIX)/share/carla/resources/
install -d $(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
install -d $(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
2013-01-19 18:43:37 +02:00
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
install -d $(DESTDIR)$(PREFIX)/share/mime/packages/
2013-01-19 18:43:37 +02:00
2013-03-12 15:37:45 +02:00
# Install script files
2013-01-19 18:43:37 +02:00
install -m 755 \
data/carla \
data/carla-database \
data/carla-patchbay \
data/carla-rack \
data/carla-settings \
2013-01-19 18:43:37 +02:00
$(DESTDIR)$(PREFIX)/bin/
2014-02-12 22:32:29 +02:00
# data/carla-control \
# data/carla-single \
2014-02-12 22:32:29 +02:00
2013-01-19 18:43:37 +02:00
# Install desktop files
install -m 644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications/
# Install icons, 16x16
2013-03-12 15:37:45 +02:00
install -m 644 resources/16x16/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/
2013-01-19 18:43:37 +02:00
# Install icons, 48x48
2013-03-12 15:37:45 +02:00
install -m 644 resources/48x48/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/
2013-01-19 18:43:37 +02:00
# Install icons, 128x128
2013-03-12 15:37:45 +02:00
install -m 644 resources/128x128/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/
2013-01-19 18:43:37 +02:00
# Install icons, 256x256
2013-03-12 15:37:45 +02:00
install -m 644 resources/256x256/carla.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/
2013-01-19 18:43:37 +02:00
# Install icons, scalable
2013-03-12 15:37:45 +02:00
install -m 644 resources/scalable/carla.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/
2013-01-19 18:43:37 +02:00
# Install mime package
install -m 644 data/carla.xml $(DESTDIR)$(PREFIX)/share/mime/packages/
# Install pkg-config file
install -m 644 data/carla-standalone.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
# Install backend
install -m 644 \
bin/libcarla_standalone2.* \
$(DESTDIR)$(PREFIX)/lib/carla/
ifeq ($(LINUX),true)
# Install interposer
install -m 644 \
bin/libcarla_interposer.so \
$(DESTDIR)$(PREFIX)/lib/carla/
endif
2014-06-13 14:20:52 +03:00
# Install lv2 plugin
install -m 644 \
bin/carla.lv2/carla.* \
bin/carla.lv2/*.ttl \
$(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
2014-06-13 14:20:52 +03:00
2014-09-07 21:41:48 +03:00
# Install vst plugin
install -m 644 \
bin/CarlaRack*.* \
bin/CarlaPatchbay*.* \
2014-09-07 21:41:48 +03:00
$(DESTDIR)$(PREFIX)/lib/vst/
2014-06-13 14:20:52 +03:00
# Install binaries (backend)
2013-01-19 18:43:37 +02:00
install -m 755 \
bin/*bridge-* \
bin/carla-discovery-* \
2013-01-29 08:45:14 +02:00
$(DESTDIR)$(PREFIX)/lib/carla/
2014-06-13 14:20:52 +03:00
# Install theme
install -m 644 \
bin/styles/* \
$(DESTDIR)$(PREFIX)/lib/carla/styles/
2014-02-19 14:14:51 +02:00
2013-01-29 08:45:14 +02:00
# Install python code
install -m 644 \
source/carla \
source/carla-patchbay \
source/carla-rack \
2014-06-13 14:20:52 +03:00
source/*.py \
$(DESTDIR)$(PREFIX)/share/carla/
2013-01-19 18:43:37 +02:00
# Install headers
2014-06-13 14:20:52 +03:00
install -m 644 \
source/backend/CarlaBackend.h \
source/backend/CarlaHost.h \
source/backend/CarlaEngine.hpp \
source/backend/CarlaPlugin.hpp \
source/modules/CarlaNative.h \
2014-06-13 14:20:52 +03:00
$(DESTDIR)$(PREFIX)/include/carla/
install -m 644 \
source/includes/CarlaDefines.h \
$(DESTDIR)$(PREFIX)/include/carla/includes/
# Install resources (main)
2014-06-13 14:20:52 +03:00
install -m 755 \
bin/resources/carla-plugin \
bin/resources/carla-plugin-patchbay \
2014-06-13 14:20:52 +03:00
bin/resources/*-ui \
$(DESTDIR)$(PREFIX)/share/carla/resources/
install -m 644 \
bin/resources/nekofilter/*.png \
$(DESTDIR)$(PREFIX)/share/carla/resources/nekofilter/
install -m 644 \
bin/resources/zynaddsubfx/*.png \
$(DESTDIR)$(PREFIX)/share/carla/resources/zynaddsubfx/
# Install resources (re-use python files)
2014-08-29 07:18:57 +03:00
$(LINK) $(PREFIX)/share/carla/carla_app.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/carla_backend.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_config.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_panels.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_skin.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/carla_shared.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-08-29 07:18:57 +03:00
$(LINK) $(PREFIX)/share/carla/carla_utils.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/carla_widgets.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/canvaspreviewframe.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/digitalpeakmeter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/externalui.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ledbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/paramspinbox.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/patchcanvas.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/patchcanvas_theme.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/pixmapbutton.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/pixmapdial.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/pixmapkeyboard.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-10-03 22:09:56 +03:00
$(LINK) $(PREFIX)/share/carla/racklistwidget.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/resources_rc.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_about.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-08-14 15:08:19 +03:00
$(LINK) $(PREFIX)/share/carla/ui_carla_about_juce.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/ui_carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_edit.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_panel_time.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/ui_carla_parameter.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_basic_fx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_calf.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_default.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-09-16 17:56:04 +03:00
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_sf2.py $(DESTDIR)$(PREFIX)/share/carla/resources/
2014-07-28 08:18:39 +03:00
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zita.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_plugin_zynfx.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_refresh.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_settings.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_carla_settings_driver.py $(DESTDIR)$(PREFIX)/share/carla/resources/
$(LINK) $(PREFIX)/share/carla/ui_inputdialog_value.py $(DESTDIR)$(PREFIX)/share/carla/resources/
# Link binaries for lv2 plugin
@for i in $(shell find $(DESTDIR)$(PREFIX)/lib/carla/ -maxdepth 1 -type f -exec basename {} ';'); do \
$(LINK) $(PREFIX)/lib/carla/$$i $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/; \
done
rm -f $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/libcarla_*.*
# Link styles for lv2 plugin
$(LINK) $(PREFIX)/lib/carla/styles/ $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
2014-06-13 14:20:52 +03:00
# Link resources for lv2 plugin
rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/resources
$(LINK) $(PREFIX)/share/carla/resources/ $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
2014-09-07 21:41:48 +03:00
# Link resources for vst plugin
rm -rf $(DESTDIR)$(PREFIX)/lib/vst/carla-resources
$(LINK) $(PREFIX)/lib/lv2/carla.lv2/resources $(DESTDIR)$(PREFIX)/lib/vst/carla-resources
2014-09-07 21:41:48 +03:00
2013-01-19 18:43:37 +02:00
# Adjust PREFIX value in script files
2014-06-08 17:59:36 +03:00
sed -i "s?X-PREFIX-X?$(PREFIX)?" \
$(DESTDIR)$(PREFIX)/bin/carla \
$(DESTDIR)$(PREFIX)/bin/carla-database \
$(DESTDIR)$(PREFIX)/bin/carla-patchbay \
$(DESTDIR)$(PREFIX)/bin/carla-rack \
$(DESTDIR)$(PREFIX)/bin/carla-settings \
$(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
2013-01-19 18:43:37 +02:00
# $(DESTDIR)$(PREFIX)/bin/carla-single \
2014-02-12 22:32:29 +02:00
# $(DESTDIR)$(PREFIX)/bin/carla-control \
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
2013-01-29 07:45:50 +02:00
2013-01-19 18:43:37 +02:00
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/carla*
rm -f $(DESTDIR)$(PREFIX)/lib/vst/CarlaRack*.*
rm -f $(DESTDIR)$(PREFIX)/lib/vst/CarlaPatchbay*.*
rm -f $(DESTDIR)$(PREFIX)/lib/pkgconfig/carla-standalone.pc
2013-01-19 18:43:37 +02:00
rm -f $(DESTDIR)$(PREFIX)/share/applications/carla.desktop
rm -f $(DESTDIR)$(PREFIX)/share/applications/carla-control.desktop
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla.png
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/*/apps/carla-control.png
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla.svg
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla-control.svg
rm -f $(DESTDIR)$(PREFIX)/share/mime/packages/carla.xml
rm -rf $(DESTDIR)$(PREFIX)/include/carla/
2013-01-19 18:43:37 +02:00
rm -rf $(DESTDIR)$(PREFIX)/lib/carla/
rm -rf $(DESTDIR)$(PREFIX)/lib/lv2/carla.lv2/
rm -rf $(DESTDIR)$(PREFIX)/lib/vst/carla-resources
2013-01-19 18:43:37 +02:00
rm -rf $(DESTDIR)$(PREFIX)/share/carla/
2013-06-01 03:20:00 +03:00
# --------------------------------------------------------------
USE_COLORS=true
ifeq ($(HAIKU),true)
USE_COLORS=false
endif
ifeq ($(USE_COLORS),true)
2013-06-01 03:20:00 +03:00
ANS_NO=\033[31m NO \033[0m
ANS_YES=\033[32m YES \033[0m
mS=\033[33m[
2013-10-07 17:57:56 +03:00
mZ=\033[30;1m[
2013-06-01 03:20:00 +03:00
mE=]\033[0m
2014-01-19 16:47:25 +02:00
tS=\033[36m
tE=\033[0m
else
ANS_NO=" NO "
ANS_YES=" YES "
endif
2013-06-01 03:20:00 +03:00
ifeq ($(DEFAULT_QT),4)
FEV="Qt4"
else
FEV="Qt5"
endif
2013-06-01 03:20:00 +03:00
features:
@echo "$(tS)---> Main features $(tE)"
ifeq ($(HAVE_PYQT),true)
@echo "Front-End: $(ANS_YES) (Using $(FEV))"
ifneq ($(WIN32),true)
@echo "LV2 plugin: $(ANS_YES)"
else
@echo "LV2 plugin: $(ANS_NO) $(mZ)Not available for Windows$(mE)"
endif
ifeq ($(LINUX),true)
ifeq ($(DEFAULT_QT),4)
ifeq ($(HAVE_X11),true)
@echo "VST plugin: $(ANS_YES)"
else # HAVE_X11
@echo "VST plugin: $(ANS_NO) $(mS)X11 missing$(mE)"
endif
else # DEFAULT_QT
@echo "VST plugin: $(ANS_NO) $(mZ)Qt4 only$(mE)"
endif
else # LINUX
@echo "VST plugin: $(ANS_NO) $(mZ)Linux only$(mE)"
endif
else
@echo "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)"
@echo "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)"
@echo "VST plugin: $(ANS_NO) $(mS)No front-end$(mE)"
endif
@echo ""
@echo "$(tS)---> Engine drivers $(tE)"
2013-10-07 17:57:56 +03:00
@echo "JACK: $(ANS_YES)"
ifeq ($(LINUX),true)
2013-06-01 03:20:00 +03:00
ifeq ($(HAVE_ALSA),true)
2013-10-07 17:57:56 +03:00
@echo "ALSA: $(ANS_YES)"
2013-06-01 03:20:00 +03:00
else
2013-10-07 17:57:56 +03:00
@echo "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_PULSEAUDIO),true)
2013-10-07 17:57:56 +03:00
@echo "PulseAudio: $(ANS_YES)"
2013-06-01 03:20:00 +03:00
else
2013-10-07 17:57:56 +03:00
@echo "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)"
2013-06-01 03:20:00 +03:00
endif
else
2013-10-07 17:57:56 +03:00
@echo "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)"
@echo "PulseAudio: $(ANS_NO) $(mZ)Linux only$(mE)"
2013-06-01 03:20:00 +03:00
endif
2013-10-07 17:57:56 +03:00
ifeq ($(MACOS),true)
@echo "CoreAudio: $(ANS_YES)"
else
@echo "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)"
2013-06-01 03:20:00 +03:00
endif
2013-10-07 17:57:56 +03:00
ifeq ($(WIN32),true)
@echo "ASIO: $(ANS_YES)"
@echo "DirectSound:$(ANS_YES)"
else
@echo "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)"
@echo "DirectSound:$(ANS_NO) $(mZ)Windows only$(mE)"
2013-06-01 03:20:00 +03:00
endif
2013-06-02 23:27:56 +03:00
@echo ""
2013-06-01 03:20:00 +03:00
2014-01-19 16:47:25 +02:00
@echo "$(tS)---> Plugin formats: $(tE)"
2013-06-01 03:20:00 +03:00
@echo "Internal:$(ANS_YES)"
@echo "LADSPA: $(ANS_YES)"
@echo "DSSI: $(ANS_YES)"
@echo "LV2: $(ANS_YES)"
ifeq ($(MACOS_OR_WIN32),true)
@echo "VST: $(ANS_YES) (with UI)"
else
ifeq ($(LINUX),true)
ifeq ($(HAVE_X11),true)
@echo "VST: $(ANS_YES) (with UI)"
else
@echo "VST: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)"
endif
else # LINUX
@echo "VST: $(ANS_YES) (without UI) $(mZ)Linux, Mac and Windows only$(mE)"
endif
endif
2014-07-22 07:53:21 +03:00
ifeq ($(MACOS_OR_WIN32),true)
2014-03-09 18:40:09 +02:00
@echo "VST3: $(ANS_YES)"
else
@echo "VST3: $(ANS_NO) $(mZ)Windows and MacOS only$(mE)"
endif
2013-10-07 17:57:56 +03:00
ifeq ($(MACOS),true)
@echo "AU: $(ANS_YES)"
else
@echo "AU: $(ANS_NO) $(mZ)MacOS only$(mE)"
2013-06-01 03:20:00 +03:00
endif
@echo ""
2014-01-19 16:47:25 +02:00
@echo "$(tS)---> LV2 UI toolkit support: $(tE)"
@echo "External:$(ANS_YES) (direct)"
2013-06-01 03:20:00 +03:00
ifeq ($(HAVE_GTK2),true)
2013-10-07 17:57:56 +03:00
@echo "Gtk2: $(ANS_YES) (bridge)"
2013-06-01 03:20:00 +03:00
else
2013-10-07 17:57:56 +03:00
@echo "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_GTK3),true)
2013-10-07 17:57:56 +03:00
@echo "Gtk3: $(ANS_YES) (bridge)"
2013-06-01 03:20:00 +03:00
else
2013-10-07 17:57:56 +03:00
@echo "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_QT4),true)
2013-10-07 17:57:56 +03:00
@echo "Qt4: $(ANS_YES) (bridge)"
2013-06-01 03:20:00 +03:00
else
2013-10-07 17:57:56 +03:00
@echo "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)"
2013-06-01 03:20:00 +03:00
endif
2013-10-07 18:48:06 +03:00
ifeq ($(HAVE_QT5),true)
2013-10-07 17:57:56 +03:00
@echo "Qt5: $(ANS_YES) (bridge)"
2013-10-07 18:48:06 +03:00
else
@echo "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)"
endif
2014-03-09 18:40:09 +02:00
ifeq ($(HAVE_X11),true)
2013-10-07 17:57:56 +03:00
@echo "X11: $(ANS_YES) (direct+bridge)"
2014-03-09 18:40:09 +02:00
else
@echo "X11: $(ANS_NO) $(mS)X11 missing$(mE)"
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
2013-06-01 03:20:00 +03:00
@echo ""
2014-01-19 16:47:25 +02:00
@echo "$(tS)---> File formats: $(tE)"
2013-06-01 03:20:00 +03:00
ifeq ($(HAVE_LINUXSAMPLER),true)
@echo "GIG:$(ANS_YES)"
else
2014-08-23 21:41:07 +03:00
@echo "GIG:$(ANS_NO) $(mS)LinuxSampler missing or too old$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_FLUIDSYNTH),true)
@echo "SF2:$(ANS_YES)"
else
2013-10-07 17:57:56 +03:00
@echo "SF2:$(ANS_NO) $(mS)FluidSynth missing$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_LINUXSAMPLER),true)
@echo "SFZ:$(ANS_YES)"
else
2014-08-23 21:41:07 +03:00
@echo "SFZ:$(ANS_NO) $(mS)LinuxSampler missing or too old$(mE)"
2013-06-01 03:20:00 +03:00
endif
@echo ""
2014-01-19 16:47:25 +02:00
@echo "$(tS)---> Internal plugins: $(tE)"
ifneq ($(WIN32),true)
@echo "Carla-Rack: $(ANS_YES)"
else
@echo "Carla-Rack: $(ANS_NO) $(mS)Not available for Windows$(mE)"
2013-06-01 03:20:00 +03:00
endif
ifeq ($(HAVE_ZYN_DEPS),true)
ifeq ($(HAVE_ZYN_UI_DEPS),true)
@echo "ZynAddSubFX:$(ANS_YES) (with UI)"
else
@echo "ZynAddSubFX:$(ANS_YES) (without UI) $(mS)NTK missing$(mE)"
endif
else
2013-10-07 18:48:06 +03:00
@echo "ZynAddSubFX:$(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)"
2013-06-01 03:20:00 +03:00
endif
# --------------------------------------------------------------
2014-06-10 14:08:50 +03:00
.FORCE:
.PHONY: .FORCE
# --------------------------------------------------------------