1#!/usr/bin/make -f
2# Makefile for Carla #
3# ------------------ #
4# Created by falkTX
5#
6
7# NOTE to be imported from main Makefile
8
9# ----------------------------------------------------------------------------------------------------------------------------
10
11ifneq ($(MAKE_TERMOUT),)
12ANS_NO=\033[31mNO\033[0m
13ANS_YES=\033[32mYES\033[0m
14mS=\033[33m[
15mZ=\033[30;1m[
16mE=]\033[0m
17tS=\033[36m
18tE=\033[0m
19else
20ANS_NO=NO
21ANS_YES=YES
22mS=[
23mZ=[
24mE=]
25endif
26
27features_print_main:
28	@printf -- "$(tS)---> Main features $(tE)\n"
29ifeq ($(HAVE_PYQT),true)
30	@printf -- "Front-End:     $(ANS_YES)\n"
31	@printf -- "LV2 plugin:    $(ANS_YES)\n"
32ifneq ($(HAIKU),true)
33	@printf -- "VST2 plugin:   $(ANS_YES)\n"
34else
35	@printf -- "VST2 plugin:   $(ANS_NO)  $(mZ)Not available for Haiku$(mE)\n"
36endif
37else
38	@printf -- "Front-End:     $(ANS_NO)  $(mS)Missing PyQt$(mE)\n"
39	@printf -- "LV2 plugin:    $(ANS_NO)  $(mS)No front-end$(mE)\n"
40	@printf -- "VST2 plugin:   $(ANS_NO)  $(mS)No front-end$(mE)\n"
41endif
42ifeq ($(HAVE_HYLIA),true)
43	@printf -- "Link support:  $(ANS_YES)\n"
44else
45ifeq ($(MACOS_OLD),true)
46	@printf -- "Link support:  $(ANS_NO)  $(mZ)MacOS >= 10.8 only$(mE)\n"
47else
48	@printf -- "Link support:  $(ANS_NO)  $(mZ)Linux, MacOS and Windows only$(mE)\n"
49endif
50endif
51ifeq ($(HAVE_LIBLO),true)
52	@printf -- "OSC support:   $(ANS_YES)\n"
53else
54	@printf -- "OSC support:   $(ANS_NO)  $(mS)Missing liblo$(mE)\n"
55endif
56ifeq ($(WIN32),true)
57	@printf -- "Binary detect: $(ANS_YES)\n"
58else
59ifeq ($(HAVE_LIBMAGIC),true)
60	@printf -- "Binary detect: $(ANS_YES)\n"
61else
62	@printf -- "Binary detect: $(ANS_NO)  $(mS)Missing libmagic/file$(mE)\n"
63endif
64endif
65	@printf -- "\n"
66
67	@printf -- "$(tS)---> Engine drivers $(tE)\n"
68	@printf -- "JACK:        $(ANS_YES)\n"
69ifeq ($(LINUX),true)
70ifeq ($(HAVE_ALSA),true)
71	@printf -- "ALSA:        $(ANS_YES)\n"
72else
73	@printf -- "ALSA:        $(ANS_NO)  $(mS)Missing ALSA$(mE)\n"
74endif
75else
76	@printf -- "ALSA:        $(ANS_NO)  $(mZ)Linux only$(mE)\n"
77endif
78ifeq ($(UNIX),true)
79ifneq ($(MACOS),true)
80ifeq ($(HAVE_PULSEAUDIO),true)
81	@printf -- "PulseAudio:  $(ANS_YES)\n"
82else
83	@printf -- "PulseAudio:  $(ANS_NO)  $(mS)Missing PulseAudio$(mE)\n"
84endif
85else
86	@printf -- "PulseAudio:  $(ANS_NO)  $(mZ)Not available for MacOS$(mE)\n"
87endif
88else
89	@printf -- "PulseAudio:  $(ANS_NO)  $(mZ)Only available for Unix systems$(mE)\n"
90endif
91ifeq ($(MACOS),true)
92	@printf -- "CoreAudio:   $(ANS_YES)\n"
93else
94	@printf -- "CoreAudio:   $(ANS_NO)  $(mZ)MacOS only$(mE)\n"
95endif
96ifeq ($(WIN32),true)
97	@printf -- "ASIO:        $(ANS_YES)\n"
98	@printf -- "DirectSound: $(ANS_YES)\n"
99	@printf -- "WASAPI:      $(ANS_YES)\n"
100else
101	@printf -- "ASIO:        $(ANS_NO)  $(mZ)Windows only$(mE)\n"
102	@printf -- "DirectSound: $(ANS_NO)  $(mZ)Windows only$(mE)\n"
103	@printf -- "WASAPI:      $(ANS_NO)  $(mZ)Windows only$(mE)\n"
104endif
105	@printf -- "\n"
106
107	@printf -- "$(tS)---> Plugin formats: $(tE)\n"
108	@printf -- "Internal: $(ANS_YES)\n"
109	@printf -- "LADSPA:   $(ANS_YES)\n"
110	@printf -- "DSSI:     $(ANS_YES)\n"
111	@printf -- "LV2:      $(ANS_YES)\n"
112ifeq ($(MACOS_OR_WIN32),true)
113ifeq ($(USING_JUCE),true)
114	@printf -- "VST2:     $(ANS_YES) (with UI, using JUCE)\n"
115	@printf -- "VST3:     $(ANS_YES) (with UI, using JUCE)\n"
116else  # USING_JUCE
117	@printf -- "VST2:     $(ANS_YES) (with UI)\n"
118	@printf -- "VST3:     $(ANS_NO)\n"
119endif # USING_JUCE
120else  # MACOS_OR_WIN32
121ifeq ($(HAIKU),true)
122	@printf -- "VST2:     $(ANS_YES) (without UI)\n"
123	@printf -- "VST3:     $(ANS_NO)\n"
124else  # HAIKU
125ifeq ($(HAVE_X11),true)
126	@printf -- "VST2:     $(ANS_YES) (with UI)\n"
127ifeq ($(USING_JUCE),true)
128	@printf -- "VST3:     $(ANS_YES) (with UI, using JUCE)\n"
129else  # USING_JUCE
130	@printf -- "VST3:     $(ANS_NO)\n"
131endif # USING_JUCE
132else  # HAVE_X11
133	@printf -- "VST2:     $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
134	@printf -- "VST3:     $(ANS_NO)\n"
135endif # HAVE_X11
136endif # HAIKU
137endif # MACOS_OR_WIN32
138ifeq ($(MACOS),true)
139ifeq ($(USING_JUCE),true)
140	@printf -- "AU:       $(ANS_YES) (with UI, using JUCE)\n"
141else  # USING_JUCE
142	@printf -- "AU:       $(ANS_NO)\n"
143endif # USING_JUCE
144else  # MACOS
145	@printf -- "AU:       $(ANS_NO)  $(mZ)MacOS only$(mE)\n"
146endif # MACOS
147	@printf -- "\n"
148
149	@printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
150	@printf -- "External: $(ANS_YES) (direct)\n"
151	@printf -- "Gtk2:     $(ANS_YES) (bridge)\n"
152	@printf -- "Gtk3:     $(ANS_YES) (bridge)\n"
153ifneq ($(MACOS_OR_WIN32),true)
154ifeq ($(HAVE_QT4),true)
155	@printf -- "Qt4:      $(ANS_YES) (bridge)\n"
156else
157	@printf -- "Qt4:      $(ANS_NO)  $(mS)Qt4 missing$(mE)\n"
158endif
159ifeq ($(HAVE_QT5),true)
160	@printf -- "Qt5:      $(ANS_YES) (bridge)\n"
161else
162	@printf -- "Qt5:      $(ANS_NO)  $(mS)Qt5 missing$(mE)\n"
163endif
164ifeq ($(HAVE_X11),true)
165	@printf -- "X11:      $(ANS_YES) (direct+bridge)\n"
166else
167	@printf -- "X11:      $(ANS_NO)  $(mS)X11 missing$(mE)\n"
168endif
169else # !MACOS_OR_WIN32
170	@printf -- "Qt4:      $(ANS_NO)  $(mZ)Not available for Windows or MacOS$(mE)\n"
171	@printf -- "Qt5:      $(ANS_NO)  $(mZ)Not available for Windows or MacOS$(mE)\n"
172	@printf -- "X11:      $(ANS_NO)  $(mZ)Not available for Windows or MacOS$(mE)\n"
173endif # !MACOS_OR_WIN32
174ifeq ($(MACOS),true)
175	@printf -- "Cocoa:    $(ANS_YES) (direct+bridge)\n"
176else
177	@printf -- "Cocoa:    $(ANS_NO)  $(mZ)MacOS only$(mE)\n"
178endif
179ifeq ($(WIN32),true)
180	@printf -- "Windows:  $(ANS_YES) (direct+bridge)\n"
181else
182	@printf -- "Windows:  $(ANS_NO)  $(mZ)Windows only$(mE)\n"
183endif
184	@printf -- "\n"
185
186	@printf -- "$(tS)---> File formats: $(tE)\n"
187ifeq ($(HAVE_SNDFILE),true)
188	@printf -- "Basic: $(ANS_YES)\n"
189else
190	@printf -- "Basic: $(ANS_NO) $(mS)libsndfile missing$(mE)\n"
191endif
192	@printf -- "MP3:   $(ANS_YES)\n"
193ifeq ($(HAVE_FFMPEG),true)
194	@printf -- "Extra: $(ANS_YES)\n"
195else
196	@printf -- "Extra: $(ANS_NO) $(mS)FFmpeg missing or too new$(mE)\n"
197endif
198# ifeq ($(HAVE_FLUIDSYNTH_INSTPATCH),true)
199# 	@printf -- "DLS:   $(ANS_YES)\n"
200# else
201# 	@printf -- "DLS:   $(ANS_NO) $(mS)FluidSynth/instpatch missing or too old$(mE)\n"
202# endif
203ifeq ($(HAVE_FLUIDSYNTH),true)
204	@printf -- "SF2/3: $(ANS_YES)\n"
205else
206	@printf -- "SF2/3: $(ANS_NO) $(mS)FluidSynth missing or too old$(mE)\n"
207endif
208	@printf -- "SFZ:   $(ANS_YES)\n"
209	@printf -- "\n"
210
211	@printf -- "$(tS)---> Internal plugins: $(tE)\n"
212	@printf -- "Basic Plugins:    $(ANS_YES)\n"
213	@printf -- "Carla-Patchbay:   $(ANS_YES)\n"
214	@printf -- "Carla-Rack:       $(ANS_YES)\n"
215ifeq ($(EXTERNAL_PLUGINS),true)
216	@printf -- "External Plugins: $(ANS_YES)\n"
217else
218	@printf -- "External Plugins: $(ANS_NO)\n"
219endif
220
221ifneq ($(EXTERNAL_PLUGINS),true)
222features_print_external_plugins:
223endif
224
225features: features_print_main features_print_external_plugins
226
227# ---------------------------------------------------------------------------------------------------------------------
228