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