2 # Makefile for carla-frontend #
3 # --------------------------- #
8 include $(CWD
)/Makefile.mk
10 # ---------------------------------------------------------------------------------------------------------------------
12 BINDIR
:= $(CWD
)/..
/bin
13 RESDIR
:= $(CWD
)/..
/resources
16 OBJDIR
:= $(CWD
)/..
/build
/frontend
/Debug
18 OBJDIR
:= $(CWD
)/..
/build
/frontend
/Release
21 # ---------------------------------------------------------------------------------------------------------------------
23 BUILD_CXX_FLAGS
+= -I.
-Iutils
24 BUILD_CXX_FLAGS
+= -I..
/backend
25 BUILD_CXX_FLAGS
+= -I..
/includes
26 BUILD_CXX_FLAGS
+= -I..
/modules
27 BUILD_CXX_FLAGS
+= -I..
/utils
29 # ---------------------------------------------------------------------------------------------------------------------
31 ifeq ($(WINDOWS
),true
)
32 NON_STATIC_LINK_FLAGS
= $(shell echo
$(LINK_FLAGS
) | awk
'sub(" -static","")') -static-libgcc
34 NON_STATIC_LINK_FLAGS
= $(LINK_FLAGS
)
37 ifeq ($(WINDOWS
),true
)
38 QT_LINK_FLAGS
+= -L
$(BINDIR
) $(BINDIR
)/libcarla_utils.dll
40 QT_LINK_FLAGS
+= -L
$(BINDIR
) -lcarla_utils
44 QT_LINK_FLAGS
+= -install_name @rpath
/libcarla_frontend.dylib
45 # FIXME this does not work: -Wl,-rpath,@loader_path
47 QT_LINK_FLAGS
+= -Wl
,-rpath
,'$${ORIGIN}'
50 # ---------------------------------------------------------------------------------------------------------------------
53 TSs
= $(patsubst %,translations
/carla_
%.ts
,$(I18N_LANGUAGES
))
54 QMs
= $(patsubst %,translations
/carla_
%.qm
,$(I18N_LANGUAGES
))
56 # ---------------------------------------------------------------------------------------------------------------------
61 dialogs
/jackappdialog.
cpp \
62 pluginlist
/pluginlistdialog.
cpp
64 OBJS
= $(CPP_FILES
:%=$(OBJDIR
)/%.o
)
66 # ---------------------------------------------------------------------------------------------------------------------
72 $(BINDIR
)/resources
/modgui \
73 $(BINDIR
)/resources
/patchcanvas \
74 $(BINDIR
)/resources
/widgets \
75 $(BINDIR
)/resources
/bigmeter-ui \
76 $(BINDIR
)/resources
/carla-plugin \
77 $(BINDIR
)/resources
/carla-plugin-patchbay \
78 $(BINDIR
)/resources
/carla_app.py \
79 $(BINDIR
)/resources
/carla_backend.py \
80 $(BINDIR
)/resources
/carla_backend_qt.py \
81 $(BINDIR
)/resources
/carla_host.py \
82 $(BINDIR
)/resources
/carla_host_control.py \
83 $(BINDIR
)/resources
/carla_modgui.py \
84 $(BINDIR
)/resources
/carla_settings.py \
85 $(BINDIR
)/resources
/carla_skin.py \
86 $(BINDIR
)/resources
/carla_shared.py \
87 $(BINDIR
)/resources
/carla_utils.py \
88 $(BINDIR
)/resources
/carla_widgets.py \
89 $(BINDIR
)/resources
/externalui.py \
90 $(BINDIR
)/resources
/midipattern-ui \
91 $(BINDIR
)/resources
/notes-ui \
92 $(BINDIR
)/resources
/xycontroller-ui \
93 $(BINDIR
)/resources
/resources_rc.py \
94 $(BINDIR
)/resources
/ui_carla_about.py \
95 $(BINDIR
)/resources
/ui_carla_edit.py \
96 $(BINDIR
)/resources
/ui_carla_host.py \
97 $(BINDIR
)/resources
/ui_carla_osc_connect.py \
98 $(BINDIR
)/resources
/ui_carla_parameter.py \
99 $(BINDIR
)/resources
/ui_carla_plugin_calf.py \
100 $(BINDIR
)/resources
/ui_carla_plugin_classic.py \
101 $(BINDIR
)/resources
/ui_carla_plugin_compact.py \
102 $(BINDIR
)/resources
/ui_carla_plugin_default.py \
103 $(BINDIR
)/resources
/ui_carla_plugin_presets.py \
104 $(BINDIR
)/resources
/ui_carla_settings.py \
105 $(BINDIR
)/resources
/ui_carla_settings_driver.py \
106 $(BINDIR
)/resources
/ui_inputdialog_value.py \
107 $(BINDIR
)/resources
/ui_midipattern.py \
108 $(BINDIR
)/resources
/ui_xycontroller.py
110 ifneq ($(SKIP_ZYN_SYNTH
),true
)
111 ifeq ($(HAVE_ZYN_UI_DEPS
),true
)
113 $(BINDIR
)/resources
/zynaddsubfx \
114 $(BINDIR
)/resources
/zynaddsubfx-ui
118 # ---------------------------------------------------------------------------------------------------------------------
121 DIALOG_UI_FILES
= $(wildcard dialogs
/*.ui
)
122 PLUGINLIST_UI_FILES
= $(wildcard pluginlist
/*.ui
)
124 UIs
= $(DIALOG_UI_FILES
:dialogs
/%.ui
=dialogs
/ui_
%.h
)
125 UIs
+= $(PLUGINLIST_UI_FILES
:pluginlist
/%.ui
=pluginlist
/ui_
%.h
)
127 UIs
+= $(DIALOG_UI_FILES
:%.ui
=%_ui.py
)
129 # old stuff, not yet converted
134 ui_carla_osc_connect.py \
135 ui_carla_parameter.py \
136 ui_carla_plugin_calf.py \
137 ui_carla_plugin_classic.py \
138 ui_carla_plugin_compact.py \
139 ui_carla_plugin_default.py \
140 ui_carla_plugin_presets.py \
141 ui_carla_settings.py \
142 ui_carla_settings_driver.py \
143 ui_inputdialog_value.py \
147 # ---------------------------------------------------------------------------------------------------------------------
149 all: $(BINDIR
)/libcarla_frontend
$(LIB_EXT
) $(QMs
) $(RES
) $(UIs
)
151 # ---------------------------------------------------------------------------------------------------------------------
153 dialogs
/ui_
%.h
: dialogs
/%.ui qt_config.py
156 pluginlist
/ui_
%.h
: pluginlist
/%.ui qt_config.py
159 %_ui.py
: %.ui qt_config.py
162 ui_
%.py
: $(RESDIR
)/ui
/%.ui qt_config.py
166 ifneq (,$(FRONTEND_TYPE
))
167 echo
"#!/usr/bin/env python3" > $@
168 echo
"qt = $(FRONTEND_TYPE)" >> $@
170 @echo Error
: Trying to build frontend without Qt and
/or PyQt
, cannot continue
174 resources_rc.py
: $(RESDIR
)/resources.qrc
$(RESDIR
)/*/*.png
$(RESDIR
)/*/*.svg
$(RESDIR
)/*/*.svgz
175 ifeq ($(FRONTEND_TYPE
),6)
176 $(PYRCC
) $< | sed
-e
's/PySide6/PyQt6/' > $@
181 test: $(OBJS
) $(LIBS
) test.
cpp
183 $(SILENT
)$(CXX
) $(OBJS
) test.
cpp $(BUILD_CXX_FLAGS
) $(NON_STATIC_LINK_FLAGS
) -Wl
,-rpath
,$(abspath
$(BINDIR
)) $(QT_LINK_FLAGS
) -o
$@
185 $(BINDIR
)/resources
/%: %
186 -@mkdir
-p
$(BINDIR
)/resources
187 $(LINK
) $(CURDIR
)/$* $(BINDIR
)/resources
/
189 $(BINDIR
)/resources
/zynaddsubfx
: ..
/native-plugins
/resources
/zynaddsubfx
190 -@mkdir
-p
$(BINDIR
)/resources
191 $(LINK
) $(CURDIR
)/$< $(BINDIR
)/resources
/
193 $(BINDIR
)/resources
/zynaddsubfx-ui
: ..
/native-plugins
/resources
/zynaddsubfx-ui
194 -@mkdir
-p
$(BINDIR
)/resources
195 $(LINK
) $(CURDIR
)/$< $(BINDIR
)/resources
/
197 # ---------------------------------------------------------------------------------------------------------------------
199 $(BINDIR
)/libcarla_frontend
$(LIB_EXT
): $(OBJS
) $(LIBS
)
201 @echo
"Linking libcarla_frontend$(LIB_EXT)"
202 $(SILENT
)$(CXX
) $(OBJS
) $(BUILD_CXX_FLAGS
) $(QT_CXX_FLAGS
) $(NON_STATIC_LINK_FLAGS
) $(QT_LINK_FLAGS
) $(SHARED
) -o
$@
204 # FIXME this does not work: -Wl,-rpath,@loader_path
205 $(SILENT
)install_name_tool
-change ..
/..
/..
/bin
/libcarla_utils.dylib @loader_path
/libcarla_utils.dylib
$@
208 $(OBJDIR
)/%.
cpp.o
: %.
cpp $(UIs
)
209 -@mkdir
-p
$(shell dirname
$@
)
211 $(SILENT
)$(CXX
) $< $(BUILD_CXX_FLAGS
) $(QT_CXX_FLAGS
) -c
-o
$@
213 -include $(OBJS
:%.o
=%.d
)
215 # ---------------------------------------------------------------------------------------------------------------------
218 rm -rf
$(BINDIR
)/libcarla_frontend
$(LIB_EXT
) $(UIs
) $(RES
) $(QMs
) __pycache__
*.pyc
220 rm -f ui_carla_add_jack.py
221 rm -f ui_carla_database.py
222 rm -f ui_carla_refresh.py
227 # ---------------------------------------------------------------------------------------------------------------------
231 --extension-pkg-whitelist
=PyQt5 \
232 --max-line-length
=120 \
234 --max-statements
=100 \
235 --disable
=bare-except
,duplicate-code
,invalid-name
,missing-docstring
,too-many-branches
,too-many-instance-attributes
,too-many-statements \
236 $(wildcard widgets
/*.py
)
238 # ---------------------------------------------------------------------------------------------------------------------
244 @
install -d translations
245 pylupdate5
*.py
$(RESDIR
)/ui
/*.ui
-ts
$@
250 # ---------------------------------------------------------------------------------------------------------------------