1# Process this file with autoconf to produce a configure script.
2AC_INIT(QjackCtl, 0.9.5, rncbc@rncbc.org, qjackctl)
3
4AC_CONFIG_SRCDIR(src/qjackctl.cpp)
5AC_CONFIG_HEADERS(src/config.h)
6AC_CONFIG_FILES(Makefile qjackctl.spec src/src.pri)
7
8# Build version string.
9AC_CACHE_VAL([ac_cv_build_version], [
10   ac_cv_build_version=$(git describe --tags --dirty --abbrev=6 2>/dev/null)
11   if test -n "$ac_cv_build_version"; then
12      ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/^[[^0-9]]\+//')
13      ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/^1_//')
14      ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/^[[_vV]]\+//')
15      ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/-g/git./')
16      ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/[[_|-]]/./g')
17      ac_cv_build_version_extra=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
18      if test "x$ac_cv_build_version_extra" != "xmaster"; then
19         ac_cv_build_version="$ac_cv_build_version [[$ac_cv_build_version_extra]]"
20      fi
21   else
22      ac_cv_build_version=$PACKAGE_VERSION
23   fi
24])
25ac_build_version="$ac_cv_build_version"
26AC_DEFINE_UNQUOTED(CONFIG_BUILD_VERSION, ["$ac_build_version"], [Build version string.])
27
28# Sanitized version string.
29AC_CACHE_VAL([ac_cv_version], [
30   ac_cv_version=$(echo $PACKAGE_VERSION | sed -r 's/^([[0-9|\.]]+).*$/\1/')
31])
32ac_version="$ac_cv_version"
33AC_DEFINE_UNQUOTED(CONFIG_VERSION, ["$ac_version"], [Version string.])
34AC_SUBST(ac_version)
35
36# Set default installation prefix.
37AC_PREFIX_DEFAULT(/usr/local)
38if test "x$prefix" = "xNONE"; then
39   prefix=$ac_default_prefix
40fi
41if test "x$exec_prefix" = "xNONE"; then
42   exec_prefix=$prefix
43fi
44eval ac_prefix=$prefix
45AC_SUBST(ac_prefix)
46AC_DEFINE_UNQUOTED(CONFIG_PREFIX, ["$ac_prefix"], [Default installation prefix.])
47
48# Set default installation directories.
49eval ac_bindir=$bindir
50AC_SUBST(ac_bindir)
51AC_DEFINE_UNQUOTED(CONFIG_BINDIR, ["$ac_bindir"], [Default executable binary path.])
52
53eval ac_libdir=$libdir
54AC_SUBST(ac_libdir)
55AC_DEFINE_UNQUOTED(CONFIG_LIBDIR, ["$ac_libdir"], [Default object library path.])
56
57eval datarootdir=$datarootdir
58eval ac_datadir=$datadir
59AC_SUBST(ac_datadir)
60AC_DEFINE_UNQUOTED(CONFIG_DATADIR, ["$ac_datadir"], [Default arch-idependent data path.])
61
62eval ac_mandir=$mandir
63AC_SUBST(ac_mandir)
64AC_DEFINE_UNQUOTED(CONFIG_MANDIR, ["$ac_mandir"], [Default man page path.])
65
66
67# Enable debugging argument option.
68AC_ARG_ENABLE(debug,
69  AS_HELP_STRING([--enable-debug], [enable debugging (default=no)]),
70  [ac_debug="$enableval"])
71
72# Enable Qt6 build preference.
73AC_ARG_ENABLE(qt6,
74  AS_HELP_STRING([--enable-qt6], [enable Qt6 build (default=yes)]),
75  [ac_qt6="$enableval"],
76  [ac_qt6="yes"])
77
78
79if test "x$ac_debug" = "xyes"; then
80   AC_DEFINE(CONFIG_DEBUG, 1, [Define if debugging is enabled.])
81   ac_stacktrace="yes"
82   ac_build_type="debug"
83else
84   ac_stacktrace="no"
85   ac_build_type="release"
86fi
87AC_SUBST(ac_build_type)
88
89
90# Disable system tray argument option.
91AC_ARG_ENABLE(system_tray,
92  AS_HELP_STRING([--enable-system-tray], [enable system tray (default=yes)]),
93  [ac_system_tray="$enableval"],
94  [ac_system_tray="yes"])
95
96# Enable JACK session support.
97AC_ARG_ENABLE(jack_session,
98  AS_HELP_STRING([--enable-jack-session], [enable JACK session support (default=yes)]),
99  [ac_jack_session="$enableval"],
100  [ac_jack_session="yes"])
101
102# Enable JACK port aliases support.
103AC_ARG_ENABLE(jack_port_aliases,
104  AS_HELP_STRING([--enable-jack-port-aliases], [enable JACK port aliases support (default=yes)]),
105  [ac_jack_port_aliases="$enableval"],
106  [ac_jack_port_aliases="yes"])
107
108# Enable JACK metadata support.
109AC_ARG_ENABLE(jack_metadata,
110  AS_HELP_STRING([--enable-jack-metadata], [enable JACK metadata support (default=yes)]),
111  [ac_jack_metadata="$enableval"],
112  [ac_jack_metadata="yes"])
113
114# Enable JACK MIDI support option.
115AC_ARG_ENABLE(jack_midi,
116  AS_HELP_STRING([--enable-jack-midi], [enable JACK MIDI support (default=yes)]),
117  [ac_jack_midi="$enableval"],
118  [ac_jack_midi="yes"])
119
120# Enable JACK CV support.
121AC_ARG_ENABLE(jack_cv,
122  AS_HELP_STRING([--enable-jack-cv], [enable JACK CV support (default=yes)]),
123  [ac_jack_cv="$enableval"],
124  [ac_jack_cv="yes"])
125
126# Enable JACK OSC support.
127AC_ARG_ENABLE(jack_osc,
128  AS_HELP_STRING([--enable-jack-osc], [enable JACK OSC support (default=yes)]),
129  [ac_jack_osc="$enableval"],
130  [ac_jack_osc="yes"])
131
132# Enable JACK version support.
133AC_ARG_ENABLE(jack_version,
134  AS_HELP_STRING([--enable-jack-version], [enable JACK version support (default=no)]),
135  [ac_jack_version="$enableval"],
136  [ac_jack_version="no"])
137
138# Enable ALSA sequencer support option.
139AC_ARG_ENABLE(alsa_seq,
140  AS_HELP_STRING([--enable-alsa-seq], [enable ALSA/MIDI sequencer support (default=yes)]),
141  [ac_alsa_seq="$enableval"],
142  [ac_alsa_seq="yes"])
143
144# Enable PortAudio argument option.
145AC_ARG_ENABLE(portaudio,
146  AS_HELP_STRING([--enable-portaudio], [enable PortAudio interface (default=yes)]),
147  [ac_portaudio="$enableval"],
148  [ac_portaudio="yes"])
149
150# Enable D-Bus argument option.
151AC_ARG_ENABLE(dbus,
152  AS_HELP_STRING([--enable-dbus], [enable D-Bus interface (default=yes)]),
153  [ac_dbus="$enableval"],
154  [ac_dbus="yes"])
155
156# Enable unique/single instance.
157AC_ARG_ENABLE(xunique,
158  AS_HELP_STRING([--enable-xunique], [enable unique/single instance (default=yes)]),
159  [ac_xunique="$enableval"],
160  [ac_xunique="yes"])
161
162# Enable debugger stack-trace option (assumes --enable-debug).
163AC_ARG_ENABLE(stacktrace,
164  AS_HELP_STRING([--enable-stacktrace], [enable debugger stack-trace (default=no)]),
165  [ac_stacktrace="$enableval"])
166
167
168# Standard installation base dirs.
169ac_path=$PATH
170ac_pkg_config_path=$PKG_CONFIG_PATH
171ac_with_paths=""
172
173# Set for alternate Qt installation dir.
174AC_ARG_WITH(qt,
175  AS_HELP_STRING([--with-qt=PATH], [use alternate Qt install path]),
176  [ac_qt_path="$withval"], [ac_qt_path="no"])
177
178if test "x$ac_qt_path" != "xno"; then
179   ac_path="$ac_qt_path/bin:$ac_path"
180   ac_pkg_config_path="$ac_qt_path/lib/pkgconfig:$ac_pkg_config_path"
181fi
182
183# Set for alternate JACK installation dir.
184AC_ARG_WITH(jack,
185  AS_HELP_STRING([--with-jack=PATH], [use alternate JACK install path]),
186  [ac_with_paths="$ac_with_paths $withval"])
187
188# Set for alternate ALSA installation dir.
189AC_ARG_WITH(alsa,
190  AS_HELP_STRING([--with-alsa=PATH], [use alternate ALSA install path]),
191  [ac_with_paths="$ac_with_paths $withval"])
192
193# Set for alternate PortAudio installation dir.
194AC_ARG_WITH(portaudio,
195  AS_HELP_STRING([--with-portaudio=PATH], [use alternate PortAudio install path]),
196  [ac_with_paths="$ac_with_paths $withval"])
197
198
199# Honor user specified flags.
200ac_cflags=$CFLAGS
201ac_ldflags=$LDFLAGS
202
203
204# Checks for programs.
205AC_PROG_CPP
206AC_PROG_CXX
207AC_PROG_CXXCPP
208
209# Checks for languages.
210AC_LANG_CPLUSPLUS
211
212# Check for pkg-config.
213PKG_PROG_PKG_CONFIG
214
215# Check whether -std=c++11 support is necessary (4 < g++ version < 6).
216AC_CACHE_CHECK([for g++ major version], [ac_cv_gxx_version_major], [
217   ac_cv_gxx_version_major=$($CC -dumpversion)
218   if test -n "$ac_cv_gxx_version_major"; then
219      ac_cv_gxx_version_major=$(echo $ac_cv_gxx_version_major | cut -d'.' -f1);
220   fi
221   ac_gxx_version_major=$(($ac_cv_gxx_version_major + 0))
222])
223ac_gxx_version_major=$ac_cv_gxx_version_major
224if test $ac_gxx_version_major -ge 4 -a $ac_gxx_version_major -lt 6; then
225   CXXFLAGS="-std=c++11 $CXXFLAGS"
226   ac_cflags="-std=c++11 $ac_cflags"
227elif test $ac_gxx_version_major -ge 6 -a $ac_gxx_version_major -lt 11; then
228   CXXFLAGS="-std=c++17 $CXXFLAGS"
229   ac_cflags="-std=c++17 $ac_cflags"
230fi
231
232# Check for proper flags.
233ac_arch=$(uname -m)
234
235# Check for install paths and alternatives...
236ac_libdirs="lib"
237
238if test "x$ac_arch" = "xx86_64"; then
239   ac_libdirs="$ac_libdirs lib64"
240fi
241
242CFLAGS="-fPIC $CFLAGS"
243CPPFLAGS="-fPIC $CPPFLAGS"
244
245# Prepend alternate dependencies paths.
246for X in $ac_with_paths; do
247  if test -d $X/bin; then
248     ac_path="$X/bin:$ac_path"
249  fi
250  if test -d $X/include; then
251     CFLAGS="-I$X/include $CFLAGS "
252     CPPFLAGS="-I$X/include $CPPFLAGS"
253     ac_incpath="$X/include $ac_incpath"
254  fi
255  for Y in $ac_libdirs; do
256     if test -d $X/$Y; then
257        LIBS="-L$X/$Y $LIBS"
258        ac_libs="-L$X/$Y $ac_libs"
259        if test -d $X/$Y/pkgconfig; then
260           ac_pkg_config_path="$X/$Y/pkgconfig:$ac_pkg_config_path"
261        fi
262     fi
263  done
264done
265
266# Set pkg-config path.
267if test -n "$ac_pkg_config_path"; then
268   export PKG_CONFIG_PATH=$ac_pkg_config_path
269fi
270
271
272# A common error message:
273ac_errmsg="not found in current PATH. Maybe QT development environment isn't available."
274
275# Check for qtchooser availability.
276AC_PATH_TOOL(ac_qtchooser, qtchooser, [no], $ac_path)
277if test -x $ac_qtchooser; then
278   if test "x$ac_qt6" = "xyes"; then
279      export QT_SELECT=6
280   else
281      export QT_SELECT=5
282   fi
283fi
284
285# Check for proper qmake path/version alternatives.
286AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path)
287if test "x$ac_qmake" = "xno"; then
288   if test "x$ac_qt6" = "xyes"; then
289      AC_PATH_TOOL(ac_cv_qmake, qmake-qt6, [no], $ac_path)
290      ac_qmake=$ac_cv_qmake
291   else
292      AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path)
293      ac_qmake=$ac_cv_qmake
294   fi
295fi
296
297# Check for proper Qt major version.
298AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [
299   ac_cv_qt_version=$($ac_qmake -query QT_VERSION)
300   ac_cv_qt_version_major=$(echo $ac_cv_qt_version | cut -d'.' -f1)
301   ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0))
302])
303ac_qt_version=$ac_cv_qt_version
304ac_qt_version_major=$ac_cv_qt_version_major
305if test "x$ac_qmake" = "xno"; then
306   if test $ac_qt_version_major -lt 6; then
307      AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)])
308   else
309      AC_MSG_ERROR([qmake-qt6 $ac_errmsg (qt6-devel)])
310   fi
311fi
312
313# Check for proper Qt install path.
314AC_CACHE_CHECK([for Qt install path (bin)], [ac_cv_qt_install_bins], [
315   ac_cv_qt_install_bins=$($ac_qmake -query QT_INSTALL_BINS)
316])
317ac_qt_install_bins=$ac_cv_qt_install_bins
318if test -d $ac_qt_install_bins; then
319   ac_path="$ac_qt_install_bins:$ac_path"
320fi
321
322AC_CACHE_CHECK([for Qt install path (libexec)], [ac_cv_qt_install_libexecs], [
323   ac_cv_qt_install_libexecs=$($ac_qmake -query QT_INSTALL_LIBEXECS)
324])
325ac_qt_install_libexecs=$ac_cv_qt_install_libexecs
326if test -d $ac_qt_install_libexecs; then
327   ac_path="$ac_qt_install_libexecs:$ac_path"
328fi
329
330# Check it again, now with updated PATH, just in case...
331AC_PATH_TOOL(ac_cv_qmake, qmake, [no], $ac_path)
332ac_qmake=$ac_cv_qmake
333if test "x$ac_qmake" = "xno"; then
334   AC_MSG_ERROR([qmake $ac_errmsg])
335fi
336
337AC_SUBST(ac_qmake)
338
339AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [
340   ac_cv_qt_install_headers=$($ac_qmake -query QT_INSTALL_HEADERS)
341])
342ac_qt_install_headers=$ac_cv_qt_install_headers
343if test -d $ac_qt_install_headers; then
344   CFLAGS="-I$ac_qt_install_headers $CFLAGS "
345   CPPFLAGS="-I$ac_qt_install_headers $CPPFLAGS"
346   ac_incpath="$ac_qt_install_headers $ac_incpath"
347fi
348
349AC_CACHE_CHECK([for Qt install libraries], [ac_cv_qt_install_libs], [
350   ac_cv_qt_install_libs=$($ac_qmake -query QT_INSTALL_LIBS)
351])
352ac_qt_install_libs=$ac_cv_qt_install_libs
353if test -d $ac_qt_install_libs; then
354   LIBS="-L$ac_qt_install_libs $LIBS"
355   ac_libs="-L$ac_qt_install_libs $ac_libs"
356fi
357
358# Finally, check for proper Qt version.
359AC_CACHE_CHECK([for Qt library version >= 5.1],
360   ac_cv_qtversion, [
361   AC_TRY_COMPILE([#include "QtCore/qglobal.h"], [
362      #if QT_VERSION < 0x050100
363      #error Qt library 5.1 or greater required.
364      #endif
365   ], ac_cv_qtversion="yes", [
366      echo "no; Qt 5.1 or greater is required"
367      exit 1
368   ])
369])
370
371# Check for Qt moc utility.
372AC_PATH_TOOL(ac_moc, moc, [no], $ac_path)
373if test "x$ac_moc" = "xno"; then
374   AC_MSG_ERROR([moc $ac_errmsg])
375fi
376AC_SUBST(ac_moc)
377
378# Check for Qt uic utility.
379AC_PATH_TOOL(ac_uic, uic, [no], $ac_path)
380if test "x$ac_uic" = "xno"; then
381   AC_MSG_ERROR([uic $ac_errmsg])
382fi
383AC_SUBST(ac_uic)
384
385
386# Check for Qt lupdate utility.
387AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path)
388if test "x$ac_lupdate" = "xno"; then
389   if test $ac_qt_version_major -lt 6; then
390      AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt5, [no], $ac_path)
391   else
392      AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt6, [no], $ac_path)
393   fi
394   if test "x$ac_cv_lupdate" = "xno"; then
395      if test $ac_qt_version_major -lt 6; then
396         AC_MSG_ERROR([lupdate $ac_errmsg (qt5-linguist)])
397      else
398         AC_MSG_ERROR([lupdate $ac_errmsg (qt6-linguist)])
399      fi
400   else
401      ac_lupdate=$ac_cv_lupdate;
402   fi
403fi
404AC_SUBST(ac_lupdate)
405
406# Check for Qt lrelease utility.
407AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path)
408if test "x$ac_lrelease" = "xno"; then
409   if test $ac_qt_version_major -lt 6; then
410      AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt5, [no], $ac_path)
411   else
412      AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt6, [no], $ac_path)
413   fi
414   if test "x$ac_cv_lrelease" = "xno"; then
415      if test $ac_qt_version_major -lt 6; then
416         AC_MSG_ERROR([lrelease $ac_errmsg (qt5-linguist)])
417      else
418         AC_MSG_ERROR([lrelease $ac_errmsg (qt6-linguist)])
419      fi
420   else
421      ac_lrelease=$ac_cv_lrelease;
422   fi
423fi
424AC_SUBST(ac_lrelease)
425
426
427# Checks for libraries.
428AC_CHECK_LIB(m, main)
429AC_CHECK_LIB(X11, main)
430AC_CHECK_LIB(Xext, main)
431
432
433# Check for JACK libraries.
434PKG_CHECK_MODULES([JACK], [jack >= 0.100.0], [ac_jack_lib="yes"], [ac_jack_lib="no"])
435if test "x$ac_jack_lib" = "xyes"; then
436   AC_DEFINE(CONFIG_JACK, 1, [Define if JACK library is available.])
437   ac_cflags="$ac_cflags $JACK_CFLAGS"
438   ac_libs="$ac_libs $JACK_LIBS"
439else
440   AC_MSG_ERROR([*** JACK library not found.])
441fi
442
443# Check for ALSA libraries and primarily
444# for ALSA/MIDI sequencer support.
445if test "x$ac_alsa_seq" = "xyes"; then
446   PKG_CHECK_MODULES([ALSA], [alsa], [ac_alsa_seq="yes"], [ac_alsa_seq="no"])
447fi
448if test "x$ac_alsa_seq" = "xyes"; then
449   AC_DEFINE(CONFIG_ALSA_SEQ, 1, [Define if ALSA library is available.])
450   ac_cflags="$ac_cflags $ALSA_CFLAGS"
451   ac_libs="$ac_libs $ALSA_LIBS"
452else
453   AC_MSG_WARN([*** ALSA library not found.])
454fi
455
456if test "x$ac_portaudio" = "xyes"; then
457   PKG_CHECK_MODULES([PORTAUDIO], [portaudio-2.0], [ac_portaudio="yes"], [ac_portaudio="no"])
458fi
459if test "x$ac_portaudio" = "xyes"; then
460   AC_DEFINE(CONFIG_PORTAUDIO, 1, [Define if PORTAUDIO library is available.])
461   ac_cflags="$ac_cflags $PORTAUDIO_CFLAGS"
462   ac_libs="$ac_libs $PORTAUDIO_LIBS"
463else
464   AC_MSG_WARN([*** PORTAUDIO library not found.])
465fi
466
467
468# Checks for header files.
469AC_HEADER_STDC
470AC_HEADER_SYS_WAIT
471AC_CHECK_HEADERS(fcntl.h sys/ioctl.h unistd.h poll.h signal.h)
472
473# Check for jack/statistics.h header.
474AC_CHECK_HEADER(jack/statistics.h, [ac_jack_statistics_h="yes"], [ac_jack_statistics_h="no"])
475if test "x$ac_jack_statistics_h" = "xyes"; then
476   AC_DEFINE(CONFIG_JACK_STATISTICS, 1, [Define if jack/statistics.h is available.])
477fi
478
479# Check for CoreAudio/CoreAudio.h header (MacOSX).
480AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ac_coreaudio="yes"], [ac_coreaudio="no"])
481if test "x$ac_coreaudio" = "xyes"; then
482   AC_DEFINE(CONFIG_COREAUDIO, 1, [Define if CoreAudio/CoreAudio.h is available (Mac OS X).])
483   ac_alsa_seq="no"
484   ac_libs="$ac_libs -framework CoreAudio -framework CoreFoundation"
485fi
486
487# Check for JACK MIDI headers availability.
488if test "x$ac_jack_midi" = "xyes"; then
489   AC_CHECK_HEADER(jack/midiport.h, [ac_jack_midi="yes"], [ac_jack_midi="no"])
490   if test "x$ac_jack_midi" = "xyes"; then
491      AC_DEFINE(CONFIG_JACK_MIDI, 1, [Define if JACK MIDI support is available.])
492   else
493      AC_MSG_WARN([*** jack/midiport.h file not found.])
494      AC_MSG_WARN([*** JACK 0.103.0 or later may be required.])
495      AC_MSG_WARN([*** JACK MIDI support will be disabled.])
496   fi
497fi
498
499# Check for JACK session headers availability.
500if test "x$ac_jack_session" = "xyes"; then
501   AC_CHECK_HEADER(jack/session.h, [ac_jack_session="yes"], [ac_jack_session="no"])
502   if test "x$ac_jack_session" = "xyes"; then
503      AC_DEFINE(CONFIG_JACK_SESSION, 1, [Define if JACK session support is available.])
504   else
505      AC_MSG_WARN([*** jack/session.h file not found.])
506      AC_MSG_WARN([*** JACK 0.118.3 or later may be required.])
507      AC_MSG_WARN([*** JACK session support will be disabled.])
508   fi
509fi
510
511# Check for JACK metadata headers availability.
512if test "x$ac_jack_metadata" = "xyes"; then
513   AC_CHECK_HEADER(jack/metadata.h, [ac_jack_metadata="yes"], [ac_jack_metadata="no"])
514   if test "x$ac_jack_metadata" = "xyes"; then
515      AC_DEFINE(CONFIG_JACK_METADATA, 1, [Define if JACK metadata support is available.])
516   else
517      AC_MSG_WARN([*** jack/metadata.h file not found.])
518      AC_MSG_WARN([*** JACK 0.124.1 or later may be required.])
519      AC_MSG_WARN([*** JACK metadata support will be disabled.])
520   fi
521fi
522
523# Check for JACK metadata availability.
524if test "x$ac_jack_metadata" = "xyes"; then
525   if test "x$ac_jack_cv" = "xyes"; then
526      AC_DEFINE(CONFIG_JACK_CV, 1, [Define if JACK CV support is available.])
527   fi
528   if test "x$ac_jack_osc" = "xyes"; then
529      AC_DEFINE(CONFIG_JACK_OSC, 1, [Define if JACK OSC support is available.])
530   fi
531else
532   ac_jack_cv="no"
533   ac_jack_osc="no"
534fi
535
536# Check D-Bus interface support.
537if test "x$ac_dbus" = "xyes"; then
538   if test $ac_qt_version_major -lt 6; then
539      PKG_CHECK_MODULES([QT5DBUS], [Qt5DBus], [ac_dbus="yes"], [ac_dbus="no"])
540   else
541     #PKG_CHECK_MODULES([QT6DBUS], [Qt6DBus], [ac_dbus="yes"], [ac_dbus="no"])
542     AC_CHECK_LIB(Qt6DBus, main, [ac_dbus="yes"], [ac_dbus="no"])
543   fi
544fi
545if test "x$ac_dbus" = "xyes"; then
546   AC_DEFINE(CONFIG_DBUS, 1, [Define if D-Bus interface is enabled.])
547   ac_qdbus="dbus"
548fi
549AC_SUBST(ac_qdbus)
550
551# Check for unique/single instance support.
552if test "x$ac_xunique" = "xyes"; then
553   if test $ac_qt_version_major -lt 6; then
554      PKG_CHECK_MODULES([QT5NETWORK], [Qt5Network], [ac_xunique="yes"], [ac_xunique="no"])
555   else
556     #PKG_CHECK_MODULES([QT6NETWORK], [Qt6Network], [ac_xunique="yes"], [ac_xunique="no"])
557      AC_CHECK_LIB(Qt6Network, main, [ac_xunique="yes"], [ac_xunique="no"])
558   fi
559fi
560if test "x$ac_xunique" = "xyes"; then
561   AC_DEFINE(CONFIG_XUNIQUE, 1, [Define if unique/single instance is enabled.])
562   ac_qnetwork="network"
563fi
564AC_SUBST(ac_qnetwork)
565
566# Check for debugging stack-trace.
567if test "x$ac_stacktrace" = "xyes"; then
568   AC_DEFINE(CONFIG_STACKTRACE, 1, [Define if debugger stack-trace is enabled.])
569fi
570
571AC_SUBST(ac_cflags)
572AC_SUBST(ac_ldflags)
573AC_SUBST(ac_incpath)
574AC_SUBST(ac_libs)
575
576
577# Checks for typedefs, structures, and compiler characteristics.
578# AC_C_CONST
579
580# Checks for library functions.
581AC_CHECK_FUNCS(system)
582
583# Check for system-tray icon.
584if test "x$ac_system_tray" = "xyes"; then
585   AC_DEFINE(CONFIG_SYSTEM_TRAY, 1, [Define if system tray is enabled.])
586fi
587
588# Check for jack_transport_query function.
589AC_CHECK_LIB(jack, jack_transport_query, [ac_jack_transport="yes"], [ac_jack_transport="no"])
590if test "x$ac_jack_transport" = "xno"; then
591   AC_MSG_WARN([*** jack_transport_query: function not found.])
592   AC_MSG_WARN([*** JACK 0.80.0 or later may be required.])
593   AC_MSG_WARN([*** Transport features will be disabled.])
594else
595   AC_DEFINE(CONFIG_JACK_TRANSPORT, 1, [Define if jack_tranport_query is available.])
596fi
597
598# Check for jack_is_realtime function.
599AC_CHECK_LIB(jack, jack_is_realtime, [ac_jack_realtime="yes"], [ac_jack_realtime="no"])
600if test "x$ac_jack_realtime" = "xyes"; then
601   AC_DEFINE(CONFIG_JACK_REALTIME, 1, [Define if jack_is_realtime is available.])
602fi
603
604# Check for jack_get_xrun_delayed_usecs function.
605AC_CHECK_LIB(jack, jack_get_xrun_delayed_usecs, [ac_jack_xrun_delay="yes"], [ac_jack_xrun_delay="no"])
606if test "x$ac_jack_xrun_delay" = "xyes"; then
607   AC_DEFINE(CONFIG_JACK_XRUN_DELAY, 1, [Define if jack_get_xrun_delayed_usecs is available.])
608fi
609
610# Check for jack_get_max_delayed_usecs function.
611AC_CHECK_LIB(jack, jack_get_max_delayed_usecs, [ac_jack_max_delay="yes"], [ac_jack_max_delay="no"])
612if test "x$ac_jack_max_delay" = "xyes"; then
613   AC_DEFINE(CONFIG_JACK_MAX_DELAY, 1, [Define if jack_get_max_delayed_usecs is available.])
614fi
615
616# Check for jack_set_port_rename_callback
617AC_CHECK_LIB(jack, jack_set_port_rename_callback, [ac_jack_port_rename="yes"], [ac_jack_port_rename="no"])
618if test "x$ac_jack_port_rename" = "xyes"; then
619   AC_TRY_COMPILE([#include <jack/jack.h>], [
620      void port_rename(jack_port_id_t, const char *, const char *, void *);
621      jack_set_port_rename_callback(0, port_rename, 0);
622   ], ac_jack_port_rename="yes", ac_jack_port_rename="no")
623fi
624if test "x$ac_jack_port_rename" = "xyes"; then
625   AC_DEFINE(CONFIG_JACK_PORT_RENAME, 1, [Define if jack_set_port_rename_callback is available.])
626fi
627
628# Check for jack_port_get_aliases function.
629if test "x$ac_jack_port_aliases" = "xyes"; then
630   AC_CHECK_LIB(jack, jack_port_get_aliases, [ac_jack_port_aliases="yes"], [ac_jack_port_aliases="no"])
631   if test "x$ac_jack_port_aliases" = "xyes"; then
632      AC_DEFINE(CONFIG_JACK_PORT_ALIASES, 1, [Define if jack_port_get_aliases is available.])
633   fi
634fi
635
636# Check for jack_get_version_string function.
637if test "x$ac_jack_version" = "xyes"; then
638   AC_CHECK_LIB(jack, jack_get_version_string, [ac_jack_version="yes"], [ac_jack_version="no"])
639   if test "x$ac_jack_version" = "xyes"; then
640      AC_DEFINE(CONFIG_JACK_VERSION, 1, [Define if jack_get_version_string is available.])
641   fi
642fi
643
644# Check for jack_free function.
645AC_CHECK_LIB(jack, jack_free, [ac_jack_free="yes"], [ac_jack_free="no"])
646if test "x$ac_jack_free" = "xyes"; then
647   AC_DEFINE(CONFIG_JACK_FREE, 1, [Define if jack_free is available.])
648fi
649
650# Finally produce a configure header file and the main makefile.
651AC_OUTPUT
652
653# make clean > /dev/null 2>&1
654
655# Output summary message
656
657echo
658echo "  $PACKAGE_NAME $ac_build_version (Qt $ac_qt_version)"
659echo
660echo "  Build target . . . . . . . . . . . . . . . . . . .: $ac_build_type"
661echo
662echo "  JACK Audio Connection Kit support  . . . . . . . .: $ac_jack_lib"
663echo "  JACK Realtime support  . . . . . . . . . . . . . .: $ac_jack_realtime"
664echo "  JACK Transport support . . . . . . . . . . . . . .: $ac_jack_transport"
665echo "  JACK XRUN delay support  . . . . . . . . . . . . .: $ac_jack_xrun_delay"
666echo "  JACK Maximum scheduling delay support  . . . . . .: $ac_jack_max_delay"
667echo "  JACK Port aliases support  . . . . . . . . . . . .: $ac_jack_port_aliases"
668echo "  JACK Metadata support  . . . . . . . . . . . . . .: $ac_jack_metadata"
669echo "  JACK MIDI support  . . . . . . . . . . . . . . . .: $ac_jack_midi"
670echo "  JACK CV support  . . . . . . . . . . . . . . . . .: $ac_jack_cv"
671echo "  JACK OSC support . . . . . . . . . . . . . . . . .: $ac_jack_osc"
672echo "  JACK Session support . . . . . . . . . . . . . . .: $ac_jack_session"
673echo "  JACK Version support (JACK2) . . . . . . . . . . .: $ac_jack_version"
674echo "  ALSA MIDI Sequencer support  . . . . . . . . . . .: $ac_alsa_seq"
675echo "  System tray icon support . . . . . . . . . . . . .: $ac_system_tray"
676echo "  D-Bus interface support  . . . . . . . . . . . . .: $ac_dbus"
677echo "  PortAudio interface support  . . . . . . . . . . .: $ac_portaudio"
678echo "  CoreAudio interface support  . . . . . . . . . . .: $ac_coreaudio"
679echo
680echo "  Unique/Single instance support . . . . . . . . . .: $ac_xunique"
681echo "  Debugger stack-trace (gdb) . . . . . . . . . . . .: $ac_stacktrace"
682echo
683echo "  Install prefix . . . . . . . . . . . . . . . . . .: $ac_prefix"
684echo
685echo "Now type 'make', followed by 'make install' as root."
686echo
687
688