1dnl Process this file with autoconf to produce a configure script.
2AC_INIT([denemo], [2.0.6], [denemo-devel@gnu.org])
3AC_CONFIG_SRCDIR([src/core/main.c])
4AM_INIT_AUTOMAKE([tar-pax foreign dist-xz subdir-objects])
5dnl AC_CANONICAL_SYSTEM
6AC_CONFIG_HEADER(config.h)
7
8AC_CONFIG_MACRO_DIR([build])
9AM_MAINTAINER_MODE
10AM_BINRELOC
11dnl ALL_LINGUAS="es fr sv"
12AM_GNU_GETTEXT([external])
13AM_GNU_GETTEXT_VERSION([0.18])
14AC_PROG_LN_S
15AC_PROG_MKDIR_P
16AM_PROG_CC_C_O
17
18IT_PROG_INTLTOOL([0.35.0])
19GETTEXT_PACKAGE=denemo
20AC_SUBST(GETTEXT_PACKAGE)
21AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],
22                   [The domain to use with gettext])
23AM_GLIB_GNU_GETTEXT
24LOCALEDIR=[${datadir}/locale]
25AC_SUBST(LOCALEDIR)
26
27dnl Checks for programs.
28AC_PROG_CPP
29AC_PROG_CXX
30AC_PROG_INSTALL
31AC_PROG_YACC
32AM_PROG_LEX
33GUILE_FLAGS
34
35AC_PROG_LIBTOOL
36
37dnl Enable color if available
38AS_COMPILER_FLAG([-fdiagnostics-color=auto],
39                 [CFLAGS="$CFLAGS -fdiagnostics-color=auto"])
40
41AM_CONDITIONAL(ENABLE_GLIB_TEST, [test "x$enable_glibtest" = "xyes"])
42
43AC_ARG_ENABLE(
44  guile_1_8,
45  AS_HELP_STRING([--enable-guile_1_8], [use GUILE_1_8 @<:@default=no@:>@]),
46  [
47    if test "x$enableval" != "xno"; then
48      useguile_1_8=yes
49      PKG_CHECK_MODULES(GUILE_1_8, guile-1.8 >= 1.8)
50      LIBS="$LIBS $GUILE_1_8_LIBS"
51      CFLAGS="$CFLAGS $GUILE_1_8_CFLAGS"
52    fi
53  ], [ useguile_1_8=no ])
54
55AC_ARG_ENABLE(
56  guile_2_0,
57  AS_HELP_STRING([--enable-guile_2_0], [use GUILE_2_0 @<:@default=no@:>@]),
58  [
59    if test "x$enableval" != "xno"; then
60      useguile_2_0=yes
61      PKG_CHECK_MODULES([GUILE_2], [guile-2.0])
62      LIBS="$LIBS $GUILE_2_LIBS"
63      CFLAGS="$CFLAGS $GUILE_2_CFLAGS"
64    fi
65  ], [ useguile_2_0=no ])
66
67if [test "x$useguile_1_8" = "xno"] && [test "x$useguile_2_0" = "xno"]; then
68  PKG_CHECK_MODULES([GUILE_2], [guile-2.0], useguile_2_0=yes, useguile_2_0=no)
69  LIBS="$LIBS $GUILE_2_LIBS"
70  CFLAGS="$CFLAGS $GUILE_2_CFLAGS"
71  if test "x$useguile_2_0" = "xno"; then
72    PKG_CHECK_MODULES(GUILE_1_8, guile-1.8 >= 1.8)
73    LIBS="$LIBS $GUILE_1_8_LIBS"
74    CFLAGS="$CFLAGS $GUILE_1_8_CFLAGS"
75    useguile_1_8=yes
76  else
77    useguile_2_0=yes
78  fi
79fi
80
81AC_ARG_ENABLE(
82  aubio3,
83  AS_HELP_STRING([--enable-aubio3], [use AUBIO_3 @<:@default=no@:>@]),
84  [
85    if test "x$enableval" != "xno"; then
86      useaubio3=yes
87      PKG_CHECK_MODULES(LIBAUBIO_3, aubio >= 0.3.2)
88      CFLAGS="$CFLAGS $LIBAUBIO_3_CFLAGS -D_WITH_AUBIO_3_"
89      LIBS="$LIBS $LIBAUBIO_3_LIBS"
90    fi
91  ], [ useaubio3=no ])
92
93AC_ARG_ENABLE(
94  aubio4,
95  AS_HELP_STRING([--enable-aubio4], [use AUBIO_4 @<:@default=no@:>@]),
96  [
97    if test "x$enableval" != "xno"; then
98      useaubio4=yes
99      PKG_CHECK_MODULES(LIBAUBIO_4, aubio >= 0.4.0)
100      CFLAGS="$CFLAGS $LIBAUBIO_4_CFLAGS -D_WITH_AUBIO_4_"
101      LIBS="$LIBS $LIBAUBIO_4_LIBS"
102    fi
103  ], [ useaubio4=no ])
104
105if [test "x$useaubio3" = "xno"] && [test "x$useaubio4" = "xno"]; then
106  PKG_CHECK_MODULES([LIBAUBIO_4], [aubio >= 0.4.0], useaubio4=yes, useaubio4=no)
107  CFLAGS="$CFLAGS $LIBAUBIO_4_CFLAGS -D_WITH_AUBIO_4_"
108  LIBS="$LIBS $LIBAUBIO_4_LIBS"
109  if test "x$useaubio4" = "xno"; then
110    PKG_CHECK_MODULES(LIBAUBIO_3, aubio >= 0.3.2)
111    CFLAGS="$CFLAGS $LIBAUBIO_3_CFLAGS -D_WITH_AUBIO_3_"
112    LIBS="$LIBS $LIBAUBIO_3_LIBS"
113    useaubio3=yes
114  else
115    useaubio4=yes
116  fi
117fi
118
119PKG_CHECK_MODULES(XML2, libxml-2.0 >= 2.3.10)
120CFLAGS="$CFLAGS $XML2_CFLAGS"
121LIBS="$LIBS $XML2_LIBS"
122
123PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.0)
124CFLAGS="$CFLAGS $RSVG_CFLAGS"
125LIBS="$LIBS $RSVG_LIBS"
126
127PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0)
128CFLAGS="$CFLAGS $FONTCONFIG_CFLAGS"
129LIBS="$LIBS $FONTCONFIG_LIBS"
130
131dnl The following is needed for g_thread_init
132PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.21.0)
133CFLAGS="$CFLAGS $GTHREAD_LIBS"
134LIBS="$LIBS $GTHREAD_LIBS"
135
136dnl The following is needed for source audio files
137PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0)
138CFLAGS="$CFLAGS $SNDFILE_LIBS"
139LIBS="$LIBS $SNDFILE_LIBS"
140
141PKG_CHECK_MODULES(SMF, smf >= 1.3, havesmf=yes, havesmf=no)
142AM_CONDITIONAL(HAVE_SMF, [test x$havesmf = xyes])
143CFLAGS="$CFLAGS $SMF_CFLAGS"
144LIBS="$LIBS $SMF_LIBS"
145
146AC_ARG_ENABLE(
147  jack,
148  AS_HELP_STRING([--enable-jack], [use JACK @<:@default=no@:>@]),
149  [
150    if test "x$enableval" != "xno"; then
151      usejack=yes
152    fi
153  ])
154AM_CONDITIONAL(HAVE_JACK, [test x$usejack = xyes])
155
156if test "x$usejack" = "xyes"; then
157  PKG_CHECK_MODULES(JACK, jack >= 0.102.0)
158  CFLAGS="$CFLAGS -D_HAVE_JACK_ $JACK_CFLAGS"
159  LIBS="$LIBS -D_HAVE_JACK_ $JACK_LIBS"
160fi
161
162AC_ARG_ENABLE(
163  evince,
164  AS_HELP_STRING([--enable-evince], [use EVINCE @<:@default=yes@:>@]),
165  [
166    if test "x$enableval" == "xno"; then
167      useevince=no
168    else
169      useevince=yes
170    fi
171  ], [ useevince=yes ])
172AM_CONDITIONAL(HAVE_EVINCE, [test x$useevince = xyes])
173
174AC_ARG_ENABLE(
175  gtk2,
176  AS_HELP_STRING([--enable-gtk2], [use GTK2 @<:@default=no@:>@]),
177  [
178    if test "x$enableval" != "xno"; then
179      usegtk2=yes
180      PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.3)
181    fi
182  ], [ usegtk2=no ])
183
184AC_ARG_ENABLE(
185  gtk3,
186  AS_HELP_STRING([--enable-gtk3], [use GTK3 @<:@default=no@:>@]),
187  [
188    if test "x$enableval" != "xno"; then
189      usegtk3=yes
190      PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.0.0)
191    fi
192  ], [ usegtk3=no ])
193
194if [test "x$usegtk2" = "xno"] && [test "x$usegtk3" = "xno"]; then
195  PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.0.0, havegtk3=yes, havegtk3=no)
196  if test "x$havegtk3" = "xno"; then
197    PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.3)
198    usegtk2=yes
199  else
200    usegtk3=yes
201  fi
202fi
203
204if test "x$usegtk2" = "xyes"; then
205  CFLAGS="$CFLAGS $GTK2_CFLAGS"
206  LIBS="$LIBS $GTK2_LIBS"
207
208  PKG_CHECK_MODULES(GTKSOURCEVIEW, gtksourceview-2.0 >= 2.0)
209  CFLAGS="$CFLAGS $GTKSOURCEVIEW_CFLAGS"
210  LIBS="$LIBS $GTKSOURCEVIEW_LIBS"
211
212  if test "x$useevince" != "xno"; then
213    PKG_CHECK_MODULES(EVINCE_2_0, evince-view-2.0 >= 2.0, have_evince2=yes, have_evince2=no)
214    CFLAGS="$CFLAGS $EVINCE_2_0_CFLAGS"
215    LIBS="$LIBS $EVINCE_2_0_LIBS"
216
217    if test "x$have_evince2" = "xno"; then
218      PKG_CHECK_MODULES(EVINCE_2_30, evince-view-2.30 >= 2.0, have_evince2_3=yes, have_evince2_3=no)
219      CFLAGS="$CFLAGS $EVINCE_2_30_CFLAGS"
220      LIBS="$LIBS $EVINCE_2_30_LIBS"
221    fi
222
223    if test "x$have_evince2_3" = "xno"; then
224      PKG_CHECK_MODULES(EVINCE_2_32, evince-view-2.32 >= 2.0)
225      CFLAGS="$CFLAGS $EVINCE_2_32_CFLAGS"
226      LIBS="$LIBS $EVINCE_2_32_LIBS"
227    fi
228  fi
229fi
230
231if test "x$usegtk3" = "xyes"; then
232  CFLAGS="$CFLAGS $GTK3_CFLAGS"
233  LIBS="$LIBS $GTK3_LIBS"
234
235  PKG_CHECK_MODULES(GTKSOURCEVIEW, gtksourceview-3.0 >= 3.0)
236  CFLAGS="$CFLAGS $GTKSOURCEVIEW_CFLAGS"
237  LIBS="$LIBS $GTKSOURCEVIEW_LIBS"
238
239  if test "x$useevince" != "xno"; then
240    PKG_CHECK_MODULES(EVINCE, evince-view-3.0 >= 3.0)
241    CFLAGS="$CFLAGS $EVINCE_CFLAGS"
242    LIBS="$LIBS $EVINCE_LIBS"
243  fi
244fi
245
246if test "x$useevince" = "xyes"; then
247  CFLAGS="$CFLAGS -DUSE_EVINCE"
248  LIBS="$LIBS -DUSE_EVINCE"
249fi
250
251AC_ARG_ENABLE(
252  alsa,
253  AS_HELP_STRING([--enable-alsa], [use ALSA @<:@default=no@:>@]),
254  [
255    if test "x$enableval" != "xno"; then
256      usealsa=yes
257    fi
258  ])
259AM_CONDITIONAL(HAVE_ALSA, [test x$usealsa = xyes])
260
261if test "x$usealsa" = "xyes"; then
262  PKG_CHECK_MODULES(ALSA, alsa >= 1.0.0)
263  CFLAGS="$CFLAGS $ALSA_CFLAGS -D_HAVE_ALSA_"
264  LIBS="$LIBS $ALSA_LIBS"
265fi
266
267
268AC_ARG_ENABLE(
269  fluidsynth,
270  AS_HELP_STRING([--enable-fluidsynth], [use FLUIDSYNTH @<:@default=yes@:>@]),
271  [
272    if test "x$enableval" != "xno"; then
273      usefluidsynth=yes
274    fi
275  ], [ usefluidsynth=yes ])
276AM_CONDITIONAL(HAVE_FLUIDSYNTH, [test x$usefluidsynth = xyes])
277
278if test "x$usefluidsynth" = "xyes"; then
279  PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0.8)
280  CFLAGS="$CFLAGS -D_HAVE_FLUIDSYNTH_ $FLUIDSYNTH_CFLAGS"
281  LIBS="$LIBS -D_HAVE_FLUIDSYNTH_ $FLUIDSYNTH_LIBS"
282fi
283
284AC_ARG_ENABLE(
285  rubberband,
286  AS_HELP_STRING([--enable-rubberband], [use RUBBERBAND @<:@default=yes@:>@]),
287  [
288    if test "x$enableval" != "xno"; then
289      userubberband=yes
290    fi
291  ], [ userubberband=yes ])
292AM_CONDITIONAL(HAVE_RUBBERBAND, [test x$userubberband = xyes])
293
294if test "x$userubberband" = "xyes"; then
295  PKG_CHECK_MODULES(RUBBERBAND, rubberband >= 1.0.8)
296  CFLAGS="$CFLAGS -D_HAVE_RUBBERBAND_ $FLUIDSYNTH_CFLAGS"
297  LIBS="$LIBS -D_HAVE_RUBBERBAND_ $RUBBERBAND_LIBS"
298fi
299
300
301
302AC_ARG_ENABLE(
303  portaudio,
304  AS_HELP_STRING([--enable-portaudio], [use PORTAUDIO @<:@default=yes@:>@]),
305  [
306    if test "x$enableval" != "xno"; then
307      useportaudio=yes
308    fi
309  ], [ useportaudio=yes ])
310AM_CONDITIONAL(HAVE_PORTAUDIO, [test x$useportaudio = xyes])
311
312if test "x$useportaudio" = "xyes"; then
313  PKG_CHECK_MODULES(PORTAUDIO, portaudio-2.0 >= 19)
314  CFLAGS="$CFLAGS -D_HAVE_PORTAUDIO_ $PORTAUDIO_CFLAGS"
315  dnl CFLAGS="$CFLAGS $PORTAUDIO_CFLAGS"
316  LIBS="$LIBS $PORTAUDIO_LIBS"
317
318  PKG_CHECK_MODULES(FFTW, fftw3 >= 3.1.2)
319  CFLAGS="$CFLAGS $FFTW_CFLAGS"
320  LIBS="$LIBS $FFTW_LIBS"
321fi
322
323AC_ARG_ENABLE(
324  portmidi,
325  AS_HELP_STRING([--enable-portmidi], [use PORTMIDI @<:@default=yes@:>@]),
326  [
327    if test "x$enableval" != "xno"; then
328      useportmidi=yes
329    fi
330  ], [ useportmidi=yes ])
331AM_CONDITIONAL(HAVE_PORTMIDI, [test x$useportmidi = xyes])
332
333if test "x$useportmidi" = "xyes"; then
334  AC_CHECK_HEADER([portmidi.h], [],
335  [
336    AC_MSG_ERROR([Library 'portmidi' not found])
337  ])
338  PORTMIDI_CFLAGS="-D_HAVE_PORTMIDI_"
339
340  AC_CHECK_LIB([portmidi],
341               [Pm_Initialize],
342               PORTMIDI_LIBS="-lportmidi $PORTMIDI_LIBS"
343               )
344
345  AC_CHECK_LIB([porttime],
346               [Pt_Start],
347               PORTMIDI_LIBS="-lporttime $PORTMIDI_LIBS",
348               )
349
350  if test "x$PORTMIDI_LIBS" = "x"; then
351    AC_MSG_ERROR([Cannot link against portmidi nor porttime])
352  fi
353
354  CFLAGS="$CFLAGS $PORTMIDI_CFLAGS"
355  LIBS="$LIBS $PORTMIDI_LIBS"
356fi
357
358dnl Options for configuration
359build_debug=no
360AC_ARG_ENABLE(
361  debug,
362  AS_HELP_STRING([--enable-debug], [enable debug code @<:@default=no@:>@]),
363  [
364    if test "x$enableval" != "xno"; then
365      build_debug=yes
366      CFLAGS="$CFLAGS -DDEBUG -g -Wall -Wextra -Wno-deprecated-declarations -Wno-sign-compare"
367      CXXFLAGS="$CXXFLAGS -DDEBUG -g -Wall -Wextra -Wno-deprecated-declarations -Wno-sign-compare"
368    fi
369  ])
370
371AC_ARG_ENABLE(
372  warnings,
373  AS_HELP_STRING([--disable-warnings], [use warnings @<:@default=no@:>@]),
374  [
375    if test "x$enableval" = "xno"; then
376      CFLAGS="$CFLAGS -w"
377      CXXFLAGS="$CXXFLAGS -w"
378    fi
379  ])
380
381AC_ARG_ENABLE(
382  x11,
383  AS_HELP_STRING([--enable-x11], [use X11 @<:@default=yes@:>@]),
384  [
385    if test "x$enableval" != "xno"; then
386      enable_x11=yes
387    fi
388  ], [ enable_x11=yes ])
389AM_CONDITIONAL(WITH_X11, [test x$enable_x11 = xyes])
390
391if test "x$enable_x11" = "xyes"; then
392  CFLAGS="$CFLAGS -D_HAVE_X11_"
393  LIBS="$LIBS -D_HAVE_X11_"
394fi
395
396dnl Memory debugging
397mem_debug=no
398AC_ARG_ENABLE(
399  mem,
400  AS_HELP_STRING([--enable-mem], [enable memory debugging @<:@default=no@:>@]),
401  [
402    if test "x$enableval" != "xno"; then
403      mem_debug=yes
404    fi
405  ])
406if test "x$mem_debug" = "xyes"; then LDFLAGS="$LDFLAGS -lefence"; fi
407
408
409dnl Build documentation
410build_doc=no
411AC_ARG_ENABLE(
412  doc,
413  AS_HELP_STRING(
414    [--enable-doc],[enable documentation build @<:@default=no@:>@]),
415  [
416    if test "x$enableval" != "xno"; then
417      build_doc=yes
418    fi
419  ])
420AM_CONDITIONAL(DENEMO_BUILD_DOC,[test "$build_doc" = "yes"])
421
422# check for gtk-doc
423m4_ifdef([GTK_DOC_CHECK], [
424GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
425],[
426AM_CONDITIONAL([ENABLE_GTK_DOC], false)
427])
428
429# Test suite
430GLIB_TESTS
431
432dnl Check for coverage tool gcov
433AC_TDD_GCOV
434
435dnl Checks for header files.
436
437AC_CHECK_HEADERS(sys/soundcard.h)
438AC_CHECK_HEADERS(errno.h)
439AC_CHECK_HEADERS(getopt.h sys/wait.h wait.h sys/time.h sys/resource.h)
440
441AC_COMPILE_IFELSE(
442  [AC_LANG_PROGRAM([#include <signal.h>], [int mysignal = SIGCHLD;])],
443  [AC_DEFINE(HAVE_SIGCHLD, 1, [Define to 1 if SIGCHLD signal is available])])
444
445AC_LINK_IFELSE(
446  [AC_LANG_PROGRAM([#include <stdio.h>],
447    [
448      FILE * fp;
449      flockfile (fp);
450      ftrylockfile (fp);
451      funlockfile (fp);
452    ])],
453  [AC_DEFINE(HAVE_FILE_LOCKS, 1, [Define to 1 if file locking is available])])
454
455dnl Checks for typedefs, structures, and compiler characteristics.
456dnl AC_HEADER_TIME
457
458dnl Checks for library functions.
459
460dnl Set PACKAGE_LOCALE_DIR in config.h.
461
462
463if test "${prefix}" = "NONE"; then
464  prefix=${ac_default_prefix}
465  AC_SUBST(prefix)
466fi
467
468pkgdatadir=${datadir}/${PACKAGE}
469PACKAGE_DATA_DIR=${datadir}/${PACKAGE}
470AC_SUBST(pkgdatadir)
471AC_SUBST(PACKAGE_DATA_DIR)
472
473dnl
474dnl Append the package name to sysconfdir.
475dnl
476sysconfdir=$sysconfdir/${PACKAGE}
477AC_SUBST(sysconfdir)
478
479dnl Set PACKAGE_SOURCE_DIR in config.h.
480packagesrcdir=`cd $srcdir && pwd`
481AC_DEFINE_UNQUOTED(
482  PACKAGE_SOURCE_DIR, "${packagesrcdir}", [set package source dir])
483
484dnl path magic for denemo guile modules
485denemo_load_path=${PACKAGE_DATA_DIR}/modules
486denemo_bin_path=${libdir}/${PACKAGE}/modules
487AC_SUBST(denemo_load_path)
488AC_SUBST(denemo_bin_path)
489
490dnl Gettext stuff
491
492AC_SUBST(CFLAGS)
493AC_SUBST(CPPFLAGS)
494AC_SUBST(LDFLAGS)
495
496
497AC_OUTPUT(
498[
499  build/Makefile
500  Makefile
501  denemo.spec
502  tools/Makefile
503  src/Makefile
504  pixmaps/Makefile
505  docs/Makefile
506  docs/transformations/Makefile
507  docs/images/Makefile
508  docs/reference/Makefile
509  docs/reference/denemo/Makefile
510  po/Makefile.in
511  fonts/Makefile
512  soundfonts/Makefile
513  ui/Makefile
514  tests/Makefile
515  libs/libsffile/Makefile
516  libs/libsmf/Makefile
517])
518