1dnl Process this file with autoconf to produce a configure script. 2AC_INIT 3AC_PREREQ(2.59) 4AC_CONFIG_HEADERS([config.h]) 5AC_CONFIG_SRCDIR([src/chunk.c]) 6 7AC_CANONICAL_HOST 8AC_CANONICAL_TARGET 9 10MHW_VERSION=1.4.24 11 12AM_INIT_AUTOMAKE(mhWaveEdit,$MHW_VERSION) 13# This is disabled in releases because timestamps can not be preserved through 14# the current Github-based release flow. 15AM_MAINTAINER_MODE([disable]) 16 17dnl Check for libintl 18AM_GNU_GETTEXT([external]) 19 20PKG_PROG_PKG_CONFIG 21 22dnl Various options 23 24AC_ARG_WITH(double-samples, 25[ --with-double-samples Use double precision floating point numbers for sound 26 processing (slows down program but may increase 27 quality for 24/32-bit samplerates).], 28AC_DEFINE([USE_DOUBLE_SAMPLES],[], 29 [Use gdouble instead of gfloat as sample data type]) 30MHW_DOUBLE="yes") 31 32AC_DEFUN([AC_WITHOUT_CHECK_CASTS],[ 33 if test "x$withval" = "xno" ; then 34 AC_DEFINE(GTK_NO_CHECK_CASTS,[],[If defined, disables GTK+ type checking]) 35 fi 36]) 37 38AC_ARG_WITH(check-casts, 39[ --without-check-casts Do not type-check GTK casts.],AC_WITHOUT_CHECK_CASTS) 40 41AC_DEFUN([AC_ENABLE_WERROR],[ 42 if test "x$enableval" = "xyes" ; then 43 AM_CFLAGS="$AM_CFLAGS -Werror" 44 fi 45]) 46 47AC_ARG_ENABLE(werror, 48[ --enable-werror Treat warnings as errors during compilation], 49AC_ENABLE_WERROR) 50 51DEFAULT_DRIVER=auto 52AC_ARG_WITH(default-driver, 53[ --with-default-driver=driver 54 Choose default sound driver (one of oss,alsa,pulse, 55 jack,sun,pa,sdl,esound,arts,auto; default: auto)], 56 DEFAULT_DRIVER=$withval) 57AC_DEFINE_UNQUOTED(DEFAULT_DRIVER,"${DEFAULT_DRIVER}",[Default sound driver]) 58 59DEFAULT_LADSPA_PATH="/usr/lib/ladspa:/usr/local/lib/ladspa" 60AC_ARG_WITH(default-ladspa-path, 61[ --with-default-ladspa-path=path 62 Path to use if LADSPA_PATH variable is not set 63 (default: "/usr/lib/ladspa:/usr/local/lib/ladspa")], 64DEFAULT_LADSPA_PATH=$withval) 65AC_DEFINE_UNQUOTED(DEFAULT_LADSPA_PATH,"${DEFAULT_LADSPA_PATH}",[Default path for LADSPA plugins]) 66 67DEFAULT_MIXERAPP=xmixer 68AC_ARG_WITH(default-mixerapp, 69[ --with-default-mixerapp=appname 70 Default command for "launch mixer" button 71 (default: "xmixer")], 72DEFAULT_MIXERAPP=$withval) 73AC_DEFINE_UNQUOTED(DEFAULT_MIXERAPP,"${DEFAULT_MIXERAPP}",[Default mixer application]) 74 75FIXED_DATE_STR="__DATE__ (actual compile date)" 76FIXED_TIME_STR="__TIME__ (actual compile time)" 77AC_ARG_WITH(build-date, 78[ --with-build-date=str Fixed string to use instead of __DATE__], 79if test "x$withval" != "xno" ; then 80AC_DEFINE_UNQUOTED(FIXED_DATE,"${withval}",[Fixed build date]) 81FIXED_DATE_STR=${withval} 82fi 83) 84 85AC_ARG_WITH(build-time, 86[ --with-build-time=str Fixed string to use instead of __TIME__], 87if test "x$withval" != "xno" ; then 88AC_DEFINE_UNQUOTED(FIXED_TIME,"${withval}",[Fixed build date]) 89FIXED_TIME_STR=${withval} 90fi 91) 92 93dnl Checks for programs. 94AC_PROG_CC 95AC_PROG_GCC_TRADITIONAL 96AC_PROG_LN_S 97AC_PROG_MAKE_SET 98 99dnl Checks for libraries. 100dnl Replace `main' with a function in -libs: 101AC_CHECK_LIB(ibs, main) 102AC_CHECK_LIB(m, round) 103 104dnl This is needed for PortAudio under GNU/Linux... 105AC_CHECK_LIB(pthread,pthread_create) 106 107dnl Check for libsndfile 108 109HAVE_SNDFILE=yes 110SKIP_SNDFILE_CHECK=no 111SNDFILE_LIBS="" 112SNDFILE_CFLAGS="" 113 114AC_DEFUN([AC_WITH_LIBSNDFILE],[ 115 if test "x$withval" = "xno" ; then 116 HAVE_SNDFILE=no 117 else 118 SNDFILE_LIBS="-L$withval/lib -lsndfile -lm" 119 SNDFILE_CFLAGS="-I$withval/include" 120 SKIP_SNDFILE_CHECK=yes 121 fi 122]) 123 124AC_ARG_WITH(libsndfile,[ --with-libsndfile=prefix Prefix where libsndfile is installed (optional) 125 --without-libsndfile Don't use libsndfile library],AC_WITH_LIBSNDFILE) 126 127if test "x$HAVE_SNDFILE" = "xyes" -a "x$SKIP_SNDFILE_CHECK" = "xno"; then 128 PKG_CHECK_MODULES(SNDFILE, sndfile, , HAVE_SNDFILE=no) 129fi 130 131if test "x$HAVE_SNDFILE" = "xyes" ; then 132 AC_DEFINE(HAVE_LIBSNDFILE,[],[Use libsndfile library]) 133fi 134 135AC_SUBST(SNDFILE_LIBS) 136AC_SUBST(SNDFILE_CFLAGS) 137 138dnl Check for libsamplerate 139 140HAVE_LIBSAMPLERATE=yes 141SKIP_LIBSAMPLERATE_CHECK=no 142LIBSAMPLERATE_LIBS="" 143LIBSAMPLERATE_CFLAGS="" 144 145AC_DEFUN([AC_WITH_LIBSAMPLERATE],[ 146 if test "x$withval" = "xno" ; then 147 HAVE_LIBSAMPLERATE=no 148 else 149 LIBSAMPLERATE_LIBS="-L$withval/lib -lsamplerate" 150 LIBSAMPLERATE_CFLAGS="-I$withval/include" 151 SKIP_LIBSAMPLERATE_CHECK=yes 152 fi 153]) 154 155AC_ARG_WITH(libsamplerate,[ --with-libsamplerate=prefix Prefix where libsamplerate is installed (optional) 156 --without-libsamplerate Don't use libsamplerate library],AC_WITH_LIBSAMPLERATE) 157 158if test "x$HAVE_LIBSAMPLERATE" = "xyes" -a "x$SKIP_LIBSAMPLERATE_CHECK" = "xno"; then 159 PKG_CHECK_MODULES(LIBSAMPLERATE, samplerate, , HAVE_LIBSAMPLERATE=no) 160fi 161 162if test "x$HAVE_LIBSAMPLERATE" = "xyes" ; then 163 AC_DEFINE(HAVE_LIBSAMPLERATE,[],[Use libsamplerate library]) 164fi 165 166AC_SUBST(LIBSAMPLERATE_LIBS) 167AC_SUBST(LIBSAMPLERATE_CFLAGS) 168 169dnl Check for PortAudio 170 171PORTAUDIO_LIBS="" 172MHW_HAVE_PORTAUDIO=yes 173 174AC_ARG_WITH(portaudio,[ --without-portaudio Don't use portaudio library], 175if test "x$withval" = "xno"; then 176MHW_HAVE_PORTAUDIO=no 177fi 178) 179 180AC_CHECK_HEADER(portaudio.h,mhw_found_header=yes,mhw_found_header=no) 181if test "x$mhw_found_header" = "xno"; then 182MHW_HAVE_PORTAUDIO=no 183fi 184 185if test "x$MHW_HAVE_PORTAUDIO" = "xyes"; then 186AC_CHECK_LIB(portaudio,Pa_Initialize,MHW_HAVE_PORTAUDIO=yes,MHW_HAVE_PORTAUDIO=no) 187fi 188 189if test "x$MHW_HAVE_PORTAUDIO" = "xyes"; then 190AC_CHECK_TYPE(PaTimestamp,,MHW_HAVE_PORTAUDIO=no,[[#include <portaudio.h>]]) 191fi 192 193if test "x$MHW_HAVE_PORTAUDIO" = "xyes"; then 194 AC_DEFINE(HAVE_PORTAUDIO,[],[Enable PortAudio sound driver]) 195 PORTAUDIO_LIBS="-lportaudio $PORTAUDIO_LIBS" 196fi 197 198AC_SUBST(PORTAUDIO_LIBS) 199 200dnl Check for SDL 201 202SKIP_SDL_TEST=no 203MHW_HAVE_SDL=no 204 205AC_DEFUN([AC_WITHOUT_SDL],[ 206 if test "x$withval" = "xno" ; then 207 SKIP_SDL_TEST=yes 208 fi 209]) 210 211AC_ARG_WITH(sdl,[ --without-sdl Don't use SDL library],AC_WITHOUT_SDL) 212 213if test "x$SKIP_SDL_TEST" = "xno"; then 214 AM_PATH_SDL(1.2.3, 215 AC_DEFINE(HAVE_SDL,[],[Enable SDL sound driver]) 216 MHW_HAVE_SDL=yes) 217fi 218 219dnl Check for AlsaLib 220 221ALSALIB_LIBS="" 222 223AC_CHECK_LIB(asound,snd_pcm_open,HAVE_ALSALIB=yes,HAVE_ALSALIB=no) 224 225AC_DEFUN([AC_WITHOUT_ALSALIB],[ 226 if test "x$withval" = "xno" ; then 227 HAVE_ALSALIB=no 228 fi 229]) 230 231AC_ARG_WITH(alsalib,[ --without-alsalib Don't compile ALSA-lib driver],AC_WITHOUT_ALSALIB) 232 233AC_CHECK_HEADER(alsa/asoundlib.h,mhw_found_header=yes,mhw_found_header=no) 234if test "x$mhw_found_header" = "xno"; then 235 HAVE_ALSALIB="no" 236fi 237 238if test "x$HAVE_ALSALIB" = "xyes"; then 239 ALSALIB_LIBS="-lasound" 240 AC_DEFINE(HAVE_ALSALIB,[],[Enable ALSA sound driver]) 241fi 242 243AC_SUBST(ALSALIB_LIBS) 244 245dnl Check for OSS 246 247HAVE_OSS=yes 248 249AC_DEFUN([AC_WITHOUT_OSS],[ 250 if test "x$withval" = "xno" ; then 251 HAVE_OSS=no 252 fi 253]) 254 255AC_ARG_WITH(oss,[ --without-oss Don't compile OSS driver],AC_WITHOUT_OSS) 256 257dnl Check for libossaudio, needed for OSS on OpenBSD 258AC_CHECK_LIB(ossaudio,_oss_ioctl) 259 260mhw_found_one=no 261AC_CHECK_HEADERS(soundcard.h sys/soundcard.h,mhw_found_one=yes) 262if test "x$mhw_found_one" = "xno"; then 263 HAVE_OSS=no 264fi 265 266if test "x$HAVE_OSS" = "xyes"; then 267 AC_DEFINE(HAVE_OSS,[],[Enable OSS sound driver]) 268fi 269 270dnl Check for JACK 271 272MHW_HAVE_JACK=no 273MHW_SKIP_JACKTEST=no 274 275AC_DEFUN([AC_WITHOUT_JACK],[ 276 if test "x$withval" = "xno" ; then 277 MHW_SKIP_JACKTEST='yes' 278 fi 279]) 280 281AC_ARG_WITH(jack,[ --without-jack Don't compile JACK driver],AC_WITHOUT_JACK) 282 283if test "x$MHW_SKIP_JACKTEST" = "xno" 284then 285 PKG_CHECK_MODULES(JACK,jack >= 0.98.0,MHW_HAVE_JACK=yes,MHW_HAVE_JACK=no) 286fi 287 288if test "x$MHW_HAVE_JACK" = "xyes" ; then 289 AC_DEFINE(HAVE_JACK,[],[Enable JACK sound driver]) 290fi 291 292dnl Check for PulseAudio 293 294MHW_HAVE_PULSE=no 295MHW_SKIP_PULSETEST=no 296 297AC_DEFUN([AC_WITHOUT_PULSE],[ 298 if test "x$withval" = "xno" ; then 299 MHW_SKIP_PULSETEST='yes' 300 fi 301]) 302 303AC_ARG_WITH(pulse,[ --without-pulse Don't compile PulseAudio driver],AC_WITHOUT_PULSE) 304 305if test "x$MHW_SKIP_PULSETEST" = "xno" 306then 307 PKG_CHECK_MODULES(PULSE,libpulse >= 0.9.10,MHW_HAVE_PULSE=yes,MHW_HAVE_PULSE=no) 308fi 309 310if test "x$MHW_HAVE_PULSE" = "xyes" ; then 311 AC_DEFINE(HAVE_PULSEAUDIO,[],[Enable PulseAudio sound driver]) 312fi 313 314dnl Check for Esound 315 316MHW_HAVE_ESOUND=yes 317AC_ARG_WITH(esound,[ --without-esound Don't compile EsounD driver], 318 if test "x$withval" = "xno"; then 319 MHW_HAVE_ESOUND=no 320 fi 321) 322if test "x$MHW_HAVE_ESOUND" = "xyes" 323then 324 PKG_CHECK_MODULES(ESOUND,esound >= 0.2.0,MHW_HAVE_ESOUND=yes,MHW_HAVE_ESOUND=no) 325fi 326 327if test "x$MHW_HAVE_ESOUND" = "xyes"; then 328 AC_DEFINE(HAVE_ESOUND,[],[Enable EsounD sound driver]) 329fi 330 331dnl Check for Sun audio 332 333MHW_HAVE_SUNAUDIO=yes 334 335AC_DEFUN([AC_WITHOUT_SUNAUDIO],[ 336 if test "x$withval" = "xno" ; then 337 MHW_HAVE_SUNAUDIO=no 338 fi 339]) 340 341AC_ARG_WITH(sun,[ --without-sun Don't compile Sun audio driver],AC_WITHOUT_SUNAUDIO) 342 343AC_CHECK_HEADER(sys/audio.h,mhw_found_one=yes,mhw_found_one=no) 344if test "x$mhw_found_one" = "xno"; then 345 MHW_HAVE_SUNAUDIO=no 346fi 347 348if test "x$MHW_HAVE_SUNAUDIO" = "xyes"; then 349 AC_DEFINE(HAVE_SUN,[],[Enable Sun audio sound driver]) 350fi 351 352dnl Check for aRts C interface 353 354MHW_HAVE_ARTSC=yes 355ARTSC_LIBS="" 356ARTSC_CFLAGS="" 357 358AC_DEFUN([AC_WITHOUT_ARTSC],[ 359 if test "x$withval" = "xno"; then 360 MHW_HAVE_ARTSC=no 361 fi 362]) 363 364AC_ARG_WITH(arts, [ --without-arts Don't compile aRts driver],AC_WITHOUT_ARTSC) 365 366ARTSC_CONFIG=no 367if test "x$MHW_HAVE_ARTSC" = "xyes"; then 368 AC_PATH_PROG(ARTSC_CONFIG, artsc-config, no) 369fi 370 371if test "x$ARTSC_CONFIG" = "xno"; then 372 MHW_HAVE_ARTSC=no 373else 374 ARTSC_CFLAGS=`$ARTSC_CONFIG --cflags` 375 ARTSC_LIBS=`$ARTSC_CONFIG --libs` 376 AC_DEFINE(HAVE_ARTSC,[],[Enable aRts driver]) 377fi 378 379AC_SUBST(ARTSC_CFLAGS) 380AC_SUBST(ARTSC_LIBS) 381 382dnl Check for GTK+ 383 384AC_DEFUN([AC_DISABLE_GTK2],[ 385 if test "x$enableval" = "xno" ; then 386 DISABLE_GTK2='yes' 387 fi 388]) 389 390AC_ARG_ENABLE(gtk2, [ --disable-gtk2 Don't use GTK+ 2, use 1.2 instead], 391 AC_DISABLE_GTK2, DISABLE_GTK2='no') 392 393 394dnl Check for GTK+ without gthread 395 396FOUND_GTK="no" 397USES_GTK2="no" 398 399if test "x$FOUND_GTK" = "xno"; then 400 if test "x$DISABLE_GTK2" != "xyes"; then 401 AM_PATH_GTK_2_0(2.0.0,USES_GTK2="yes" FOUND_GTK="yes") 402 fi 403fi 404 405if test "x$FOUND_GTK" = "xno"; then 406AM_PATH_GTK(1.2.5,FOUND_GTK="yes",AC_MSG_ERROR(mhWaveEdit requires GTK+ version 1.2.5 or higher...)) 407fi 408 409dnl Check for gthread if we're using GTK+ 2 410dnl Not needed by the app itself, but needed for some aRts versions. 411GTHREAD_CFLAGS="" 412GTHREAD_LIBS="" 413HAVE_GTHREAD="no" 414 415if test "x$USES_GTK2" = "xyes"; then 416 HAVE_GTHREAD="yes" 417 PKG_CHECK_MODULES(GTHREAD, gthread-2.0, , HAVE_GTHREAD="no") 418fi 419if test "x$HAVE_GTHREAD" = "xyes"; then 420 AC_DEFINE(HAVE_GTHREAD,[],[Defined if Glib thread support is available]) 421fi 422 423AC_SUBST(GTHREAD_CFLAGS) 424AC_SUBST(GTHREAD_LIBS) 425 426 427dnl Check for large file support 428AC_SYS_LARGEFILE 429AC_DEFINE(_LARGEFILE_SOURCE,[],[Defined to get fseeko/ftello prototypes]) 430AC_CHECK_SIZEOF(off_t) 431 432dnl Checks for header files. 433AC_HEADER_STDC 434AC_CHECK_HEADERS([sys/time.h time.h sys/ioctl.h sys/types.h unistd.h fcntl.h sched.h libintl.h locale.h]) 435 436dnl Ladspa 437HAVE_LADSPA=yes 438HAVE_LADSPA_GLOBAL=yes 439AC_CHECK_HEADER(ladspa.h,,HAVE_LADSPA_GLOBAL=no) 440AC_ARG_ENABLE(ladspa, 441 [ --disable-ladspa Don't include any Ladspa support], 442 [if test "x$enableval" = "xno"; then HAVE_LADSPA=no; fi]) 443if test "x$HAVE_LADSPA" = "xyes"; then 444 AC_CHECK_HEADER(dlfcn.h,,HAVE_LADSPA=no) 445fi 446if test "x$HAVE_LADSPA" = "xyes"; then 447 AC_CHECK_LIB(dl,dlopen,LIBS="-ldl $LIBS",HAVE_LADSPA=no) 448fi 449if test "x$HAVE_LADSPA" = "xyes"; then 450 AC_DEFINE(HAVE_LADSPA,[],[Enable LADSPA support]) 451fi 452if test "x$HAVE_LADSPA_GLOBAL" = "xyes"; then 453 AC_DEFINE(HAVE_SYS_LADSPA_H,[],[Use system LADSPA header]) 454fi 455 456dnl Checks for typedefs, structures, and compiler characteristics. 457AC_TYPE_SIZE_T 458AC_TYPE_OFF_T 459AC_TYPE_PID_T 460AC_TYPE_SIGNAL 461AC_HEADER_TIME 462AC_HEADER_DIRENT 463AC_HEADER_SYS_WAIT 464AC_C_CONST 465AC_C_VOLATILE 466 467dnl Check return type of unsetenv 468AC_MSG_CHECKING([whether unsetenv returns a value]) 469HAVE_INT_UNSETENV=no 470AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ 471#include <stdlib.h> 472],[int i; i = unsetenv("dummy"); return 0;])],HAVE_INT_UNSETENV=yes) 473if test "x$HAVE_INT_UNSETENV" = "xyes"; 474then 475 AC_DEFINE(UNSETENV_RETVAL,[],[Defined if unsetenv returns an integer]) 476fi 477AC_MSG_RESULT([$HAVE_INT_UNSETENV]) 478 479dnl Checks for library functions. 480AC_FUNC_MEMCMP 481AC_CHECK_FUNCS([gettimeofday mkdir strerror strtod strtol sched_yield ceill setlocale fseeko ftello lrint lrintf dup2 memchr memmove memset pow putenv select sqrt strchr strrchr strstr strtoul]) 482AC_FUNC_CLOSEDIR_VOID 483AC_FUNC_FORK 484AC_FUNC_SELECT_ARGTYPES 485AC_FUNC_STAT 486AC_FUNC_STRTOD 487 488dnl Write output 489AC_CONFIG_FILES([Makefile src/Makefile po/Makefile.in m4/Makefile share/Makefile ]) 490AC_OUTPUT 491 492dnl Display configuration 493 494echo 495echo 496echo "------------------------" 497echo "mhWaveEdit configuration" 498echo "------------------------" 499echo 500echo "Version: $MHW_VERSION" 501echo 502echo "Libraries: " 503echo -n " GTK+ version: " 504if test "x$USES_GTK2" = "xyes"; then 505 echo "2.x" 506else 507 echo "1.2" 508fi 509echo " Libsndfile: $HAVE_SNDFILE" 510echo " Libsamplerate: $HAVE_LIBSAMPLERATE" 511echo 512echo "Sound drivers:" 513INCLUDED_DRIVERS="" 514EXCLUDED_DRIVERS="" 515AC_DEFUN([CHECKDRV], [ if test "x$1" = "xyes"; then INCLUDED_DRIVERS="$INCLUDED_DRIVERS $2"; else EXCLUDED_DRIVERS="$EXCLUDED_DRIVERS $2"; fi; ]) 516CHECKDRV([$HAVE_OSS],[OSS]) 517CHECKDRV([$HAVE_ALSALIB],[ALSA]) 518CHECKDRV([$MHW_HAVE_JACK],[JACK]) 519CHECKDRV([$MHW_HAVE_SUNAUDIO],[Sun]) 520CHECKDRV([$MHW_HAVE_PORTAUDIO],[PortAudio]) 521CHECKDRV([$MHW_HAVE_SDL],[SDL]) 522CHECKDRV([$MHW_HAVE_ESOUND],[EsounD]) 523CHECKDRV([$MHW_HAVE_ARTSC],[aRts]) 524CHECKDRV([$MHW_HAVE_PULSE],[PulseAudio]) 525echo " Included drivers: $INCLUDED_DRIVERS" 526echo " Drivers not included: $EXCLUDED_DRIVERS" 527echo -n " Default sound driver: $DEFAULT_DRIVER " 528if test "x$DEFAULT_DRIVER" = "xauto"; then 529echo -n "(detect at startup)" 530fi 531echo 532echo 533echo "Other settings:" 534 535 536echo " LADSPA Support: $HAVE_LADSPA" 537if test "x$HAVE_LADSPA" = "xyes"; then 538echo -n " ladspa.h header file: " 539if test "x$HAVE_LADSPA_GLOBAL" = "xyes"; then 540echo "system" 541else 542echo "local" 543fi 544echo " Default plugin path: $DEFAULT_LADSPA_PATH" 545fi 546 547echo -n " Floating-point samples: " 548if test "x$MHW_DOUBLE" = "xyes"; then 549 echo "double precision" 550else 551 echo "normal precision" 552fi 553 554echo " Default mixer app: $DEFAULT_MIXERAPP" 555echo 556echo "Build settings:" 557echo -n " Compiler options: " 558echo $CFLAGS 559echo " Build date string: ${FIXED_DATE_STR}" 560echo " Build time string: ${FIXED_TIME_STR}" 561echo 562if test "x$USES_GTK2$MHW_HAVE_ARTSC" = "xnoyes"; then 563 echo "---------------------------------------------------------------" 564 echo "WARNING: There are known issues when building with GTK+ 1.2 " 565 echo "and newer versions of aRts. If you are experiencing problems," 566 echo "try running configure with the --without-arts option to disable " 567 echo "aRts support" 568 echo "---------------------------------------------------------------" 569 echo 570fi 571echo "Type make (or gmake) to compile mhWaveEdit!" 572