1# Process this file with autoconf to produce a configure script.
2AC_INIT(padthv1, 0.9.23, rncbc@rncbc.org)
3
4AC_CONFIG_SRCDIR(src/padthv1.cpp)
5AC_CONFIG_HEADERS(src/config.h)
6AC_CONFIG_FILES(Makefile padthv1.spec src/src_core.pri src/src_ui.pri src/src_jack.pri src/src_lv2.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 JACK standalone build.
73AC_ARG_ENABLE(jack,
74  AS_HELP_STRING([--enable-jack], [enable JACK stand-alone build (default=yes)]),
75  [ac_jack="$enableval"],
76  [ac_jack="yes"])
77
78# Enable JACK session support.
79AC_ARG_ENABLE(jack-session,
80  AS_HELP_STRING([--enable-jack-session], [enable JACK session support (default=yes)]),
81  [ac_jack_session="$enableval"],
82  [ac_jack_session="yes"])
83
84# Enable JACK MIDI support option.
85AC_ARG_ENABLE(jack-midi,
86  AS_HELP_STRING([--enable-jack-midi], [enable JACK MIDI support (default=yes)]),
87  [ac_jack_midi="$enableval"],
88  [ac_jack_midi="yes"])
89
90# Enable ALSA MIDI support option.
91AC_ARG_ENABLE(alsa-midi,
92  AS_HELP_STRING([--enable-alsa-midi], [enable ALSA MIDI support (default=yes)]),
93  [ac_alsa_midi="$enableval"],
94  [ac_alsa_midi="yes"])
95
96# Enable LV2 plugin build.
97AC_ARG_ENABLE(lv2,
98  AS_HELP_STRING([--enable-lv2], [enable LV2 plug-in build (default=yes)]),
99  [ac_lv2="$enableval"],
100  [ac_lv2="yes"])
101
102AC_ARG_ENABLE(lv2-ui-x11,
103  AS_HELP_STRING([--enable-lv2-ui-x11], [enable LV2 plug-in X11 UI support (default=yes)]),
104  [ac_lv2_ui_x11="$enableval"],
105  [ac_lv2_ui_x11="yes"])
106
107AC_ARG_ENABLE(lv2-ui-external,
108  AS_HELP_STRING([--enable-lv2-ui-external], [enable LV2 plug-in External UI support (default=yes)]),
109  [ac_lv2_ui_external="$enableval"],
110  [ac_lv2_ui_external="yes"])
111
112AC_ARG_ENABLE(lv2-ui-idle,
113  AS_HELP_STRING([--enable-lv2-ui-idle], [enable LV2 UI Idle interface support (default=yes)]),
114  [ac_lv2_ui_idle="$enableval"],
115  [ac_lv2_ui_idle="yes"])
116
117AC_ARG_ENABLE(lv2-ui-show,
118  AS_HELP_STRING([--enable-lv2-ui-show], [enable LV2 UI Show interface support (default=yes)]),
119  [ac_lv2_ui_show="$enableval"],
120  [ac_lv2_ui_show="yes"])
121
122AC_ARG_ENABLE(lv2-ui-resize,
123  AS_HELP_STRING([--enable-lv2-ui-resize], [enable LV2 UI Resize interface support (default=yes)]),
124  [ac_lv2_ui_resize="$enableval"],
125  [ac_lv2_ui_resize="yes"])
126
127AC_ARG_ENABLE(lv2-programs,
128  AS_HELP_STRING([--enable-lv2-programs], [enable LV2 plug-in Programs support (default=yes)]),
129  [ac_lv2_programs="$enableval"],
130  [ac_lv2_programs="yes"])
131
132AC_ARG_ENABLE(lv2-patch,
133  AS_HELP_STRING([--enable-lv2-patch], [enable LV2 plug-in Patch support (default=yes)]),
134  [ac_lv2_patch="$enableval"],
135  [ac_lv2_patch="yes"])
136
137AC_ARG_ENABLE(lv2-port-event,
138  AS_HELP_STRING([--enable-lv2-port-event], [enable LV2 plug-in Port-event support (EXPERIMENTAL) (default=yes)]),
139  [ac_lv2_port_event="$enableval"],
140  [ac_lv2_port_event="yes"])
141
142
143# Enable liblo availability.
144AC_ARG_ENABLE(liblo,
145  AS_HELP_STRING([--enable-liblo], [enable liblo interface (default=yes)]),
146  [ac_liblo="$enableval"],
147  [ac_liblo="yes"])
148
149# Enable NSM support.
150AC_ARG_ENABLE(nsm,
151  AS_HELP_STRING([--enable-nsm], [enable NSM support (default=yes)]),
152  [ac_nsm="$enableval"],
153  [ac_nsm="yes"])
154
155
156# Enable Qt6 build preference.
157AC_ARG_ENABLE(qt6,
158  AS_HELP_STRING([--enable-qt6], [enable Qt6 build (default=yes)]),
159  [ac_qt6="$enableval"],
160  [ac_qt6="yes"])
161
162
163if test "x$ac_debug" = "xyes"; then
164   AC_DEFINE(CONFIG_DEBUG, 1, [Define if debugging is enabled.])
165   ac_build_type="debug"
166else
167   ac_build_type="release"
168fi
169
170AC_SUBST(ac_build_type)
171
172
173# Standard installation base dirs.
174ac_path=$PATH
175ac_pkg_config_path=$PKG_CONFIG_PATH
176ac_with_paths=""
177
178# Set for alternate Qt installation dir.
179AC_ARG_WITH(qt,
180  AS_HELP_STRING([--with-qt=PATH], [use alternate Qt install path]),
181  [ac_qt_path="$withval"], [ac_qt_path="no"])
182
183if test "x$ac_qt_path" != "xno"; then
184   ac_path="$ac_qt_path/bin:$ac_path"
185   ac_pkg_config_path="$ac_qt_path/lib/pkgconfig:$ac_pkg_config_path"
186fi
187
188
189# Set for alternate ALSA installation dir.
190AC_ARG_WITH(alsa,
191  AS_HELP_STRING([--with-alsa=PATH], [use alternate ALSA install path]),
192  [ac_with_paths="$ac_with_paths $withval"])
193
194# Set for alternate JACK installation dir.
195AC_ARG_WITH(jack,
196  AS_HELP_STRING([--with-jack=PATH], [use alternate JACK install path]),
197  [ac_with_paths="$ac_with_paths $withval"])
198
199# Set for alternate LV2 installation dir.
200AC_ARG_WITH(lv2,
201  AS_HELP_STRING([--with-lv2=PATH], [use alternate LV2 install path]),
202  [ac_with_paths="$ac_with_paths $withval"])
203
204# Set for alternate FFTW3 installation dir.
205AC_ARG_WITH(fftw3,
206  AS_HELP_STRING([--with-fftw3=PATH], [use alternate FFTW3 path]),
207  [ac_with_paths="$ac_with_paths $withval"])
208
209# Set for alternate liblo installation dir.
210AC_ARG_WITH(liblo,
211  AS_HELP_STRING([--with-liblo=PATH], [use alternate liblo path]),
212  [ac_with_paths="$ac_with_paths $withval"])
213
214
215# Honor user specified flags.
216ac_cflags=$CFLAGS
217ac_ldflags=$LDFLAGS
218
219
220# Checks for programs.
221AC_PROG_CPP
222AC_PROG_CXX
223AC_PROG_CXXCPP
224
225# Checks for languages.
226AC_LANG_CPLUSPLUS
227
228# Check for pkg-config.
229PKG_PROG_PKG_CONFIG
230
231# Check whether -std=c++11 support is necessary (4 < g++ version < 6).
232AC_CACHE_CHECK([for g++ major version], [ac_cv_gxx_version_major], [
233   ac_cv_gxx_version_major=$($CC -dumpversion)
234   if test -n "$ac_cv_gxx_version_major"; then
235      ac_cv_gxx_version_major=$(echo $ac_cv_gxx_version_major | cut -d'.' -f1);
236   fi
237   ac_gxx_version_major=$(($ac_cv_gxx_version_major + 0))
238])
239ac_gxx_version_major=$ac_cv_gxx_version_major
240if test $ac_gxx_version_major -ge 4 -a $ac_gxx_version_major -lt 6; then
241   CXXFLAGS="-std=c++11 $CXXFLAGS"
242   ac_cflags="-std=c++11 $ac_cflags"
243elif test $ac_gxx_version_major -ge 6 -a $ac_gxx_version_major -lt 11; then
244   CXXFLAGS="-std=c++17 $CXXFLAGS"
245   ac_cflags="-std=c++17 $ac_cflags"
246fi
247
248# Check for proper flags.
249ac_arch=$(uname -m)
250
251# Check for install paths and alternatives...
252ac_libdirs="lib"
253
254if test "x$ac_arch" = "xx86_64"; then
255   ac_libdirs="$ac_libdirs lib64"
256fi
257
258CFLAGS="-fPIC $CFLAGS"
259CPPFLAGS="-fPIC $CPPFLAGS"
260
261# Prepend alternate dependencies paths.
262for X in $ac_with_paths; do
263  if test -d $X/bin; then
264     ac_path="$X/bin:$ac_path"
265  fi
266  if test -d $X/include; then
267     CFLAGS="-I$X/include $CFLAGS "
268     CPPFLAGS="-I$X/include $CPPFLAGS"
269     ac_incpath="$X/include $ac_incpath"
270  fi
271  for Y in $ac_libdirs; do
272     if test -d $X/$Y; then
273        LIBS="-L$X/$Y $LIBS"
274        ac_libs="-L$X/$Y $ac_libs"
275        if test -d $X/$Y/pkgconfig; then
276           ac_pkg_config_path="$X/$Y/pkgconfig:$ac_pkg_config_path"
277        fi
278     fi
279  done
280done
281
282# Set pkg-config path.
283if test -n "$ac_pkg_config_path"; then
284   export PKG_CONFIG_PATH=$ac_pkg_config_path
285fi
286
287
288# A common error message:
289ac_errmsg="not found in current PATH. Maybe QT development environment isn't available."
290
291# Check for qtchooser availability.
292AC_PATH_TOOL(ac_qtchooser, qtchooser, [no], $ac_path)
293if test -x $ac_qtchooser; then
294   if test "x$ac_qt6" = "xyes"; then
295      export QT_SELECT=6
296   else
297      export QT_SELECT=5
298   fi
299fi
300
301# Check for proper qmake path/version alternatives.
302AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path)
303if test "x$ac_qmake" = "xno"; then
304   if test "x$ac_qt6" = "xyes"; then
305      AC_PATH_TOOL(ac_cv_qmake, qmake-qt6, [no], $ac_path)
306      ac_qmake=$ac_cv_qmake
307   else
308      AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path)
309      ac_qmake=$ac_cv_qmake
310   fi
311fi
312
313# Check for proper Qt major version.
314AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [
315   ac_cv_qt_version=$($ac_qmake -query QT_VERSION)
316   ac_cv_qt_version_major=$(echo $ac_cv_qt_version | cut -d'.' -f1)
317   ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0))
318])
319ac_qt_version=$ac_cv_qt_version
320ac_qt_version_major=$ac_cv_qt_version_major
321if test "x$ac_qmake" = "xno"; then
322   if test $ac_qt_version_major -lt 6; then
323      AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)])
324   else
325      AC_MSG_ERROR([qmake-qt6 $ac_errmsg (qt6-devel)])
326   fi
327fi
328
329# Check for proper Qt install path.
330AC_CACHE_CHECK([for Qt install path (bin)], [ac_cv_qt_install_bins], [
331   ac_cv_qt_install_bins=$($ac_qmake -query QT_INSTALL_BINS)
332])
333ac_qt_install_bins=$ac_cv_qt_install_bins
334if test -d $ac_qt_install_bins; then
335   ac_path="$ac_qt_install_bins:$ac_path"
336fi
337
338AC_CACHE_CHECK([for Qt install path (libexec)], [ac_cv_qt_install_libexecs], [
339   ac_cv_qt_install_libexecs=$($ac_qmake -query QT_INSTALL_LIBEXECS)
340])
341ac_qt_install_libexecs=$ac_cv_qt_install_libexecs
342if test -d $ac_qt_install_libexecs; then
343   ac_path="$ac_qt_install_libexecs:$ac_path"
344fi
345
346# Check it again, now with updated PATH, just in case...
347AC_PATH_TOOL(ac_cv_qmake, qmake, [no], $ac_path)
348ac_qmake=$ac_cv_qmake
349if test "x$ac_qmake" = "xno"; then
350   AC_MSG_ERROR([qmake $ac_errmsg])
351fi
352
353AC_SUBST(ac_qmake)
354
355AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [
356   ac_cv_qt_install_headers=$($ac_qmake -query QT_INSTALL_HEADERS)
357])
358ac_qt_install_headers=$ac_cv_qt_install_headers
359if test -d $ac_qt_install_headers; then
360   CFLAGS="-I$ac_qt_install_headers $CFLAGS "
361   CPPFLAGS="-I$ac_qt_install_headers $CPPFLAGS"
362   ac_incpath="$ac_qt_install_headers $ac_incpath"
363fi
364
365AC_CACHE_CHECK([for Qt install libraries], [ac_cv_qt_install_libs], [
366   ac_cv_qt_install_libs=$($ac_qmake -query QT_INSTALL_LIBS)
367])
368ac_qt_install_libs=$ac_cv_qt_install_libs
369if test -d $ac_qt_install_libs; then
370   LIBS="-L$ac_qt_install_libs $LIBS"
371   ac_libs="-L$ac_qt_install_libs $ac_libs"
372fi
373
374# Finally, check for proper Qt version.
375AC_CACHE_CHECK([for Qt library version >= 5.1],
376   ac_cv_qtversion, [
377   AC_TRY_COMPILE([#include "QtCore/qglobal.h"], [
378      #if QT_VERSION < 0x050100
379      #error Qt library 5.1 or greater required.
380      #endif
381   ], ac_cv_qtversion="yes", [
382      echo "no; Qt 5.1 or greater is required"
383      exit 1
384   ])
385])
386
387# Check for Qt moc utility.
388AC_PATH_TOOL(ac_moc, moc, [no], $ac_path)
389if test "x$ac_moc" = "xno"; then
390   AC_MSG_ERROR([moc $ac_errmsg])
391fi
392AC_SUBST(ac_moc)
393
394# Check for Qt uic utility.
395AC_PATH_TOOL(ac_uic, uic, [no], $ac_path)
396if test "x$ac_uic" = "xno"; then
397   AC_MSG_ERROR([uic $ac_errmsg])
398fi
399AC_SUBST(ac_uic)
400
401
402# Check for Qt lupdate utility.
403AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path)
404if test "x$ac_lupdate" = "xno"; then
405   if test $ac_qt_version_major -lt 6; then
406      AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt5, [no], $ac_path)
407   else
408      AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt6, [no], $ac_path)
409   fi
410   if test "x$ac_cv_lupdate" = "xno"; then
411      if test $ac_qt_version_major -lt 6; then
412         AC_MSG_ERROR([lupdate $ac_errmsg (qt5-linguist)])
413      else
414         AC_MSG_ERROR([lupdate $ac_errmsg (qt6-linguist)])
415      fi
416   else
417      ac_lupdate=$ac_cv_lupdate;
418   fi
419fi
420AC_SUBST(ac_lupdate)
421
422# Check for Qt lrelease utility.
423AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path)
424if test "x$ac_lrelease" = "xno"; then
425   if test $ac_qt_version_major -lt 6; then
426      AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt5, [no], $ac_path)
427   else
428      AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt6, [no], $ac_path)
429   fi
430   if test "x$ac_cv_lrelease" = "xno"; then
431      if test $ac_qt_version_major -lt 6; then
432         AC_MSG_ERROR([lrelease $ac_errmsg (qt5-linguist)])
433      else
434         AC_MSG_ERROR([lrelease $ac_errmsg (qt6-linguist)])
435      fi
436   else
437      ac_lrelease=$ac_cv_lrelease;
438   fi
439fi
440AC_SUBST(ac_lrelease)
441
442
443# Checks for libraries.
444AC_CHECK_LIB(m, main)
445AC_CHECK_LIB(X11, main)
446AC_CHECK_LIB(Xext, main)
447
448ac_cflags="-ffast-math -fvisibility=hidden -fvisibility-inlines-hidden $ac_cflags"
449
450# Check for core FFTW3 library.
451PKG_CHECK_MODULES([FFTW3], [fftw3f], [ac_fftw3="yes"], [ac_fftw3="no"])
452if test "x$ac_fftw3" = "xyes"; then
453   AC_DEFINE(CONFIG_FFTW3, 1, [Define if FFTW3 library is available.])
454   ac_cflags="$ac_cflags $FFTW3_CFLAGS"
455   ac_libs="$ac_libs $FFTW3_LIBS"
456else
457   AC_MSG_ERROR([*** FFTW3 library not found.])
458fi
459
460ac_jack_cflags="$ac_cflags"
461ac_jack_ldflags="$ac_ldflags"
462ac_jack_incpath="$ac_incpath"
463ac_jack_libs="$ac_libs"
464
465ac_lv2_cflags="$ac_cflags"
466ac_lv2_ldflags="$ac_ldflags"
467ac_lv2_incpath="$ac_incpath"
468ac_lv2_libs="$ac_libs"
469
470ac_all_targets=""
471ac_install_targets=""
472ac_uninstall_targets=""
473ac_clean_targets=""
474
475# Check for JACK libraries.
476if test "x$ac_jack" = "xyes"; then
477   PKG_CHECK_MODULES([JACK], [jack >= 0.100.0], [ac_jack="yes"], [ac_jack="no"])
478   if test "x$ac_jack" = "xyes"; then
479      AC_DEFINE(CONFIG_JACK, 1, [Define if JACK library is available.])
480      ac_jack_cflags="$ac_jack_cflags $JACK_CFLAGS"
481      ac_jack_libs="$ac_jack_libs $JACK_LIBS"
482   else
483      AC_MSG_WARN([*** JACK library not found.])
484      AC_MSG_WARN([*** JACK stand-alone build will be disabled.])
485   fi
486fi
487
488if test "x$ac_jack" = "xyes"; then
489   # Check for JACK session event callback availability.
490   if test "x$ac_jack_session" = "xyes"; then
491      AC_CHECK_LIB(jack, jack_set_session_callback, [ac_jack_session="yes"], [ac_jack_session="no"])
492   else
493      AC_MSG_WARN([*** JACK session support will be disabled.])
494   fi
495   # Check for ALSA libraries.
496   if test "x$ac_alsa_midi" = "xyes"; then
497      PKG_CHECK_MODULES([ALSA], [alsa], [ac_alsa_midi="yes"], [ac_alsa_midi="no"])
498   fi
499   if test "x$ac_alsa_midi" = "xyes"; then
500      AC_CHECK_LIB(asound, main, [ac_alsa_midi="yes"], [ac_alsa_midi="no"])
501      if test "x$ac_alsa_midi" = "xyes"; then
502         AC_DEFINE(CONFIG_ALSA_MIDI, 1, [Define if ALSA MIDI support is enabled.])
503         ac_jack_cflags="$ac_jack_cflags $ALSA_CFLAGS"
504         ac_jack_libs="$ac_jack_libs $ALSA_LIBS"
505      else
506         AC_MSG_WARN([*** ALSA library not found.])
507         AC_MSG_WARN([*** ALSA MIDI support will be disabled.])
508      fi
509   fi
510fi
511
512# Check for JACK build support.
513if test "x$ac_jack" = "xyes"; then
514   ac_all_targets="jack $ac_all_targets"
515   ac_install_targets="install_jack $ac_install_targets"
516   ac_uninstall_targets="uninstall_jack $ac_uninstall_targets"
517   ac_clean_targets="clean_jack $ac_clean_targets"
518else
519  ac_jack_session="no"
520  ac_jack_midi="no"
521  ac_alsa_midi="no"
522  ac_liblo="no"
523  ac_nsm="no"
524fi
525
526# Check for optional LIBLO library.
527if test "x$ac_liblo" = "xyes"; then
528   PKG_CHECK_MODULES([LIBLO], [liblo], [ac_liblo="yes"], [ac_liblo="no"])
529   if test "x$ac_liblo" = "xyes"; then
530      AC_DEFINE(CONFIG_LIBLO, 1, [Define if LIBLO library is available.])
531      ac_jack_cflags="$ac_jack_cflags $LIBLO_CFLAGS"
532      ac_jack_libs="$ac_jack_libs $LIBLO_LIBS"
533   else
534      AC_MSG_WARN([*** LIBLO library not found.])
535      AC_MSG_WARN([*** OSC service support will be disabled.])
536      ac_nsm="no"
537   fi
538else
539   ac_nsm="no"
540fi
541
542
543# Checks for header files.
544AC_HEADER_STDC
545AC_HEADER_SYS_WAIT
546AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/stat.h unistd.h signal.h)
547
548
549# Check for JACK session headers availability.
550if test "x$ac_jack_session" = "xyes"; then
551   AC_CHECK_HEADER(jack/session.h, [ac_jack_session="yes"], [ac_jack_session="no"])
552   if test "x$ac_jack_session" = "xyes"; then
553      AC_DEFINE(CONFIG_JACK_SESSION, 1, [Define if JACK session support is available.])
554   else
555      AC_MSG_WARN([*** JACK session header file not found.])
556      AC_MSG_WARN([*** JACK session support will be disabled.])
557   fi
558fi
559
560# Check for JACK MIDI headers availability.
561if test "x$ac_jack_midi" = "xyes"; then
562   AC_CHECK_HEADER(jack/midiport.h, [ac_jack_midi="yes"], [ac_jack_midi="no"])
563   if test "x$ac_jack_midi" = "xyes"; then
564      AC_DEFINE(CONFIG_JACK_MIDI, 1, [Define if JACK MIDI support is enabled.])
565   else
566      AC_MSG_WARN([*** JACK MIDI header files not found.])
567      AC_MSG_WARN([*** JACK MIDI support will be disabled.])
568   fi
569fi
570
571# Check for LV2 headers.
572if test "x$ac_lv2" = "xyes"; then
573   PKG_CHECK_MODULES([LV2], [lv2], [ac_lv2="yes"], [ac_lv2="no"])
574   if test "x$ac_lv2" = "xyes"; then
575      ac_lv2_cflags="$ac_lv2_cflags $LV2_CFLAGS"
576      CFLAGS="$CFLAGS $LV2_CFLAGS"
577      CPPFLAGS="$CPPFLAGS $LV2_CFLAGS"
578   fi
579   if test "x$ac_lv2" = "xyes"; then
580      AC_CHECK_HEADERS(
581         lv2/lv2plug.in/ns/ext/urid/urid.h \
582         lv2/lv2plug.in/ns/ext/atom/atom.h \
583         lv2/lv2plug.in/ns/ext/atom/forge.h \
584         lv2/lv2plug.in/ns/ext/atom/util.h,
585         [ac_lv2="yes"], [ac_lv2="no"])
586   fi
587   if test "x$ac_lv2" = "xyes"; then
588      AC_DEFINE(CONFIG_LV2, 1, [Define if LV2 plug-in build is enabled.])
589      ac_all_targets="lv2 $ac_all_targets"
590      ac_install_targets="install_lv2 $ac_install_targets"
591      ac_uninstall_targets="uninstall_lv2 $ac_uninstall_targets"
592      ac_clean_targets="clean_lv2 $ac_clean_targets"
593      AC_CACHE_CHECK([for lv2_atom_forge_object],
594         ac_cv_lv2_atom_forge_object, [
595         AC_TRY_LINK([#include "lv2/lv2plug.in/ns/ext/atom/forge.h"], [
596            // Checking for lv2_atom_forge_object...
597            LV2_Atom_Forge *forge;
598            LV2_Atom_Forge_Frame *frame;
599            lv2_atom_forge_object(forge, frame, 0, 101);
600         ], ac_cv_lv2_atom_forge_object="yes", ac_cv_lv2_atom_forge_object="no")
601      ])
602      ac_lv2_atom_forge_object=$ac_cv_lv2_atom_forge_object
603      if test "x$ac_lv2_atom_forge_object" = "xyes"; then
604         AC_DEFINE(CONFIG_LV2_ATOM_FORGE_OBJECT, 1, [Define if lv2_atom_forge_object is available.])
605      fi
606      AC_CACHE_CHECK([for lv2_atom_forge_key],
607         ac_cv_lv2_atom_forge_key, [
608         AC_TRY_LINK([#include "lv2/lv2plug.in/ns/ext/atom/forge.h"], [
609            // Checking for lv2_atom_forge_key...
610            LV2_Atom_Forge *forge;
611            lv2_atom_forge_key(forge, 102);
612         ], ac_cv_lv2_atom_forge_key="yes", ac_cv_lv2_atom_forge_key="no")
613      ])
614      ac_lv2_atom_forge_key=$ac_cv_lv2_atom_forge_key
615      if test "x$ac_lv2_atom_forge_key" = "xyes"; then
616         AC_DEFINE(CONFIG_LV2_ATOM_FORGE_KEY, 1, [Define if lv2_atom_forge_key is available.])
617      fi
618   else
619      AC_MSG_WARN([*** LV2 header files not found.])
620      AC_MSG_WARN([*** LV2 plug-in build will be disabled.])
621   fi
622fi
623
624if test "x$ac_lv2" = "xno"; then
625   ac_lv2_ui_x11="no"
626   ac_lv2_ui_external="no"
627   ac_lv2_ui_idle="no"
628   ac_lv2_ui_show="no"
629   ac_lv2_ui_resize="no"
630   ac_lv2_programs="no"
631   ac_lv2_patch="no"
632   ac_lv2_port_event="no"
633fi
634
635if test "x$ac_lv2_ui_x11" = "xyes"; then
636   AC_DEFINE(CONFIG_LV2_UI_X11, 1, [Define if LV2 X11 UI support is available.])
637else
638   AC_MSG_WARN([*** LV2 X11 UI support will be disabled.])
639fi
640
641if test "x$ac_lv2_ui_external" = "xyes"; then
642   CFLAGS="$CFLAGS -Isrc/lv2"
643   CPPFLAGS="$CPPFLAGS -Isrc/lv2"
644   AC_CHECK_HEADER(lv2_external_ui.h, [ac_lv2_ui_external="yes"], [ac_lv2_ui_external="no"])
645   if test "x$ac_lv2_ui_external" = "xyes"; then
646      AC_DEFINE(CONFIG_LV2_UI_EXTERNAL, 1, [Define if LV2 External UI extension is available.])
647      ac_lv2_incpath="lv2 $ac_lv2_incpath"
648   else
649      AC_MSG_WARN([*** LV2 External UI extension will be disabled.])
650   fi
651fi
652
653if test "x$ac_lv2_ui_idle" = "xyes"; then
654   AC_CACHE_CHECK([for LV2 UI Idle interface],
655      ac_cv_lv2_ui_idle, [
656      AC_TRY_LINK([#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"], [
657         // Checking for LV2 UI Idle interface...
658         LV2UI_Idle_Interface idle;
659      ], ac_cv_lv2_ui_idle="yes", ac_cv_lv2_ui_idle="no")
660   ])
661   ac_lv2_ui_idle=$ac_cv_lv2_ui_idle
662   if test "x$ac_lv2_ui_idle" = "xyes"; then
663      AC_DEFINE(CONFIG_LV2_UI_IDLE, 1, [Define if LV2 UI Idle interface support is available.])
664   else
665      AC_MSG_WARN([*** LV2 UI Idle interface support will be disabled.])
666   fi
667fi
668
669if test "x$ac_lv2_ui_show" = "xyes"; then
670   AC_CACHE_CHECK([for LV2 UI Show interface],
671      ac_cv_lv2_ui_show, [
672      AC_TRY_LINK([#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"], [
673         // Checking for LV2 UI Show interface...
674         LV2UI_Show_Interface show;
675      ], ac_cv_lv2_ui_show="yes", ac_cv_lv2_ui_show="no")
676   ])
677   ac_lv2_ui_show=$ac_cv_lv2_ui_show
678   if test "x$ac_lv2_ui_show" = "xyes"; then
679      AC_DEFINE(CONFIG_LV2_UI_SHOW, 1, [Define if LV2 UI Show interface support is available.])
680   else
681      AC_MSG_WARN([*** LV2 UI Show interface support will be disabled.])
682   fi
683fi
684
685if test "x$ac_lv2_ui_resize" = "xyes"; then
686   AC_CACHE_CHECK([for LV2 UI Resize interface],
687      ac_cv_lv2_ui_resize, [
688      AC_TRY_LINK([#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"], [
689         // Checking for LV2 UI Resize interface...
690         LV2UI_Resize resize;
691      ], ac_cv_lv2_ui_resize="yes", ac_cv_lv2_ui_resize="no")
692   ])
693   ac_lv2_ui_resize=$ac_cv_lv2_ui_resize
694   if test "x$ac_lv2_ui_resize" = "xyes"; then
695      AC_DEFINE(CONFIG_LV2_UI_RESIZE, 1, [Define if LV2 UI Resize interface support is available.])
696   else
697      AC_MSG_WARN([*** LV2 UI Resize interface support will be disabled.])
698   fi
699fi
700
701if test "x$ac_lv2_programs" = "xyes"; then
702   AC_CHECK_HEADER(lv2_programs.h, [ac_lv2_programs="yes"], [ac_lv2_programs="no"])
703   if test "x$ac_lv2_programs" = "xyes"; then
704      AC_DEFINE(CONFIG_LV2_PROGRAMS, 1, [Define if LV2 Programs extension is available.])
705      ac_lv2_incpath="lv2 $ac_lv2_incpath"
706   else
707      AC_MSG_WARN([*** LV2 Programs extension will be disabled.])
708   fi
709fi
710
711if test "x$ac_lv2_patch" = "xyes"; then
712   AC_CHECK_HEADER(
713      lv2/lv2plug.in/ns/ext/patch/patch.h,
714      [ac_lv2_patch="yes"], [ac_lv2_patch="no"])
715   if test "x$ac_lv2_patch" = "xyes"; then
716      AC_DEFINE(CONFIG_LV2_PATCH, 1, [Define if LV2 Patch is supported.])
717   else
718      AC_MSG_WARN([*** LV2 Patch support will be disabled.])
719   fi
720fi
721
722if test "x$ac_lv2_port_event" = "xyes"; then
723   AC_DEFINE(CONFIG_LV2_PORT_EVENT, 1, [Define if LV2 Port-event is supported. (EXPERIMENTAL)])
724fi
725
726
727# Check for NSM support.
728if test "x$ac_nsm" = "xyes"; then
729   AC_DEFINE(CONFIG_NSM, 1, [Define if NSM support is available.])
730fi
731
732
733# Checks for build targets
734if test "x$ac_jack" = "xno" -a "x$ac_lv2" = "xno"; then
735   AC_MSG_ERROR([*** JACK and LV2 build options disabled.])
736fi
737
738if test "x$ac_jack" = "xyes"; then
739   if test "x$ac_jack_midi" = "xno" -a "x$ac_alsa_midi" = "xno"; then
740      AC_MSG_ERROR([*** JACK MIDI and ALSA MIDI support disabled.])
741   fi
742fi
743
744AC_SUBST(ac_cflags)
745AC_SUBST(ac_ldflags)
746AC_SUBST(ac_incpath)
747AC_SUBST(ac_libs)
748
749AC_SUBST(ac_jack_cflags)
750AC_SUBST(ac_jack_ldflags)
751AC_SUBST(ac_jack_incpath)
752AC_SUBST(ac_jack_libs)
753
754AC_SUBST(ac_lv2_cflags)
755AC_SUBST(ac_lv2_ldflags)
756AC_SUBST(ac_lv2_incpath)
757AC_SUBST(ac_lv2_libs)
758
759AC_SUBST(ac_all_targets)
760AC_SUBST(ac_install_targets)
761AC_SUBST(ac_uninstall_targets)
762AC_SUBST(ac_clean_targets)
763
764
765# Checks for typedefs, structures, and compiler characteristics.
766# AC_C_CONST
767
768# Finally produce a configure header file and the makefiles.
769AC_OUTPUT
770
771# make clean > /dev/null 2>&1
772
773# Output summary message
774
775echo
776echo "  $PACKAGE_NAME $ac_build_version (Qt $ac_qt_version)"
777echo
778echo "  Build target . . . . . . . . . . . . . . . . . . .: $ac_build_type"
779echo
780echo "  JACK stand-alone build . . . . . . . . . . . . . .: $ac_jack"
781echo "  JACK session support . . . . . . . . . . . . . . .: $ac_jack_session"
782echo "  JACK MIDI support  . . . . . . . . . . . . . . . .: $ac_jack_midi"
783echo "  ALSA MIDI support  . . . . . . . . . . . . . . . .: $ac_alsa_midi"
784echo "  LV2 plug-in build  . . . . . . . . . . . . . . . .: $ac_lv2"
785echo "  LV2 plug-in X11 UI support   . . . . . . . . . . .: $ac_lv2_ui_x11"
786echo "  LV2 plug-in External UI support  . . . . . . . . .: $ac_lv2_ui_external"
787echo "  LV2 plug-in UI Idle interface support  . . . . . .: $ac_lv2_ui_idle"
788echo "  LV2 plug-in UI Show interface support  . . . . . .: $ac_lv2_ui_show"
789echo "  LV2 plug-in UI Resize interface support  . . . . .: $ac_lv2_ui_resize"
790echo "  LV2 plug-in Programs support . . . . . . . . . . .: $ac_lv2_programs"
791echo "  LV2 plug-in Patch support  . . . . . . . . . . . .: $ac_lv2_patch"
792echo "  LV2 plug-in Port-event support (EXPERIMENTAL)  . .: $ac_lv2_port_event"
793echo "  OSC service support (liblo)  . . . . . . . . . . .: $ac_liblo"
794echo "  Non Session Management (NSM) support . . . . . . .: $ac_nsm"
795echo
796echo "  Install prefix . . . . . . . . . . . . . . . . . .: $ac_prefix"
797echo
798echo "Now type 'make', followed by 'make install' as root."
799echo
800