1#                                               -*- Autoconf -*-
2# Copyright (C) 2005-2021 Joel Kraehemann
3#
4# Copying and distribution of this file, with or without modification,
5# are permitted in any medium without royalty provided the copyright
6# notice and this notice are preserved.  This file is offered as-is,
7# without any warranty.
8# Process this file with autoconf to produce a configure script.
9
10AC_PREREQ([2.69])
11AC_INIT([gsequencer],[3.10.4],[jkraehemann@gmail.com])
12AM_INIT_AUTOMAKE([subdir-objects -Wno-portability])
13AC_CONFIG_SRCDIR([ags/config.h.in])
14AC_CONFIG_HEADERS([ags/config.h])
15AC_CONFIG_HEADERS([ags/ags_api_config.h])
16AC_CONFIG_MACRO_DIR([m4])
17AC_USE_SYSTEM_EXTENSIONS([_GNU_SOURCE])
18
19AM_GNU_GETTEXT([external])
20AM_GNU_GETTEXT_VERSION([0.19.8])
21
22# options
23AC_ARG_VAR(HTMLHELP_XSL, path to Docbook XML htmlhelp XSL file)
24
25AC_ARG_VAR(GOBJECT_API_DOC, path for use with sed to GObject API Reference Manual)
26AC_ARG_VAR(GTK_API_DOC, path for use with sed to Gtk-3 API Reference Manual)
27AC_ARG_VAR(LIBAGS_API_DOC, path for use with sed to Libags API Reference Manual)
28AC_ARG_VAR(LIBAGS_AUDIO_API_DOC, path for use with sed to Libags-audio API Reference Manual)
29AC_ARG_VAR(LIBAGS_GUI_API_DOC, path for use with sed to Libags-gui API Reference Manual)
30
31AC_ARG_VAR(LIBAGS_API_DIR, install path of Libags API Reference Manual)
32AC_ARG_VAR(LIBAGS_AUDIO_API_DIR, install path of Libags-audio API Reference Manual)
33AC_ARG_VAR(LIBAGS_GUI_API_DIR, install path of Libags-gui API Reference Manual)
34AC_ARG_VAR(LIBGSEQUENCER_API_DIR, install path of Libgsequencer API Reference Manual)
35
36AC_ARG_ENABLE(public-libgsequencer, [AS_HELP_STRING([--enable-public-libgsequencer],
37                                                    [provide public libgsequencer (default is yes)])],
38              [],
39              [enable_public_libgsequencer=yes])
40
41AC_ARG_ENABLE(upstream-gtk-doc, [AS_HELP_STRING([--enable-upstream-gtk-doc],
42                                                [put API reference manual in upstream dedicated directory (default is yes)])],
43              [],
44              [enable_upstream_gtk_doc=yes])
45
46AC_ARG_ENABLE(single-docdir, [AS_HELP_STRING([--enable-single-docdir],
47                                             [put API reference manual in upstream dedicated directory (default is no)])],
48              [],
49              [enable_single_docdir=no])
50
51AC_ARG_ENABLE(strip-rt-events, [AS_HELP_STRING([--enable-strip-rt-events],
52                                               [strip rt events (default is yes)])],
53              [],
54              [enable_strip_rt_events=yes])
55
56AC_ARG_ENABLE(rt, [AS_HELP_STRING([--enable-rt],
57                                  [enable rt (default is yes)])],
58              [],
59              [enable_rt=yes])
60
61AC_ARG_ENABLE(w32api, [AS_HELP_STRING([--enable-w32api],
62                                      [enable w32 API (default is no)])],
63              [],
64              [enable_w32api=no])
65
66AC_ARG_ENABLE(osxapi, [AS_HELP_STRING([--enable-osxapi],
67                                      [enable OS X API (default is no)])],
68              [],
69              [enable_osxapi=no])
70
71AC_ARG_ENABLE(alsa, [AS_HELP_STRING([--enable-alsa],
72                                    [enable alsa (default is yes)])],
73              [],
74              [enable_alsa=yes])
75
76AC_ARG_ENABLE(alsa-compat, [AS_HELP_STRING([--enable-alsa-compat],
77                                    [enable alsa compatibility library (default is no)])],
78              [],
79              [enable_alsa_compat=no])
80
81AC_ARG_ENABLE(oss, [AS_HELP_STRING([--enable-oss],
82                                   [enable oss (default is no)])],
83              [],
84              [enable_oss=no])
85
86AC_ARG_ENABLE(jack, [AS_HELP_STRING([--enable-jack],
87                                    [enable jack (default is yes)])],
88              [],
89              [enable_jack=yes])
90
91AC_ARG_ENABLE(pulse, [AS_HELP_STRING([--enable-pulse],
92                                     [enable pulse (default is yes)])],
93              [],
94              [enable_pulse=yes])
95
96AC_ARG_ENABLE(core-audio, [AS_HELP_STRING([--enable-core-audio],
97                                          [enable core audio (default is no)])],
98              [],
99              [enable_core_audio=no])
100
101AC_ARG_ENABLE(audio-unit, [AS_HELP_STRING([--enable-audio-unit],
102                                          [enable audio unit (default is no)])],
103              [],
104              [enable_audio_unit=no])
105
106AC_ARG_ENABLE(wasapi, [AS_HELP_STRING([--enable-wasapi],
107                                      [enable WASAPI (default is no)])],
108              [],
109              [enable_wasapi=no])
110
111AC_ARG_ENABLE(libinstpatch, [AS_HELP_STRING([--enable-libinstpatch],
112                                            [enable libinstpatch (default is yes)])],
113              [],
114              [enable_libinstpatch=yes])
115
116AC_ARG_ENABLE(vst3, [AS_HELP_STRING([--enable-vst3],
117                                    [enable vst3 (default is no)])],
118              [],
119              [enable_vst3=no])
120
121AC_ARG_ENABLE(pulse, [AS_HELP_STRING([--enable-pulse],
122                                     [enable pulse (default is yes)])],
123              [],
124              [enable_pulse=yes])
125
126AC_ARG_ENABLE(x11, [AS_HELP_STRING([--enable-x11],
127                                   [enable X11 (default is yes)])],
128              [],
129              [enable_x11=yes])
130
131AC_ARG_ENABLE(quartz, [AS_HELP_STRING([--enable-quartz],
132                                      [enable quartz (default is no)])],
133              [],
134              [enable_quartz=no])
135
136AC_ARG_ENABLE(run-functional-tests, [AS_HELP_STRING([--enable-run-functional-tests],
137                                    [run functional tests (default is no)])],
138              [],
139              [enable_run_functional_tests=no])
140
141AC_ARG_ENABLE(fast-test-mode, [AS_HELP_STRING([--enable-fast-test-mode],
142                              [fast test mode (default is no)])],
143              [],
144              [enable_fast_test_mode=no])
145
146AC_ARG_ENABLE(run-system-tests, [AS_HELP_STRING([--enable-run-system-tests],
147                                [run system tests (default is no)])],
148              [],
149              [enable_run_system_tests=no])
150
151AC_ARG_ENABLE(experimental, [AS_HELP_STRING([--enable-experimental],
152                                [experimental (default is no)])],
153              [],
154              [enable_experimental=no])
155
156AC_ARG_WITH([webkit],
157            [AS_HELP_STRING([--without-webkit],
158                            [disable support for webkit])],
159            [],
160            [with_webkit=yes])
161
162AC_ARG_WITH([poppler],
163            [AS_HELP_STRING([--with-poppler],
164                            [enable support for poppler])],
165            [],
166            [with_poppler=no])
167
168AC_ARG_WITH([gstreamer],
169            [AS_HELP_STRING([--without-gstreamer],
170                            [disable support for gstreamer])],
171            [],
172            [with_gstreamer=yes])
173
174# Checks for programs.
175AC_PROG_CC
176AC_PROG_CPP
177AC_PROG_CXX
178AC_PROG_INSTALL
179
180gl_EARLY
181
182# libtool
183LT_PREREQ([2.4.2])
184LT_INIT([win32-dll])
185AC_SUBST([LIBTOOL_DEPS])
186AC_ENABLE_SHARED
187
188AC_SUBST([GSEQUENCER_CFLAGS])
189AC_SUBST([GSEQUENCER_LDFLAGS])
190
191AC_SUBST([MIDI2XML_CFLAGS])
192AC_SUBST([MIDI2XML_LDFLAGS])
193
194AC_SUBST([LIBGSEQUENCER_TEST_LIBADD])
195
196AC_SUBST([GSEQUENCER_FUNCTIONAL_TEST_LDADD])
197
198# Checks for libraries.
199# FIXME: Replace `main' with a function in `-lX11':
200AS_IF([test "x$enable_x11" != xno],
201      [AC_DEFINE([AGS_WITH_X11], [1], [X11 enabled])
202       AC_CHECK_LIB([X11], [main], , AC_MSG_ERROR("No X11 library present"))
203       X11_LIBS="-lX11"],
204      [AC_MSG_NOTICE([X11 disabled])])
205
206AS_IF([test "x$enable_quartz" != xno],
207      [AC_DEFINE([AGS_WITH_QUARTZ], [1], [quartz enabled])
208       PKG_CHECK_MODULES([GTK_MAC_INTEGRATION], [gtk-mac-integration-gtk3 >= 2.0.7])
209       AC_SUBST(GTK_MAC_INTEGRATION_CFLAGS)
210       AC_SUBST(GTK_MAC_INTEGRATION_LIBS)
211       AC_MSG_NOTICE([quartz enabled])],
212      [AC_MSG_NOTICE([quartz disabled])])
213
214# FIXME: Replace `main' with a function in `-ldl':
215# AC_CHECK_LIB([dl], [main], , AC_MSG_ERROR("No dl library present"))
216
217# FIXME: Replace `main' with a function in `-lm':
218AC_CHECK_LIB([m], [main], , AC_MSG_ERROR("No math library present"))
219
220AS_IF([test "x$enable_strip_rt_events" != xno],
221      [AC_DEFINE([AGS_STRIP_RT_EVENTS], [1], [striping rt-events enabled])
222      AC_MSG_NOTICE([striping rt-events enabled])],
223      [AC_MSG_NOTICE([striping rt-events disabled])])
224
225# FIXME: Replace `main' with a function in `-lrt':
226AS_IF([test "x$enable_rt" != xno],
227      [AC_DEFINE([AGS_WITH_RT], [1], [rt enabled])
228      RT_LIBS="-lrt"
229      AC_CHECK_LIB([rt], [main], , AC_MSG_ERROR("No rt library present"))
230      AC_MSG_NOTICE([rt enabled])],
231      [AC_MSG_NOTICE([rt disabled])])
232
233# Checks for header files.
234AC_PATH_X
235AC_FUNC_ALLOCA
236AC_CHECK_HEADERS([stdlib.h string.h unistd.h ladspa.h dssi.h lv2.h], , AC_MSG_ERROR("missing headers"))
237
238# Checks for typedefs, structures, and compiler characteristics.
239AC_CHECK_HEADER_STDBOOL
240AC_C_INLINE
241AC_TYPE_PID_T
242AC_TYPE_SIZE_T
243AC_TYPE_UID_T
244AC_TYPE_UINT16_T
245AC_TYPE_UINT32_T
246AC_TYPE_UINT8_T
247AC_CHECK_TYPES([ptrdiff_t])
248
249WITH_W32API=0
250
251AS_IF([test "x$enable_w32api" != xno],
252      [AC_DEFINE([AGS_W32API], [1], [w32api enabled])
253      W32API_CFLAGS="-nostdinc -I./lib -I/usr/lib/gcc/x86_64-w64-mingw32/7.4.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/dssi -include ags/config.h "
254      W32API_LIBS="-L./lib -lgnu"
255      AC_SUBST(W32API_CFLAGS)
256      AC_SUBST(W32API_LIBS)
257      AC_MSG_NOTICE([w32api enabled])],
258      [AC_MSG_NOTICE([w32api disabled])])
259AM_CONDITIONAL([WITH_W32API], [test "x$enable_w32api" == xyes])
260
261AS_IF([test "x$enable_osxapi" != xno],
262      [AC_DEFINE([AGS_OSXAPI], [1], [OS X api enabled])
263      OSXAPI_CFLAGS=""
264      OSXAPI_LIBS=""
265      AC_SUBST(OSXAPI_CFLAGS)
266      AC_SUBST(OSXAPI_LIBS)
267      AC_MSG_NOTICE([OS X api enabled])],
268      [AC_MSG_NOTICE([OS X api disabled])])
269AM_CONDITIONAL([WITH_OSXAPI], [test "x$enable_osxapi" == xyes])
270
271PKG_CHECK_MODULES([UUID], [uuid >= 1.0.1])
272AC_SUBST(UUID_CFLAGS)
273AC_SUBST(UUID_LIBS)
274
275AS_IF([test "x$enable_alsa" != xno],
276      [PKG_CHECK_MODULES([LIBASOUND2], [alsa >= 1.0.25])
277       AC_SUBST(LIBASOUND2_CFLAGS)
278       AC_SUBST(LIBASOUND2_LIBS)
279       AC_DEFINE([AGS_WITH_ALSA], [1], [ALSA enabled])
280       AC_MSG_NOTICE([ALSA enabled])],
281      [AC_MSG_NOTICE([ALSA disabled])])
282
283AS_IF([test "x$enable_alsa_compat" != xno],
284      [PKG_CHECK_MODULES([LIBDSSIALSACOMPAT], [libdssialsacompat >= 1.0.0])
285       AC_SUBST(LIBDSSIALSACOMPAT_CFLAGS)
286       AC_SUBST(LIBDSSIALSACOMPAT_LIBS)
287       AC_MSG_NOTICE([ALSA compatibility library enabled])],
288      [AC_MSG_NOTICE([ALSA compatibility library disabled])])
289
290AS_IF([test "x$enable_oss" != xno],
291      [AC_DEFINE([AGS_WITH_OSS], [1], [OSS enabled])
292       AC_MSG_NOTICE([OSS enabled])],
293      [AC_MSG_NOTICE([OSS disabled])])
294
295AS_IF([test "x$enable_core_audio" != xno],
296      [AC_DEFINE([AGS_WITH_CORE_AUDIO], [1], [core-audio enabled])
297
298      CORE_AUDIO_CFLAGS=
299      CORE_AUDIO_LIBS="-framework CoreAudio -framework AudioToolbox -framework CoreMIDI"
300      AC_SUBST(CORE_AUDIO_CFLAGS)
301      AC_SUBST(CORE_AUDIO_LIBS)
302
303      AC_MSG_NOTICE([core audio enabled])],
304      [AC_MSG_NOTICE([core audio disabled])])
305
306AS_IF([test "x$enable_audio_unit" != xno],
307      [AC_DEFINE([AGS_WITH_AUDIO_UNIT], [1], [audio-unit enabled])
308
309      AUDIO_UNIT_CFLAGS=
310      AUDIO_UNIT_LIBS="-framework AudioUnit -framework AudioToolbox"
311      AC_SUBST(AUDIO_UNIT_CFLAGS)
312      AC_SUBST(AUDIO_UNIT_LIBS)
313
314      AC_MSG_NOTICE([audio-unit enabled])],
315      [AC_MSG_NOTICE([audio-unit disabled])])
316
317AS_IF([test "x$enable_wasapi" != xno],
318      [AC_DEFINE([AGS_WITH_WASAPI], [1], [wasapi enabled])
319      WASAPI_CFLAGS=""
320      WASAPI_LIBS="-lwinmm -ldsound -lsetupapi -lole32"
321      AC_SUBST(WASAPI_CFLAGS)
322      AC_SUBST(WASAPI_LIBS)
323
324      AC_MSG_NOTICE([wasapi enabled])],
325      [AC_MSG_NOTICE([wasapi disabled])])
326
327AS_IF([test "x$enable_jack" != xno],
328      [AC_DEFINE([AGS_WITH_JACK], [1], [JACK enabled])
329
330      PKG_CHECK_MODULES([JACK], [jack])
331      AC_SUBST(JACK_CFLAGS)
332      AC_SUBST(JACK_LIBS)
333
334      AC_CHECK_FUNC([jack_port_uuid],
335                    [AC_DEFINE([HAVE_JACK_PORT_UUID], [1], [Jack port uuid available])])
336      AC_MSG_NOTICE([JACK enabled])],
337      [AC_MSG_NOTICE([JACK disabled])])
338
339AS_IF([test "x$enable_pulse" != xno],
340      [AC_DEFINE([AGS_WITH_PULSE], [1], [PULSE enabled])
341
342      PKG_CHECK_MODULES([PULSE], [libpulse-mainloop-glib])
343      AC_SUBST(PULSE_CFLAGS)
344      AC_SUBST(PULSE_LIBS)
345
346      AC_MSG_NOTICE([PULSE enabled])],
347      [AC_MSG_NOTICE([PULSE disabled])])
348
349PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.8.0])
350AC_SUBST(LIBXML2_CFLAGS)
351AC_SUBST(LIBXML2_LIBS)
352
353PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.1.8])
354AC_SUBST(SAMPLERATE_CFLAGS)
355AC_SUBST(SAMPLERATE_LIBS)
356
357PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.25])
358AC_SUBST(SNDFILE_CFLAGS)
359AC_SUBST(SNDFILE_LIBS)
360
361PKG_CHECK_MODULES([FFTW], [fftw3 >= 3.3.4])
362AC_SUBST(FFTW_CFLAGS)
363AC_SUBST(FFTW_LIBS)
364
365PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.56.0])
366AC_SUBST(GLIB_CFLAGS)
367AC_SUBST(GLIB_LIBS)
368
369PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.56.0 glib-2.0 >= 2.56.0 gmodule-2.0 >= 2.56.0 gthread-2.0 >= 2.56.0])
370AC_SUBST(GOBJECT_CFLAGS)
371AC_SUBST(GOBJECT_LIBS)
372
373AC_DEFINE([HAVE_GLIB_2_6], [1], [GLib 2.6 available])
374AC_DEFINE([HAVE_GLIB_2_44], [1], [GLib 2.44 available])
375AC_DEFINE([HAVE_GLIB_2_52], [1], [GLib 2.52 available])
376AC_DEFINE([HAVE_GLIB_2_54], [1], [GLib 2.54 available])
377AC_DEFINE([HAVE_GLIB_2_56], [1], [GLib 2.56 available])
378AC_DEFINE([HAVE_GLIB_2_62], [0], [GLib 2.62 available])
379
380GOBJECT_INTROSPECTION_CHECK([1.30.0])
381
382PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.56.0 glib-2.0 >= 2.56.0 gmodule-2.0 >= 2.56.0 gthread-2.0 >= 2.56.0])
383AC_SUBST(GIO_CFLAGS)
384AC_SUBST(GIO_LIBS)
385
386PKG_CHECK_MODULES([LIBSOUP], [libsoup-2.4 >= 2.52.0])
387AC_SUBST(LIBSOUP_CFLAGS)
388AC_SUBST(LIBSOUP_LIBS)
389
390AC_DEFINE([HAVE_ATK_2_12], [1], [Atk 2.12 available])
391
392AS_IF([test "x$enable_public_libgsequencer" != xno],
393      [AC_DEFINE([AGS_WITH_PUBLIC_LIBGSEQUENCER], [1], [public libgsequencer enabled])
394
395      AC_MSG_NOTICE([public libgsequencer enabled])],
396      [AC_MSG_NOTICE([public libgsequencer disabled])])
397AM_CONDITIONAL([AGS_WITH_PUBLIC_LIBGSEQUENCER], [test "x$enable_public_libgsequencer" == xyes])
398
399AS_IF([test "x$enable_upstream_gtk_doc" != xno],
400      [AC_DEFINE([AGS_WITH_UPSTREAM_GTK_DOC], [1], [upstream API reference directory enabled])
401
402      AC_MSG_NOTICE([upstream API reference directory enabled])],
403      [AC_MSG_NOTICE([upstream API reference directory disabled])])
404AM_CONDITIONAL([AGS_WITH_UPSTREAM_GTK_DOC], [test "x$enable_upstream_gtk_doc" == xyes])
405
406AS_IF([test "x$enable_single_docdir" != xno],
407      [AC_DEFINE([AGS_WITH_SINGLE_DOCDIR], [1], [single documentation directory enabled])
408
409      AC_MSG_NOTICE([single documentation directory enabled])],
410      [AC_MSG_NOTICE([single documentation directory disabled])])
411AM_CONDITIONAL([AGS_WITH_SINGLE_DOCDIR], [test "x$enable_single_docdir" == xyes])
412
413AS_IF([test "x$enable_libinstpatch" != xno],
414      [PKG_CHECK_MODULES([LIBINSTPATCH], [libinstpatch-1.0 >= 1.0])
415      AC_SUBST(LIBINSTPATCH_CFLAGS)
416      AC_SUBST(LIBINSTPATCH_LIBS)
417      AC_DEFINE([AGS_WITH_LIBINSTPATCH], [1], [Disable if you don't want libinstpatch])],
418      [AC_MSG_NOTICE([libinstpatch disabled])])
419AM_CONDITIONAL([WITH_LIBINSTPATCH], [test "x$enable_libinstpatch" == xyes])
420
421WITH_VST3=0
422
423AS_IF([test "x$enable_vst3" != xno],
424      [AC_DEFINE([AGS_WITH_VST3], [1], [VST3 enabled])
425      VST3_CXXFLAGS="-I/usr/include/vst3"
426      VST3_LIBS="-L/usr/lib/vst3 -lbase -lpluginterfaces -lsdk -lsdk_common -lsdk_hosting -lvstgui -lvstgui_standalone -lvstgui_support -lvstgui_uidescription"
427      AC_SUBST(VST3_CXXFLAGS)
428      AC_SUBST(VST3_LIBS)
429      AC_MSG_NOTICE([VST3 enabled])],
430      [AC_MSG_NOTICE([VST3 disabled])])
431AM_CONDITIONAL([WITH_VST3], [test "x$enable_vst3" == xyes])
432
433PKG_CHECK_MODULES([CAIRO], [cairo >= 1.12.0])
434AC_SUBST(CAIRO_CFLAGS)
435AC_SUBST(CAIRO_LIBS)
436
437PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.18.0])
438AC_SUBST(GTK_CFLAGS)
439AC_SUBST(GTK_LIBS)
440
441AS_IF([test "x$with_webkit" != xno],
442      [PKG_CHECK_MODULES([WEBKITGTK], [webkit2gtk-4.0 >= 2.10.0])
443       AC_SUBST(WEBKITGTK_CFLAGS)
444       AC_SUBST(WEBKITGTK_LIBS)
445       AC_DEFINE([AGS_WITH_WEBKIT], [1],
446                 [Define if you have webkit])
447      ])
448
449AS_IF([test "x$with_poppler" != xno],
450      [PKG_CHECK_MODULES([POPPLER], [poppler-glib >= 0.71.0])
451       AC_SUBST(POPPLER_CFLAGS)
452       AC_SUBST(POPPLER_LIBS)
453       AC_DEFINE([AGS_WITH_POPPLER], [1],
454                 [Define if you have poppler])
455      ])
456
457AS_IF([test "x$with_gstreamer" != xno],
458      [PKG_CHECK_MODULES([GSTREAMER], [gstreamer-1.0 >= 1.6.0 gstreamer-audio-1.0 >= 1.6.0 gstreamer-video-1.0 >= 1.6.0 gstreamer-app-1.0 >= 1.6.0 gstreamer-pbutils-1.0 >= 1.6.0])
459       AC_SUBST(GSTREAMER_CFLAGS)
460       AC_SUBST(GSTREAMER_LIBS)
461       AC_DEFINE([AGS_WITH_GSTREAMER], [1],
462                 [Define if you have gstreamer])
463      ])
464AM_CONDITIONAL([WITH_GSTREAMER], [test "x$with_gstreamer" == xyes])
465
466AS_IF([test "x$enable_run_functional_tests" == xyes],
467      [AC_MSG_NOTICE([run functional tests enabled])],
468      [AC_MSG_NOTICE([run functional tests disabled])])
469AM_CONDITIONAL([RUN_FUNCTIONAL_TESTS], [test "x$enable_run_functional_tests" == xyes])
470
471AS_IF([test "x$enable_fast_test_mode" == xyes],
472      [AC_MSG_NOTICE([fast test mode enabled])],
473      [AC_MSG_NOTICE([fast test mode disabled])])
474AM_CONDITIONAL([FAST_TEST_MODE], [test "x$enable_fast_test_mode" == xyes])
475
476# Checks for library functions.
477AC_FUNC_MALLOC
478AC_FUNC_MMAP
479AC_FUNC_REALLOC
480AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify atexit clock_gettime floor memmove memset pow putenv realpath regcomp setlocale sqrt strchr strdup strerror strrchr strstr strtoul])
481
482AC_CANONICAL_HOST
483
484build_gnu=no
485build_linux=no
486build_windows=no
487build_mac=no
488build_freebsd=no
489
490# Detect the target system
491case "${host_os}" in
492    gnu*)
493        build_gnu=yes
494        ;;
495    linux*)
496        build_linux=yes
497        ;;
498    freebsd*)
499        build_freebsd=yes
500        ;;
501    cygwin*|mingw*)
502        build_windows=yes
503        ;;
504    darwin*)
505        build_mac=yes
506        ;;
507    *)
508        AC_MSG_NOTICE(["OS $host_os is not supported"])
509        ;;
510esac
511
512# Pass the conditionals to automake
513AM_CONDITIONAL([GNU], [test "$build_gnu" = "yes"])
514AM_CONDITIONAL([LINUX], [test "$build_linux" = "yes"])
515AM_CONDITIONAL([FREEBSD], [test "$build_freebsd" = "yes"])
516AM_CONDITIONAL([WINDOWS], [test "$build_windows" = "yes"])
517AM_CONDITIONAL([OSX], [test "$build_mac" = "yes"])
518
519
520# check for gtk-doc
521m4_ifdef([GTK_DOC_CHECK], [
522GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
523],[
524AM_CONDITIONAL([ENABLE_GTK_DOC], false)
525])
526
527AM_CONDITIONAL([WITH_SYSTEM_TESTS], [test "x$enable_run_system_tests" == xyes])
528AM_CONDITIONAL([WITH_VST3], [test "x$enable_vst3" == xyes])
529AM_CONDITIONAL([WITH_EXPERIMENTAL], [test "x$enable_experimental" == xyes])
530
531AGS_POTFILES([])
532
533LIBAGS_SYMBOLS([])
534LIBAGS_THREAD_SYMBOLS([])
535LIBAGS_SERVER_SYMBOLS([])
536LIBAGS_AUDIO_SYMBOLS([])
537LIBAGS_VST_SYMBOLS([])
538LIBAGS_GUI_SYMBOLS([])
539
540LIBAGS_MARSHALLERS([])
541LIBAGS_GUI_MARSHALLERS([])
542
543AGS_DEVELOPER_BOOK_LISTINGS([])
544
545AGS_DOCS_BOOKS([])
546AGS_DOCS_API([])
547
548AS_IF([test "x$HTMLHELP_XSL" != x],
549      [AC_SUBST(HTMLHELP_XSL, $HTMLHELP_XSL)
550       AC_MSG_NOTICE([HTMLHELP_XSL = $HTMLHELP_XSL])],
551      [AC_SUBST(HTMLHELP_XSL, /usr/share/xml/docbook/stylesheet/docbook-xsl/htmlhelp/htmlhelp.xsl)
552       AC_MSG_NOTICE([HTMLHELP_XSL = $HTMLHELP_XSL])])
553
554AS_IF([test "x$enable_upstream_gtk_doc" != xno],
555[AS_IF([test "x$GOBJECT_API_DOC" != x],
556      [AC_SUBST(GOBJECT_API_DOC, $GOBJECT_API_DOC)
557       AC_MSG_NOTICE([GOBJECT_API_DOC = $GOBJECT_API_DOC])],
558      [AC_SUBST(GOBJECT_API_DOC, '/usr/share/doc/libglib2.0-doc/gobject')
559       AC_MSG_NOTICE([GOBJECT_API_DOC = $GOBJECT_API_DOC])])
560
561AS_IF([test "x$GTK_API_DOC" != x],
562      [AC_SUBST(GTK_API_DOC, $GTK_API_DOC)
563       AC_MSG_NOTICE([GTK_API_DOC = $GTK_API_DOC])],
564      [AC_SUBST(GTK_API_DOC, '/usr/share/doc/libgtk-3-doc/gtk3')
565       AC_MSG_NOTICE([GTK_API_DOC = $GTK_API_DOC])])
566
567AS_IF([test "x$LIBAGS_API_DOC" != x],
568      [AC_SUBST(LIBAGS_API_DOC, $LIBAGS_API_DOC)
569       AC_MSG_NOTICE([LIBAGS_API_DOC = $LIBAGS_API_DOC])],
570      [AC_SUBST(LIBAGS_API_DOC, '/usr/share/doc/libags-doc/api')
571       AC_MSG_NOTICE([LIBAGS_API_DOC = $LIBAGS_API_DOC])])
572
573AS_IF([test "x$LIBAGS_AUDIO_API_DOC" != x],
574      [AC_SUBST(LIBAGS_AUDIO_API_DOC, $LIBAGS_AUDIO_API_DOC)
575       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DOC = $LIBAGS_AUDIO_API_DOC])],
576      [AC_SUBST(LIBAGS_AUDIO_API_DOC, '/usr/share/doc/libags-audio-doc/api')
577       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DOC = $LIBAGS_AUDIO_API_DOC])])
578
579AS_IF([test "x$LIBAGS_GUI_API_DOC" != x],
580      [AC_SUBST(LIBAGS_GUI_API_DOC, $LIBAGS_GUI_API_DOC)
581       AC_MSG_NOTICE([LIBAGS_GUI_API_DOC = $LIBAGS_GUI_API_DOC])],
582      [AC_SUBST(LIBAGS_GUI_API_DOC, '/usr/share/doc/libags-gui-doc/api')
583       AC_MSG_NOTICE([LIBAGS_GUI_API_DOC = $LIBAGS_GUI_API_DOC])])
584
585AS_IF([test "x$LIBGSEQUENCER_API_DOC" != x],
586      [AC_SUBST(LIBGSEQUENCER_API_DOC, $LIBGSEQUENCER_API_DOC)
587       AC_MSG_NOTICE([LIBGSEQUENCER_API_DOC = $LIBGSEQUENCER_API_DOC])],
588      [AC_SUBST(LIBGSEQUENCER_API_DOC, '/usr/share/doc/libgsequencer-doc/api')
589       AC_MSG_NOTICE([LIBGSEQUENCER_API_DOC = $LIBGSEQUENCER_API_DOC])])
590
591AS_IF([test "x$LIBAGS_API_DIR" != x],
592      [AC_SUBST(LIBAGS_API_DIR, $LIBAGS_API_DIR)
593       AC_MSG_NOTICE([LIBAGS_API_DIR = $LIBAGS_API_DIR])],
594      [AC_SUBST(LIBAGS_API_DIR, $datadir/doc/libags-doc/api)
595       AC_MSG_NOTICE([LIBAGS_API_DIR = $LIBAGS_API_DIR])])
596
597AS_IF([test "x$LIBAGS_AUDIO_API_DIR" != x],
598      [AC_SUBST(LIBAGS_AUDIO_API_DIR, $LIBAGS_AUDIO_API_DIR)
599       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DIR = $LIBAGS_AUDIO_API_DIR])],
600      [AC_SUBST(LIBAGS_AUDIO_API_DIR, $datadir/doc/libags-audio-doc/api)
601       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DIR = $LIBAGS_AUDIO_API_DIR])])
602
603AS_IF([test "x$LIBAGS_GUI_API_DIR" != x],
604      [AC_SUBST(LIBAGS_GUI_API_DIR, $LIBAGS_GUI_API_DIR)
605       AC_MSG_NOTICE([LIBAGS_GUI_API_DIR = $LIBAGS_GUI_API_DIR])],
606      [AC_SUBST(LIBAGS_GUI_API_DIR, $datadir/doc/libags-gui-doc/api)
607       AC_MSG_NOTICE([LIBAGS_GUI_API_DIR = $LIBAGS_GUI_API_DIR])])
608
609AS_IF([test "x$LIBGSEQUENCER_API_DIR" != x],
610      [AC_SUBST(LIBGSEQUENCER_API_DIR, $LIBGSEQUENCER_API_DIR)
611       AC_MSG_NOTICE([LIBGSEQUENCER_API_DIR = $LIBGSEQUENCER_API_DIR])],
612      [AC_SUBST(LIBGSEQUENCER_API_DIR, $datadir/doc/libgsequencer-doc/api)
613       AC_MSG_NOTICE([LIBGSEQUENCER_API_DIR = $LIBGSEQUENCER_API_DIR])])
614],
615[
616AS_IF([test "x$GOBJECT_API_DOC" != x],
617      [AC_SUBST(GOBJECT_API_DOC, $GOBJECT_API_DOC)
618       AC_MSG_NOTICE([GOBJECT_API_DOC = $GOBJECT_API_DOC])],
619      [AC_SUBST(GOBJECT_API_DOC, '../gobject')
620       AC_MSG_NOTICE([GOBJECT_API_DOC = $GOBJECT_API_DOC])])
621
622AS_IF([test "x$GTK_API_DOC" != x],
623      [AC_SUBST(GTK_API_DOC, $GTK_API_DOC)
624       AC_MSG_NOTICE([GTK_API_DOC = $GTK_API_DOC])],
625      [AC_SUBST(GTK_API_DOC, '../gtk3')
626       AC_MSG_NOTICE([GTK_API_DOC = $GTK_API_DOC])])
627
628AS_IF([test "x$LIBAGS_API_DOC" != x],
629      [AC_SUBST(LIBAGS_API_DOC, $LIBAGS_API_DOC)
630       AC_MSG_NOTICE([LIBAGS_API_DOC = $LIBAGS_API_DOC])],
631      [AC_SUBST(LIBAGS_API_DOC, '../libags')
632       AC_MSG_NOTICE([LIBAGS_API_DOC = $LIBAGS_API_DOC])])
633
634AS_IF([test "x$LIBAGS_AUDIO_API_DOC" != x],
635      [AC_SUBST(LIBAGS_AUDIO_API_DOC, $LIBAGS_AUDIO_API_DOC)
636       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DOC = $LIBAGS_AUDIO_API_DOC])],
637      [AC_SUBST(LIBAGS_AUDIO_API_DOC, '../libags_audio')
638       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DOC = $LIBAGS_AUDIO_API_DOC])])
639
640AS_IF([test "x$LIBAGS_GUI_API_DOC" != x],
641      [AC_SUBST(LIBAGS_GUI_API_DOC, $LIBAGS_GUI_API_DOC)
642       AC_MSG_NOTICE([LIBAGS_GUI_API_DOC = $LIBAGS_GUI_API_DOC])],
643      [AC_SUBST(LIBAGS_GUI_API_DOC, '../libags_gui')
644       AC_MSG_NOTICE([LIBAGS_GUI_API_DOC = $LIBAGS_GUI_API_DOC])])
645
646AS_IF([test "x$LIBGSEQUENCER_API_DOC" != x],
647      [AC_SUBST(LIBGSEQUENCER_API_DOC, $LIBGSEQUENCER_API_DOC)
648       AC_MSG_NOTICE([LIBGSEQUENCER_API_DOC = $LIBGSEQUENCER_API_DOC])],
649      [AC_SUBST(LIBGSEQUENCER_API_DOC, '../libgsequencer')
650       AC_MSG_NOTICE([LIBGSEQUENCER_API_DOC = $LIBGSEQUENCER_API_DOC])])
651
652AS_IF([test "x$LIBAGS_API_DIR" != x],
653      [AC_SUBST(LIBAGS_API_DIR, $LIBAGS_API_DIR)
654       AC_MSG_NOTICE([LIBAGS_API_DIR = $LIBAGS_API_DIR])],
655      [AC_SUBST(LIBAGS_API_DIR, $datadir/gtk-doc/html/libags)
656       AC_MSG_NOTICE([LIBAGS_API_DIR = $LIBAGS_API_DIR])])
657
658AS_IF([test "x$LIBAGS_AUDIO_API_DIR" != x],
659      [AC_SUBST(LIBAGS_AUDIO_API_DIR, $LIBAGS_AUDIO_API_DIR)
660       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DIR = $LIBAGS_AUDIO_API_DIR])],
661      [AC_SUBST(LIBAGS_AUDIO_API_DIR, $datadir/gtk-doc/html/libags_audio)
662       AC_MSG_NOTICE([LIBAGS_AUDIO_API_DIR = $LIBAGS_AUDIO_API_DIR])])
663
664AS_IF([test "x$LIBAGS_GUI_API_DIR" != x],
665      [AC_SUBST(LIBAGS_GUI_API_DIR, $LIBAGS_GUI_API_DIR)
666       AC_MSG_NOTICE([LIBAGS_GUI_API_DIR = $LIBAGS_GUI_API_DIR])],
667      [AC_SUBST(LIBAGS_GUI_API_DIR, $datadir/gtk-doc/html/libags_gui)
668       AC_MSG_NOTICE([LIBAGS_GUI_API_DIR = $LIBAGS_GUI_API_DIR])])
669
670AS_IF([test "x$LIBGSEQUENCER_API_DIR" != x],
671      [AC_SUBST(LIBGSEQUENCER_API_DIR, $LIBGSEQUENCER_API_DIR)
672       AC_MSG_NOTICE([LIBGSEQUENCER_API_DIR = $LIBGSEQUENCER_API_DIR])],
673      [AC_SUBST(LIBGSEQUENCER_API_DIR, $datadir/gtk-doc/html/libgsequencer)
674       AC_MSG_NOTICE([LIBGSEQUENCER_API_DIR = $LIBGSEQUENCER_API_DIR])])
675])
676
677gl_INIT
678
679AM_EXTRA_RECURSIVE_TARGETS([ags-docs])
680AC_CONFIG_FILES([
681lib/Makefile
682Makefile
683unit-system-tests.mk
684functional-system-tests.mk
685m4/Makefile
686po/Makefile.in
687po/Makefile
688docs/reference/libags/Makefile
689docs/reference/libags-audio/Makefile
690docs/reference/libags-gui/Makefile
691docs/reference/libgsequencer/Makefile
692libags.pc
693libags_audio.pc
694libags_gui.pc
695libgsequencer.pc])
696
697AC_OUTPUT
698