Fix external plugins build with updated dpf
[carla.git] / source / Makefile.deps.mk
blobed486ec1f90a738af985164d34ef962b2501d23e
1 #!/usr/bin/make -f
2 # Makefile for Carla C++ code #
3 # --------------------------- #
4 # Created by falkTX
7 # ---------------------------------------------------------------------------------------------------------------------
8 # Base environment vars
10 AR ?= ar
11 CC ?= gcc
12 CXX ?= g++
14 # ---------------------------------------------------------------------------------------------------------------------
15 # Auto-detect OS if not defined
17 TARGET_MACHINE := $(shell $(CC) -dumpmachine)
19 ifneq ($(BSD),true)
20 ifneq ($(HAIKU),true)
21 ifneq ($(HURD),true)
22 ifneq ($(LINUX),true)
23 ifneq ($(MACOS),true)
24 ifneq ($(WASM),true)
25 ifneq ($(WINDOWS),true)
27 ifneq (,$(findstring bsd,$(TARGET_MACHINE)))
28 BSD = true
29 else ifneq (,$(findstring haiku,$(TARGET_MACHINE)))
30 HAIKU = true
31 else ifneq (,$(findstring linux,$(TARGET_MACHINE)))
32 LINUX = true
33 else ifneq (,$(findstring gnu,$(TARGET_MACHINE)))
34 HURD = true
35 else ifneq (,$(findstring apple,$(TARGET_MACHINE)))
36 MACOS = true
37 else ifneq (,$(findstring mingw,$(TARGET_MACHINE)))
38 WINDOWS = true
39 else ifneq (,$(findstring msys,$(TARGET_MACHINE)))
40 WINDOWS = true
41 else ifneq (,$(findstring wasm,$(TARGET_MACHINE)))
42 WASM = true
43 else ifneq (,$(findstring windows,$(TARGET_MACHINE)))
44 WINDOWS = true
45 endif
47 endif # WINDOWS
48 endif # WASM
49 endif # MACOS
50 endif # LINUX
51 endif # HURD
52 endif # HAIKU
53 endif # BSD
55 # ---------------------------------------------------------------------------------------------------------------------
56 # Auto-detect the processor
58 TARGET_PROCESSOR := $(firstword $(subst -, ,$(TARGET_MACHINE)))
60 ifneq (,$(filter i%86,$(TARGET_PROCESSOR)))
61 CPU_I386 = true
62 CPU_I386_OR_X86_64 = true
63 endif
64 ifneq (,$(filter wasm32,$(TARGET_PROCESSOR)))
65 CPU_I386 = true
66 CPU_I386_OR_X86_64 = true
67 endif
68 ifneq (,$(filter x86_64,$(TARGET_PROCESSOR)))
69 CPU_X86_64 = true
70 CPU_I386_OR_X86_64 = true
71 endif
72 ifneq (,$(filter arm%,$(TARGET_PROCESSOR)))
73 CPU_ARM = true
74 CPU_ARM_OR_AARCH64 = true
75 endif
76 ifneq (,$(filter arm64%,$(TARGET_PROCESSOR)))
77 CPU_ARM64 = true
78 CPU_ARM_OR_AARCH64 = true
79 endif
80 ifneq (,$(filter aarch64%,$(TARGET_PROCESSOR)))
81 CPU_AARCH64 = true
82 CPU_ARM_OR_AARCH64 = true
83 endif
84 ifneq (,$(filter riscv64%,$(TARGET_PROCESSOR)))
85 CPU_RISCV64 = true
86 endif
88 # ---------------------------------------------------------------------------------------------------------------------
89 # Set PKG_CONFIG (can be overridden by environment variable)
91 ifeq ($(WASM),true)
92 # Skip on wasm by default
93 PKG_CONFIG ?= false
94 else ifeq ($(WINDOWS),true)
95 # Build statically on Windows by default
96 PKG_CONFIG ?= pkg-config --static
97 else
98 PKG_CONFIG ?= pkg-config
99 endif
101 # ---------------------------------------------------------------------------------------------------------------------
102 # Set cross compiling flag
104 ifeq ($(WASM),true)
105 CROSS_COMPILING = true
106 endif
108 # ---------------------------------------------------------------------------------------------------------------------
109 # Set LINUX_OR_MACOS
111 ifeq ($(LINUX),true)
112 LINUX_OR_MACOS = true
113 endif
115 ifeq ($(MACOS),true)
116 LINUX_OR_MACOS = true
117 endif
119 # ---------------------------------------------------------------------------------------------------------------------
120 # Set HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS, HAIKU_OR_MACOS_OR_WINDOWS, MACOS_OR_WASM_OR_WINDOWS and MACOS_OR_WINDOWS
122 ifeq ($(HAIKU),true)
123 HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS = true
124 HAIKU_OR_MACOS_OR_WINDOWS = true
125 endif
127 ifeq ($(MACOS),true)
128 HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS = true
129 HAIKU_OR_MACOS_OR_WINDOWS = true
130 MACOS_OR_WASM_OR_WINDOWS = true
131 MACOS_OR_WINDOWS = true
132 endif
134 ifeq ($(WASM),true)
135 HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS = true
136 MACOS_OR_WASM_OR_WINDOWS = true
137 endif
139 ifeq ($(WINDOWS),true)
140 HAIKU_OR_MACOS_OR_WASM_OR_WINDOWS = true
141 HAIKU_OR_MACOS_OR_WINDOWS = true
142 MACOS_OR_WASM_OR_WINDOWS = true
143 MACOS_OR_WINDOWS = true
144 endif
146 # ---------------------------------------------------------------------------------------------------------------------
147 # Set UNIX
149 ifeq ($(BSD),true)
150 UNIX = true
151 endif
153 ifeq ($(HURD),true)
154 UNIX = true
155 endif
157 ifeq ($(LINUX),true)
158 UNIX = true
159 endif
161 ifeq ($(MACOS),true)
162 UNIX = true
163 endif
165 # ---------------------------------------------------------------------------------------------------------------------
166 # Check for optional libs (required by backend or bridges)
168 ifeq ($(LINUX),true)
169 HAVE_ALSA = $(shell $(PKG_CONFIG) --exists alsa && echo true)
170 HAVE_HYLIA = true
171 else ifeq ($(MACOS),true)
172 HAVE_HYLIA = true
173 else ifeq ($(WINDOWS),true)
174 HAVE_HYLIA = true
175 endif
177 ifeq ($(MACOS_OR_WASM_OR_WINDOWS),true)
178 HAVE_DGL = true
179 HAVE_YSFXGUI = true
180 else
181 HAVE_DBUS = $(shell $(PKG_CONFIG) --exists dbus-1 && echo true)
182 HAVE_DGL = $(shell $(PKG_CONFIG) --exists gl x11 xcursor xext xrandr && echo true)
183 HAVE_YSFXGUI = $(shell $(PKG_CONFIG) --exists freetype2 fontconfig gl x11 && echo true)
184 HAVE_X11 = $(shell $(PKG_CONFIG) --exists x11 && echo true)
185 HAVE_XCURSOR = $(shell $(PKG_CONFIG) --exists xcursor && echo true)
186 HAVE_XEXT = $(shell $(PKG_CONFIG) --exists xext && echo true)
187 HAVE_XRANDR = $(shell $(PKG_CONFIG) --exists xrandr && echo true)
188 endif
190 # FIXME update to DGL with wasm compat
191 ifeq ($(WASM),true)
192 HAVE_DGL = false
193 endif
195 # NOTE opt-out rather than opt-in
196 HAVE_YSFX = true
198 # NOTE not yet implemented, disabled for now
199 HAVE_YSFXGUI = false
201 ifeq ($(UNIX),true)
202 ifneq ($(MACOS),true)
203 HAVE_PULSEAUDIO = $(shell $(PKG_CONFIG) --exists libpulse-simple && echo true)
204 endif
205 endif
207 # ffmpeg values taken from https://ffmpeg.org/download.html (v2.8.15 maximum)
208 HAVE_FFMPEG = $(shell $(PKG_CONFIG) --max-version=56.60.100 libavcodec && \
209 $(PKG_CONFIG) --max-version=56.40.101 libavformat && \
210 $(PKG_CONFIG) --max-version=54.31.100 libavutil && echo true)
211 HAVE_FLUIDSYNTH = $(shell $(PKG_CONFIG) --atleast-version=1.1.7 fluidsynth && echo true)
212 HAVE_LIBLO = $(shell $(PKG_CONFIG) --exists liblo && echo true)
213 HAVE_QT4 = $(shell $(PKG_CONFIG) --exists QtCore QtGui && echo true)
214 HAVE_QT5 = $(shell $(PKG_CONFIG) --exists Qt5Core Qt5Gui Qt5Widgets && \
215 $(PKG_CONFIG) --variable=qt_config Qt5Core | grep -q -v "static" && echo true)
216 HAVE_QT5PKG = $(shell $(PKG_CONFIG) --silence-errors --variable=prefix Qt5OpenGLExtensions 1>/dev/null && echo true)
217 HAVE_QT5BREW = $(shell test -e /usr/local/opt/qt5/bin/uic && echo true)
218 HAVE_SNDFILE = $(shell $(PKG_CONFIG) --exists sndfile && echo true)
220 ifeq ($(HAVE_FLUIDSYNTH),true)
221 HAVE_FLUIDSYNTH_INSTPATCH = $(shell $(PKG_CONFIG) --atleast-version=2.1.0 fluidsynth && \
222 $(PKG_CONFIG) --atleast-version=1.1.4 libinstpatch-1.0 && echo true)
223 endif
225 ifeq ($(JACKBRIDGE_DIRECT),true)
226 HAVE_JACK = $(shell $(PKG_CONFIG) --exists jack && echo true)
227 HAVE_JACKLIB = $(HAVE_JACK)
228 else ifeq ($(WASM),true)
229 HAVE_JACK = false
230 HAVE_JACKLIB = false
231 else
232 HAVE_JACK = true
233 HAVE_JACKLIB = false
234 endif
236 ifeq ($(WASM),true)
237 HAVE_SDL1 = false
238 HAVE_SDL2 = true
239 else
240 HAVE_SDL1 = $(shell $(PKG_CONFIG) --exists sdl && echo true)
241 HAVE_SDL2 = $(shell $(PKG_CONFIG) --exists sdl2 && echo true)
242 endif
244 # ---------------------------------------------------------------------------------------------------------------------
245 # Check for optional libs (special non-pkgconfig tests)
247 ifneq ($(WASM),true)
248 ifneq ($(WINDOWS),true)
250 ifeq ($(shell $(PKG_CONFIG) --exists libmagic && echo true),true)
251 HAVE_LIBMAGIC = true
252 HAVE_LIBMAGICPKG = true
253 else
254 # old libmagic versions don't have a pkg-config file, so we need to call the compiler to test it
255 CFLAGS_WITHOUT_ARCH = $(subst -arch arm64,,$(CFLAGS))
256 HAVE_LIBMAGIC = $(shell echo '\#include <magic.h>' | $(CC) $(CFLAGS_WITHOUT_ARCH) -x c -w -c - -o /dev/null 2>/dev/null && echo true)
257 endif
259 endif
260 endif
262 # ---------------------------------------------------------------------------------------------------------------------
263 # Set Qt tools
265 ifeq ($(HAVE_QT4),true)
266 MOC_QT4 ?= $(shell $(PKG_CONFIG) --variable=moc_location QtCore)
267 RCC_QT4 ?= $(shell $(PKG_CONFIG) --variable=rcc_location QtCore)
268 ifeq (,$(wildcard $(MOC_QT4)))
269 HAVE_QT4 = false
270 endif
271 ifeq (,$(wildcard $(RCC_QT4)))
272 HAVE_QT4 = false
273 endif
274 endif
276 ifeq ($(HAVE_QT5),true)
277 QT5_HOSTBINS = $(shell $(PKG_CONFIG) --variable=host_bins Qt5Core)
278 else ifeq ($(HAVE_QT5PKG),true)
279 QT5_HOSTBINS = $(shell $(PKG_CONFIG) --variable=prefix Qt5OpenGLExtensions)/bin
280 else ifeq ($(HAVE_QT5BREW),true)
281 QT5_HOSTBINS = /usr/local/opt/qt5/bin
282 endif
284 MOC_QT5 ?= $(QT5_HOSTBINS)/moc
285 RCC_QT5 ?= $(QT5_HOSTBINS)/rcc
286 UIC_QT5 ?= $(QT5_HOSTBINS)/uic
288 ifeq (,$(wildcard $(MOC_QT5)))
289 HAVE_QT5 = false
290 endif
291 ifeq (,$(wildcard $(RCC_QT5)))
292 HAVE_QT5 = false
293 endif
294 ifeq (,$(wildcard $(UIC_QT5)))
295 HAVE_QT5 = false
296 endif
298 ifeq ($(HAVE_QT4),true)
299 HAVE_QT = true
300 else ifeq ($(HAVE_QT5),true)
301 HAVE_QT = true
302 # FIXME
303 else ifeq ($(WINDOWS),true)
304 HAVE_QT = true
305 endif
307 ifneq (,$(findstring true,$(HAVE_QT5)$(HAVE_QT5PKG)$(HAVE_QT5BREW)))
308 HAVE_THEME = true
309 endif
311 # ---------------------------------------------------------------------------------------------------------------------
312 # Set PyQt tools
314 PYRCC5 ?= $(shell which pyrcc5 2>/dev/null)
315 PYUIC5 ?= $(shell which pyuic5 2>/dev/null)
317 ifneq ($(PYUIC5),)
318 ifneq ($(PYRCC5),)
319 HAVE_PYQT = true
320 ifneq (,$(findstring true,$(HAVE_QT5)$(HAVE_QT5PKG)$(HAVE_QT5BREW)))
321 HAVE_FRONTEND = true
322 endif
323 endif
324 endif
326 # ---------------------------------------------------------------------------------------------------------------------
327 # Set PyQt tools, part2
329 PYRCC ?= $(PYRCC5)
330 PYUIC ?= $(PYUIC5)
332 # ---------------------------------------------------------------------------------------------------------------------
333 # Set USING_RTAUDIO
335 ifneq ($(HAIKU),true)
336 ifneq ($(WASM),true)
337 USING_RTAUDIO = true
338 endif
339 endif
341 # ---------------------------------------------------------------------------------------------------------------------
342 # Disable features for static plugin target
344 ifeq ($(STATIC_PLUGIN_TARGET),true)
345 HAVE_ALSA = false
346 HAVE_JACK = false
347 HAVE_JACKLIB = false
348 HAVE_FRONTEND = false
349 HAVE_HYLIA = false
350 HAVE_LIBLO = false
351 HAVE_PULSEAUDIO = false
352 HAVE_PYQT = false
353 HAVE_QT4 = false
354 HAVE_QT5 = false
355 HAVE_QT5PKG = false
356 HAVE_QT5BREW = false
357 HAVE_SDL = false
358 HAVE_SDL1 = false
359 HAVE_SDL2 = false
360 USING_RTAUDIO = false
361 endif
363 # ---------------------------------------------------------------------------------------------------------------------
364 # Set libs stuff (part 1)
366 ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
367 LIBDL_LIBS = -ldl
368 endif
370 ifeq ($(HAVE_LIBLO),true)
371 LIBLO_FLAGS = $(shell $(PKG_CONFIG) --cflags liblo)
372 LIBLO_LIBS = $(shell $(PKG_CONFIG) --libs liblo)
373 endif
375 ifeq ($(HAVE_FFMPEG),true)
376 FFMPEG_FLAGS = $(shell $(PKG_CONFIG) --cflags libavcodec libavformat libavutil)
377 FFMPEG_LIBS = $(shell $(PKG_CONFIG) --libs libavcodec libavformat libavutil)
378 endif
380 ifeq ($(HAVE_FLUIDSYNTH),true)
381 FLUIDSYNTH_FLAGS = $(shell $(PKG_CONFIG) --cflags fluidsynth)
382 FLUIDSYNTH_LIBS = $(shell $(PKG_CONFIG) --libs fluidsynth)
383 endif
385 ifeq ($(HAVE_JACKLIB),true)
386 JACK_FLAGS = $(shell $(PKG_CONFIG) --cflags jack)
387 JACK_LIBS = $(shell $(PKG_CONFIG) --libs jack)
388 JACK_LIBDIR = $(shell $(PKG_CONFIG) --variable=libdir jack)/jack
389 endif
391 ifeq ($(HAVE_QT5),true)
392 QT5_FLAGS = $(shell $(PKG_CONFIG) --cflags Qt5Core Qt5Gui Qt5Widgets)
393 QT5_LIBS = $(shell $(PKG_CONFIG) --libs Qt5Core Qt5Gui Qt5Widgets)
394 endif
396 ifeq ($(WASM),true)
397 HAVE_SDL = true
398 SDL_FLAGS = -sUSE_SDL=2
399 SDL_LIBS = -sUSE_SDL=2
400 else ifeq ($(HAVE_SDL2),true)
401 HAVE_SDL = true
402 SDL_FLAGS = $(shell $(PKG_CONFIG) $(PKG_CONFIG_FLAGS) --cflags sdl2)
403 SDL_LIBS = $(shell $(PKG_CONFIG) $(PKG_CONFIG_FLAGS) --libs sdl2)
404 else ifeq ($(HAVE_SDL1),true)
405 HAVE_SDL = true
406 SDL_FLAGS = $(shell $(PKG_CONFIG) $(PKG_CONFIG_FLAGS) --cflags sdl)
407 SDL_LIBS = $(shell $(PKG_CONFIG) $(PKG_CONFIG_FLAGS) --libs sdl)
408 endif
410 ifeq ($(HAVE_SNDFILE),true)
411 SNDFILE_FLAGS = $(shell $(PKG_CONFIG) --cflags sndfile)
412 SNDFILE_LIBS = $(shell $(PKG_CONFIG) --libs sndfile)
413 endif
415 # ifeq ($(HAVE_YSFXGUI),true)
416 # ifeq ($(MACOS),true)
417 # YSFX_LIBS = -framework Cocoa -framework Carbon -framework Metal -framework Foundation
418 # else ifeq ($(WASM),true)
419 # # TODO
420 # YSFX_LIBS =
421 # else
422 # YSFX_FLAGS = $(shell $(PKG_CONFIG) --cflags freetype2 fontconfig)
423 # YSFX_LIBS = $(shell $(PKG_CONFIG) --libs freetype2 fontconfig gl x11)
424 # endif
425 # endif
427 ifeq ($(HAVE_X11),true)
428 X11_FLAGS = $(shell $(PKG_CONFIG) --cflags x11)
429 X11_LIBS = $(shell $(PKG_CONFIG) --libs x11)
430 endif
432 # ---------------------------------------------------------------------------------------------------------------------
433 # Set libs stuff (dgl)
435 ifeq ($(HAVE_DGL),true)
437 DGL_FLAGS = -DHAVE_OPENGL -DDGL_OPENGL -DHAVE_DGL
439 ifeq ($(HAIKU),true)
440 DGL_FLAGS += $(shell $(PKG_CONFIG) --cflags gl)
441 DGL_LIBS = $(shell $(PKG_CONFIG) --libs gl) -lbe
442 else ifeq ($(MACOS),true)
443 DGL_FLAGS += -DGL_SILENCE_DEPRECATION=1 -Wno-deprecated-declarations
444 DGL_LIBS = -framework OpenGL -framework Cocoa -framework CoreVideo
445 else ifeq ($(WASM),true)
446 ifneq ($(USE_GLES2)$(USE_GLES3),true)
447 DGL_LIBS = -sLEGACY_GL_EMULATION -sGL_UNSAFE_OPTS=0
448 endif
449 else ifeq ($(WINDOWS),true)
450 DGL_LIBS = -lcomdlg32 -ldwmapi -lopengl32 -lgdi32
451 else
452 DGL_FLAGS += -DHAVE_X11 -DHAVE_XCURSOR -DHAVE_XEXT -DHAVE_XSYNC -DHAVE_XRANDR
453 DGL_FLAGS += $(shell $(PKG_CONFIG) --cflags gl x11 xcursor xext xrandr)
454 DGL_LIBS = $(shell $(PKG_CONFIG) --libs gl x11 xcursor xext xrandr)
455 ifeq ($(HAVE_DBUS)$(STATIC_PLUGIN_TARGET)$(USING_CUSTOM_DPF),truetruetrue)
456 DGL_FLAGS += -DHAVE_DBUS
457 DGL_FLAGS += $(shell $(PKG_CONFIG) --cflags dbus-1)
458 DGL_LIBS += $(shell $(PKG_CONFIG) --libs dbus-1)
459 endif
460 endif
462 endif
464 # ---------------------------------------------------------------------------------------------------------------------
465 # Set libs stuff (libmagic)
467 ifeq ($(HAVE_LIBMAGICPKG),true)
469 MAGIC_FLAGS = $(shell $(PKG_CONFIG) --cflags libmagic)
470 # this is missing in upstream pkg-config
471 MAGIC_FLAGS += -I$(shell $(PKG_CONFIG) --variable=includedir libmagic)
472 MAGIC_LIBS = $(shell $(PKG_CONFIG) --libs libmagic)
474 else ifeq ($(HAVE_LIBMAGIC),true)
476 MAGIC_LIBS += -lmagic
477 ifeq ($(LINUX_OR_MACOS),true)
478 MAGIC_LIBS += -lz
479 endif
481 endif
483 # ---------------------------------------------------------------------------------------------------------------------
484 # Set libs stuff (rtaudio)
486 ifeq ($(USING_RTAUDIO),true)
488 RTAUDIO_FLAGS = -DHAVE_GETTIMEOFDAY
489 RTMIDI_FLAGS =
491 ifeq ($(DEBUG),true)
492 RTAUDIO_FLAGS += -D__RTAUDIO_DEBUG__
493 RTMIDI_FLAGS += -D__RTMIDI_DEBUG__
494 endif
496 ifeq ($(HAVE_ALSA),true)
497 RTAUDIO_FLAGS += $(shell $(PKG_CONFIG) --cflags alsa) -D__LINUX_ALSA__
498 RTAUDIO_LIBS += $(shell $(PKG_CONFIG) --libs alsa) -pthread
499 RTMIDI_FLAGS += $(shell $(PKG_CONFIG) --cflags alsa) -D__LINUX_ALSA__
500 RTMIDI_LIBS += $(shell $(PKG_CONFIG) --libs alsa)
501 endif
503 ifeq ($(HAVE_JACK),true)
504 ifeq ($(UNIX),true)
505 RTAUDIO_FLAGS += -D__UNIX_JACK__
506 endif
507 endif
509 ifeq ($(HAVE_PULSEAUDIO),true)
510 RTAUDIO_FLAGS += $(shell $(PKG_CONFIG) --cflags libpulse-simple) -D__UNIX_PULSE__
511 RTAUDIO_LIBS += $(shell $(PKG_CONFIG) --libs libpulse-simple)
512 endif
514 ifeq ($(MACOS),true)
515 RTAUDIO_FLAGS += -D__MACOSX_CORE__
516 RTAUDIO_LIBS += -framework CoreAudio
517 RTMIDI_FLAGS += -D__MACOSX_CORE__
518 RTMIDI_LIBS += -framework CoreMIDI
519 else ifeq ($(WINDOWS),true)
520 RTAUDIO_FLAGS += -D__WINDOWS_ASIO__ -D__WINDOWS_DS__ -D__WINDOWS_WASAPI__
521 RTAUDIO_LIBS += -ldsound -luuid -lksuser
522 RTMIDI_FLAGS += -D__WINDOWS_MM__
523 RTMIDI_LIBS += -lwinmm
524 endif
526 endif
528 # ---------------------------------------------------------------------------------------------------------------------
529 # Set libs stuff (extra)
531 ifeq ($(BSD),true)
533 HYLIA_FLAGS =
534 HYLIA_LIBS =
535 JACKBRIDGE_LIBS = -pthread -lrt
536 LILV_LIBS = -lm -lrt
537 RTMEMPOOL_LIBS = -pthread
538 WATER_LIBS = -pthread -lrt
540 else ifeq ($(HAIKU),true)
542 HYLIA_FLAGS =
543 HYLIA_LIBS =
544 JACKBRIDGE_LIBS = -lpthread
545 LILV_LIBS = -lm
546 RTMEMPOOL_LIBS = -lpthread
547 WATER_LIBS = -lpthread
549 else ifeq ($(HURD),true)
551 HYLIA_FLAGS =
552 HYLIA_LIBS =
553 JACKBRIDGE_LIBS = -ldl -pthread -lrt
554 LILV_LIBS = -ldl -lm -lrt
555 RTMEMPOOL_LIBS = -pthread -lrt
556 WATER_LIBS = -ldl -pthread -lrt
558 else ifeq ($(LINUX),true)
560 HYLIA_FLAGS = -DLINK_PLATFORM_LINUX=1
561 HYLIA_LIBS =
562 JACKBRIDGE_LIBS = -ldl -pthread -lrt
563 LILV_LIBS = -ldl -lm -lrt
564 RTMEMPOOL_LIBS = -pthread -lrt
565 WATER_LIBS = -ldl -pthread -lrt
567 else ifeq ($(MACOS),true)
569 HYLIA_FLAGS = -DLINK_PLATFORM_MACOSX=1
570 HYLIA_LIBS =
571 JACKBRIDGE_LIBS = -pthread
572 LILV_LIBS = -lm
573 RTMEMPOOL_LIBS = -pthread
574 WATER_LIBS = -pthread -framework AppKit
576 else ifeq ($(WASM),true)
578 HYLIA_FLAGS =
579 HYLIA_LIBS =
580 JACKBRIDGE_LIBS =
581 LILV_LIBS = -ldl -lm
582 RTMEMPOOL_LIBS =
583 WATER_LIBS =
585 else ifeq ($(WINDOWS),true)
587 HYLIA_FLAGS = -DLINK_PLATFORM_WINDOWS=1
588 HYLIA_LIBS = -liphlpapi
589 JACKBRIDGE_LIBS = -pthread
590 LILV_LIBS = -lm
591 RTMEMPOOL_LIBS = -pthread
592 WATER_LIBS = -pthread -luuid -lwsock32 -lwininet -lversion -lole32 -lws2_32 -loleaut32 -limm32 -lcomdlg32 -lshlwapi -lrpcrt4 -lwinmm
594 endif
596 # ---------------------------------------------------------------------------------------------------------------------
598 AUDIO_DECODER_LIBS = $(FFMPEG_LIBS)
599 AUDIO_DECODER_LIBS += $(SNDFILE_LIBS)
601 NATIVE_PLUGINS_LIBS += $(DGL_LIBS)
602 NATIVE_PLUGINS_LIBS += $(FFMPEG_LIBS)
603 NATIVE_PLUGINS_LIBS += $(SNDFILE_LIBS)
605 STATIC_CARLA_PLUGIN_LIBS = $(AUDIO_DECODER_LIBS)
606 STATIC_CARLA_PLUGIN_LIBS += $(NATIVE_PLUGINS_LIBS)
607 STATIC_CARLA_PLUGIN_LIBS += $(FLUIDSYNTH_LIBS)
608 STATIC_CARLA_PLUGIN_LIBS += $(HYLIA_LIBS)
609 STATIC_CARLA_PLUGIN_LIBS += $(LIBLO_LIBS)
610 STATIC_CARLA_PLUGIN_LIBS += $(LILV_LIBS)
611 STATIC_CARLA_PLUGIN_LIBS += $(MAGIC_LIBS)
612 STATIC_CARLA_PLUGIN_LIBS += $(RTMEMPOOL_LIBS)
613 STATIC_CARLA_PLUGIN_LIBS += $(WATER_LIBS)
614 STATIC_CARLA_PLUGIN_LIBS += $(YSFX_LIBS)
616 ifeq ($(EXTERNAL_PLUGINS),true)
617 ifneq ($(DEBUG),true)
618 ifneq ($(TESTBUILD),true)
619 ifeq ($(shell $(PKG_CONFIG) --exists liblo fftw3 mxml zlib && echo true),true)
620 STATIC_CARLA_PLUGIN_LIBS += $(filter-out -lpthread,$(shell $(PKG_CONFIG) --libs liblo fftw3 mxml zlib))
621 ifneq ($(WASM),true)
622 STATIC_CARLA_PLUGIN_LIBS += -pthread
623 endif
624 endif
625 endif
626 endif
627 endif
629 # ---------------------------------------------------------------------------------------------------------------------