1dnl Process this file with autoconf to produce a configure script. 2 3AC_PREREQ([2.63]) 4 5AC_INIT([libmikmod],[3.3.11]) 6LIBMIKMOD_MAJOR_VERSION=3 7LIBMIKMOD_MINOR_VERSION=3 8LIBMIKMOD_MICRO_VERSION=11 9LIBMIKMOD_VERSION=$LIBMIKMOD_MAJOR_VERSION.$LIBMIKMOD_MINOR_VERSION.$LIBMIKMOD_MICRO_VERSION 10 11AC_CONFIG_AUX_DIR([autotools]) 12AM_INIT_AUTOMAKE([1.10 foreign subdir-objects]) 13AC_CONFIG_SRCDIR([include/mikmod_internals.h]) 14AC_CONFIG_MACRO_DIR([m4]) 15AC_CONFIG_LIBOBJ_DIR([posix]) 16AM_MAINTAINER_MODE 17 18# Library versioning for libtool: CURRENT, REVISION, AGE 19# - library source changed -> increment REVISION 20# - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 21# - interfaces added -> increment AGE 22# - interfaces removed -> AGE = 0 23MIKMOD_LT_CURRENT=6 24MIKMOD_LT_REVISION=0 25MIKMOD_LT_AGE=3 26 27AC_SUBST(MIKMOD_LT_CURRENT) 28AC_SUBST(MIKMOD_LT_REVISION) 29AC_SUBST(MIKMOD_LT_AGE) 30 31# =================== 32# build target: 33# =================== 34 35AC_CANONICAL_HOST 36 37# these for convenience 38libmikmod_mingw=no 39libmikmod_cygwin=no 40libmikmod_linux=no 41libmikmod_darwin=no 42libmikmod_netbsd=no 43libmikmod_openbsd=no 44libmikmod_os2=no 45libmikmod_djgpp=no 46libmikmod_amiga=no 47libmikmod_haiku=no 48libmikmod_irix=no 49libmikmod_sun=no 50libmikmod_aix=no 51libmikmod_hpux=no 52 53case $host_os in 54 mingw*) libmikmod_mingw=yes ;; 55 cygwin*) libmikmod_cygwin=yes ;; 56 linux*) libmikmod_linux=yes ;; 57 darwin*) libmikmod_darwin=yes ;; 58 netbsd*) libmikmod_netbsd=yes ;; 59 openbsd*) libmikmod_openbsd=yes ;; 60 emx*) libmikmod_os2=yes ;; 61 *djgpp) libmikmod_djgpp=yes ;; 62 amigaos*|aros*|morphos*) 63 libmikmod_amiga=yes ;; 64 haiku*) libmikmod_haiku=yes ;; 65 hpux*) libmikmod_hpux=yes ;; 66 irix*) libmikmod_irix=yes ;; 67 aix*) AC_DEFINE([AIX], 1, [Define if your system is AIX 3.x - might be needed for 4.x too]) 68 libmikmod_aix=yes ;; 69 sunos*|solaris*) 70 if test "$cross_compiling" != yes 71 then 72 case `uname -r` in 73 4*) AC_DEFINE([SUNOS], 1, [Define if your system is SunOS 4.x]) ;; 74 esac 75 fi 76 libmikmod_sun=yes ;; 77esac 78 79# ============================================================== 80# libmikmod specific control variables and their default values. 81# ============================================================== 82 83libmikmod_hqmixer=yes 84 85libmikmod_driverlist=nosound 86 87libmikmod_driver_af=no 88libmikmod_driver_ahi=$libmikmod_amiga 89libmikmod_driver_aix=$libmikmod_aix 90libmikmod_driver_alsa=$libmikmod_linux 91libmikmod_driver_pulseaudio=yes 92libmikmod_driver_esd=no 93libmikmod_driver_nas=no 94libmikmod_driver_hp=$libmikmod_hpux 95libmikmod_driver_sdl=no 96libmikmod_driver_openal=no 97libmikmod_driver_oss=yes 98if test $libmikmod_openbsd = yes 99then 100 libmikmod_driver_oss=no 101fi 102libmikmod_driver_sam9407=no 103libmikmod_driver_sgi=$libmikmod_irix 104libmikmod_driver_sndio=$libmikmod_openbsd 105libmikmod_driver_sun=$libmikmod_sun 106if test $libmikmod_netbsd = yes 107then 108 libmikmod_driver_sun=yes 109fi 110libmikmod_driver_osx=$libmikmod_darwin 111libmikmod_driver_mac=no 112libmikmod_driver_win=yes 113libmikmod_driver_ds=yes 114libmikmod_driver_xaudio2=no 115libmikmod_driver_ultra=no 116libmikmod_driver_os2=$libmikmod_os2 117libmikmod_driver_dart=$libmikmod_os2 118libmikmod_driver_aiff=yes 119libmikmod_driver_wav=yes 120libmikmod_driver_raw=yes 121libmikmod_driver_stdout=yes 122libmikmod_driver_pipe=yes 123# ANDROID and DRV_OSLES are not configury-integrated 124libmikmod_driver_osles=no 125 126libmikmod_dynload=yes 127libmikmod_dynload_underscores=no 128libmikmod_debug=no 129libmikmod_threads=yes 130libmikmod_simd=no 131libmikmod_altivec=no 132libmikmod_sse2=no 133 134libmikmod_unix=default 135 136libmikmod_docs=yes 137 138# ========================= 139# Configure script options. 140# ========================= 141 142AC_ARG_ENABLE([hqmixer], [AS_HELP_STRING([--disable-hqmixer],[exclude support for high quality mixer [default=no]])], 143[if test "$enableval" = "no" 144then 145 libmikmod_hqmixer=no 146else 147 libmikmod_hqmixer=yes 148fi]) 149 150AC_ARG_ENABLE([alldrv], [AS_HELP_STRING([--disable-alldrv],[disable all of the audio drivers. using additional --enable-XXX options enables the specified drivers.])], 151[if test "$enableval" = "no" 152then 153 libmikmod_driver_af=no 154 libmikmod_driver_ahi=no 155 libmikmod_driver_aix=no 156 libmikmod_driver_alsa=no 157 libmikmod_driver_pulseaudio=no 158 libmikmod_driver_esd=no 159 libmikmod_driver_nas=no 160 libmikmod_driver_hp=no 161 libmikmod_driver_sdl=no 162 libmikmod_driver_openal=no 163 libmikmod_driver_oss=no 164 libmikmod_driver_sam9407=no 165 libmikmod_driver_sgi=no 166 libmikmod_driver_sndio=no 167 libmikmod_driver_sun=no 168 libmikmod_driver_osx=no 169 libmikmod_driver_mac=no 170 libmikmod_driver_win=no 171 libmikmod_driver_ds=no 172 libmikmod_driver_xaudio2=no 173 libmikmod_driver_ultra=no 174 libmikmod_driver_os2=no 175 libmikmod_driver_dart=no 176 libmikmod_driver_aiff=no 177 libmikmod_driver_wav=no 178 libmikmod_driver_raw=no 179 libmikmod_driver_stdout=no 180 libmikmod_driver_pipe=no 181 libmikmod_driver_osles=no 182fi]) 183 184AC_ARG_ENABLE([af], [AS_HELP_STRING([--enable-af],[include DEC AudioFile server driver [default=no]])], 185[if test "$enableval" = "yes" 186then 187 libmikmod_driver_af=yes 188else 189 libmikmod_driver_af=no 190fi]) 191 192AC_ARG_ENABLE([alsa], [AS_HELP_STRING([--enable-alsa],[Linux only: include ALSA driver [guessed]])], 193[if test "$enableval" = "yes" 194then 195 libmikmod_driver_alsa=$libmikmod_linux 196else 197 libmikmod_driver_alsa=no 198fi]) 199 200AC_ARG_ENABLE([oss], [AS_HELP_STRING([--enable-oss],[include OSS driver [guessed]])], 201[if test "$enableval" = "yes" 202then 203 libmikmod_driver_oss=yes 204else 205 libmikmod_driver_oss=no 206fi]) 207 208AC_ARG_ENABLE([sunaudio], [AS_HELP_STRING([--enable-sunaudio],[For SunOS, Solaris, NetBSD or OpenBSD: include sunaudio driver [guessed]])], 209[if test "$enableval" = "yes" 210then 211 libmikmod_driver_sun=yes 212else 213 libmikmod_driver_sun=no 214fi]) 215case $host_os in 216 netbsd*|openbsd*|sunos*|solaris*) ;; 217 *) libmikmod_driver_sun=no ;; 218esac 219 220AC_ARG_ENABLE([sndio], [AS_HELP_STRING([--enable-sndio],[OpenBSD only: include sndio driver [guessed]])], 221[if test "$enableval" = "yes" 222then 223 libmikmod_driver_sndio=yes 224else 225 libmikmod_driver_sndio=no 226fi]) 227case $host_os in 228# hey, a linux port at sndio.org .. 229 openbsd*|linux*) ;; 230 *) libmikmod_driver_sndio=no ;; 231esac 232 233AC_ARG_ENABLE([aix], [AS_HELP_STRING([--enable-aix],[AIX only: include AIX audio driver [guessed]])], 234[if test "$enableval" = "yes" 235then 236 libmikmod_driver_aix=$libmikmod_aix 237else 238 libmikmod_driver_aix=no 239fi]) 240 241AC_ARG_ENABLE([sgi], [AS_HELP_STRING([--enable-sgi],[IRIX only: include SGI audio driver [guessed]])], 242[if test "$enableval" = "yes" 243then 244 libmikmod_driver_sgi=$libmikmod_irix 245else 246 libmikmod_driver_sgi=no 247fi]) 248 249AC_ARG_ENABLE([hp], [AS_HELP_STRING([--enable-hp],[HP/UX only: include HP/UX audio driver [guessed]])], 250[if test "$enableval" = "yes" 251then 252 libmikmod_driver_hp=$libmikmod_hpux 253else 254 libmikmod_driver_hp=no 255fi]) 256 257AC_ARG_ENABLE([ahi], [AS_HELP_STRING([--enable-ahi],[Amiga only: include AHI driver [guessed]])], 258[if test "$enableval" = "yes" 259then 260 libmikmod_driver_ahi=$libmikmod_amiga 261else 262 libmikmod_driver_ahi=no 263fi]) 264 265AC_ARG_ENABLE([pulseaudio], [AS_HELP_STRING([--enable-pulseaudio],[include PulseAudio driver [guessed]])], 266[if test "$enableval" = "yes" 267then 268 libmikmod_driver_pulseaudio=yes 269else 270 libmikmod_driver_pulseaudio=no 271fi]) 272 273AC_ARG_ENABLE([esd], [AS_HELP_STRING([--enable-esd],[include EsounD (Enlightened Sound Daemon) driver [default=no]])], 274[if test "$enableval" = "yes" 275then 276 libmikmod_driver_esd=yes 277else 278 libmikmod_driver_esd=no 279fi]) 280 281AC_ARG_ENABLE([nas], [AS_HELP_STRING([--enable-nas],[include the Network Audio System driver [default=no]])], 282[if test "$enableval" = "yes" 283then 284 libmikmod_driver_nas=yes 285else 286 libmikmod_driver_nas=no 287fi]) 288 289case $host_os in 290 mingw*|emx*|*djgpp|amigaos*|aros*|morphos*) 291 libmikmod_driver_oss=no 292 libmikmod_driver_esd=no 293 libmikmod_driver_nas=no 294 libmikmod_driver_af=no 295 # windows, dos, os2 don't need sdl, stdout, or pipe. 296 # so default to disabled, but still user-selectable. 297 libmikmod_driver_pipe=no 298 libmikmod_driver_pulseaudio=no 299 libmikmod_driver_stdout=no 300 libmikmod_driver_sdl=no ;; 301 cygwin*|darwin*) 302 libmikmod_driver_oss=no 303 libmikmod_driver_esd=no 304 libmikmod_driver_nas=no 305 libmikmod_driver_af=no 306 libmikmod_driver_pulseaudio=no 307 # cygwin, osx don't need sdl. 308 libmikmod_driver_sdl=no ;; 309 *) ;; 310esac 311 312AC_ARG_ENABLE([aiff], [AS_HELP_STRING([--enable-aiff],[include support for output to an aiff file [default=yes]])], 313[if test "$enableval" = "yes" 314then 315 libmikmod_driver_aiff=yes 316else 317 libmikmod_driver_aiff=no 318fi]) 319 320AC_ARG_ENABLE([wav], [AS_HELP_STRING([--enable-wav],[include support for output to a wav file [default=yes]])], 321[if test "$enableval" = "yes" 322then 323 libmikmod_driver_wav=yes 324else 325 libmikmod_driver_wav=no 326fi]) 327 328AC_ARG_ENABLE([raw], [AS_HELP_STRING([--enable-raw],[include support for output raw data to a file [default=yes]])], 329[if test "$enableval" = "yes" 330then 331 libmikmod_driver_raw=yes 332else 333 libmikmod_driver_raw=no 334fi]) 335 336AC_ARG_ENABLE([stdout], [AS_HELP_STRING([--enable-stdout],[include support for output to stdout [guessed]])], 337[if test "$enableval" = "yes" 338then 339 libmikmod_driver_stdout=yes 340else 341 libmikmod_driver_stdout=no 342fi]) 343 344AC_ARG_ENABLE([pipe], [AS_HELP_STRING([--enable-pipe],[include support for output via a pipe to another command [guessed]])], 345[if test "$enableval" = "yes" 346then 347 libmikmod_driver_pipe=yes 348else 349 libmikmod_driver_pipe=no 350fi]) 351 352AC_ARG_ENABLE([sdl], [AS_HELP_STRING([--enable-sdl],[include SDL driver [default=no]])], 353[if test "$enableval" = "yes" 354then 355 libmikmod_driver_sdl=yes 356else 357 libmikmod_driver_sdl=no 358fi]) 359 360try_sdl2=yes 361AC_ARG_ENABLE([sdl2], [AS_HELP_STRING([--enable-sdl2],[try SDL2 first, then SDL-1.2 as libsdl [default=yes]])], 362[if test "$enableval" = "yes" 363then 364 try_sdl2=yes 365else 366 try_sdl2=no 367fi]) 368 369AC_ARG_ENABLE([openal], [AS_HELP_STRING([--enable-openal],[include OpenAL driver [default=no]])], 370[if test "$enableval" = "yes" 371then 372 libmikmod_driver_openal=yes 373else 374 libmikmod_driver_openal=no 375fi]) 376 377AC_ARG_ENABLE([osx], [AS_HELP_STRING([--enable-osx],[Darwin only: include OSX CoreAudio driver [guessed]])], 378[if test "$enableval" = "yes" 379then 380 libmikmod_driver_osx=$libmikmod_darwin 381else 382 libmikmod_driver_osx=no 383fi]) 384 385AC_ARG_ENABLE([mac], [AS_HELP_STRING([--enable-mac],[Darwin only: include MAC carbon driver [default=no]])], 386[if test "$enableval" = "yes" 387then 388 libmikmod_driver_mac=$libmikmod_darwin 389else 390 libmikmod_driver_mac=no 391fi]) 392 393AC_ARG_ENABLE([win], [AS_HELP_STRING([--enable-win],[Windows only: include Windows MCI driver [guessed]])], 394[if test "$enableval" = "yes" 395then 396 libmikmod_driver_win=yes 397else 398 libmikmod_driver_win=no 399fi]) 400 401AC_ARG_ENABLE([ds], [AS_HELP_STRING([--enable-ds],[Windows only: include Direct Sound driver [guessed]])], 402[if test "$enableval" = "yes" 403then 404 libmikmod_driver_ds=yes 405else 406 libmikmod_driver_ds=no 407fi]) 408 409AC_ARG_ENABLE([xaudio2], [AS_HELP_STRING([--enable-xaudio2],[Windows only: include XAudio2 driver [default=no]])], 410[if test "$enableval" = "yes" 411then 412 libmikmod_driver_xaudio2=yes 413else 414 libmikmod_driver_xaudio2=no 415fi]) 416 417use_xaudio28=no 418AC_ARG_ENABLE([xaudio28], [AS_HELP_STRING([--enable-xaudio28],[Windows only: use XAudio2.8 for Windows8 instead of XAudio2.7 [default=no]])], 419[if test "$enableval" = "yes" 420then 421 use_xaudio28=yes 422else 423 use_xaudio28=no 424fi]) 425 426AC_ARG_ENABLE([os2], [AS_HELP_STRING([--enable-os2],[OS/2 only: include the OS/2 MCI driver [guessed]])], 427[if test "$enableval" = "yes" 428then 429 libmikmod_driver_os2=$libmikmod_os2 430else 431 libmikmod_driver_os2=no 432fi]) 433 434AC_ARG_ENABLE([dart], [AS_HELP_STRING([--enable-dart],[OS/2 (Warp 4) only: include OS/2 direct audio (DART) [guessed]])], 435[if test "$enableval" = "yes" 436then 437 libmikmod_driver_dart=$libmikmod_os2 438else 439 libmikmod_driver_dart=no 440fi]) 441 442AC_ARG_ENABLE([sam9407], [AS_HELP_STRING([--enable-sam9407],[Linux only: include sam9407 driver [default=no]])], 443[if test "$enableval" = "yes" 444then 445 libmikmod_driver_sam9407=$libmikmod_linux 446else 447 libmikmod_driver_sam9407=no 448fi]) 449 450AC_ARG_ENABLE([ultra], [AS_HELP_STRING([--enable-ultra],[Linux only: include Ultra driver [default=no]])], 451[if test "$enableval" = "yes" 452then 453 libmikmod_driver_ultra=$libmikmod_linux 454else 455 libmikmod_driver_ultra=no 456fi]) 457 458AC_ARG_ENABLE([dl], [AS_HELP_STRING([--enable-dl],[load alsa, esound and ultra drivers at runtime [default=yes]])], 459[if test "$enableval" = "yes" 460then 461 libmikmod_dynload=yes 462else 463 libmikmod_dynload=no 464fi]) 465 466AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[build a debug version of libmikmod [default=no]])], 467[if test "$enableval" = "yes" 468then 469 libmikmod_debug=yes 470else 471 libmikmod_debug=no 472fi]) 473 474AC_ARG_ENABLE([threads], [AS_HELP_STRING([--enable-threads],[build a thread-safe version of libmikmod [guessed]])], 475[if test "$enableval" = "yes" 476then 477 libmikmod_threads=yes 478else 479 libmikmod_threads=no 480fi]) 481 482AC_ARG_ENABLE([simd], [AS_HELP_STRING([--enable-simd],[include SIMD (AltiVec or SSE2) mixer optimizations (Unstable!) [default=no]])], 483[if test "$enableval" = "yes" 484then 485 libmikmod_simd=yes 486else 487 libmikmod_simd=no 488fi]) 489 490AC_ARG_ENABLE([unix], [AS_HELP_STRING([--enable-unix],[override the default value of MIKMOD_UNIX in mikmod_internals.h (if you *really* need to.)])], 491[if test "$enableval" = "yes" 492then 493 libmikmod_unix=1 494elif test "$enableval" = "no" 495 then 496 libmikmod_unix=0 497else 498 libmikmod_unix=default 499fi]) 500 501AC_ARG_ENABLE([doc], [AS_HELP_STRING([--enable-doc],[Build and install the documentation [default=yes]])], 502[if test "$enableval" = "yes" 503then 504 libmikmod_docs=yes 505else 506 libmikmod_docs=no 507fi]) 508 509# =================== 510# Check for programs. 511# =================== 512 513AC_PROG_CC 514AC_PROG_INSTALL 515AC_PROG_LN_S 516AC_PROG_MAKE_SET 517#LT_INIT([win32-dll]) 518AC_LIBTOOL_WIN32_DLL 519AC_PROG_LIBTOOL 520 521# ============================================================= 522# Check for typedefs, structures, and compiler characteristics. 523# ============================================================= 524 525AC_PROG_GCC_TRADITIONAL 526AC_C_CONST 527AC_C_INLINE 528AC_CACHE_CHECK([if compiler understands the signed keyword],[libmikmod_cv_gcc_signed], 529 AC_LANG_SAVE 530 AC_LANG_C 531 AC_TRY_COMPILE(,[signed int t = 0;],[libmikmod_cv_gcc_signed=yes],[libmikmod_cv_gcc_signed=no]) 532 AC_LANG_RESTORE) 533if test $libmikmod_cv_gcc_signed = no 534then 535 AC_DEFINE(signed,,[Define to empty if compiler does not understand the `signed' keyword.]) 536fi 537 538AC_TYPE_PID_T 539AC_TYPE_SIZE_T 540AC_C_BIGENDIAN 541 542# ======================= 543# Check for header files. 544# ======================= 545 546AC_HEADER_STDC 547AC_HEADER_SYS_WAIT 548AC_CHECK_HEADERS([fcntl.h limits.h malloc.h memory.h sys/ioctl.h unistd.h]) 549 550# ============================ 551# Check for library functions. 552# ============================ 553 554AC_CHECK_FUNCS([posix_memalign setenv snprintf srandom]) 555AC_REPLACE_FUNCS([memcmp strstr]) 556AC_CHECK_LIB([m],[floor],LIBRARY_LIB="-lm $LIBRARY_LIB") 557AC_EGREP_HEADER([srandom],[math.h],AC_DEFINE([SRANDOM_IN_MATH_H], 1, 558 [Define if your system defines random(3) and srandom(3) in math.h instead of stdlib.h])) 559 560# ==================== 561# Check for libraries. 562# ==================== 563 564# dl functions 565# ------------ 566if test $libmikmod_mingw = yes 567then 568 # libmikmod_dynload variable is for dlopen() api only 569 libmikmod_dynload=no 570fi 571 572if test $libmikmod_dynload = yes 573then 574 libmikmod_dynload=no 575 libmikmod_dllib= 576 # SunOS-style shared libraries 577 AC_CHECK_HEADERS([dlfcn.h]) 578 if test $ac_cv_header_dlfcn_h = yes 579 then 580 AC_CHECK_LIB([c],[dlopen],[libmikmod_dynload=sun], 581 [AC_CHECK_LIB([dl],[dlopen],[libmikmod_dynload=sun 582 libmikmod_dllib="-ldl"],[libmikmod_dynload=no])]) 583 else 584 # HP-UX-style shared libraries 585 AC_CHECK_HEADERS([dl.h]) 586 if test $ac_cv_header_dl_h = yes 587 then 588 AC_CHECK_LIB([dld],[shl_load],[libmikmod_dynload=hp 589 libmikmod_dllib="-ldld" 590 CFLAGS="${CFLAGS} -DMIKMOD_DLAPI_HP=1 -I${srcdir}/dlapi"], 591 [libmikmod_dynload=no]) 592 fi 593 fi 594fi 595 596if test $libmikmod_dynload = sun 597then 598 AC_CACHE_CHECK([wherever dynamically loaded symbols need underscores],[libmikmod_cv_dynload_underscores], 599 libmikmod_oldlibs=$LIBS 600 LIBS="$LIBS $libmikmod_dllib" 601 AC_LANG_SAVE 602 AC_LANG_C 603 AC_TRY_RUN( 604[#include <dlfcn.h> 605#ifndef RTLD_GLOBAL 606#define RTLD_GLOBAL 0 607#endif 608int main(void) { 609 void *libc, *printfptr; 610 libc = dlopen("libc.so", RTLD_LAZY | RTLD_GLOBAL); 611 if (!libc) exit(1); 612 printfptr = dlsym(libc, "_printf"); 613 dlclose(libc); 614 exit(!printfptr); 615}], 616 [libmikmod_cv_dynload_underscores=yes], 617 [libmikmod_cv_dynload_underscores=no], 618 [libmikmod_cv_dynload_underscores=no]) 619 AC_LANG_RESTORE 620 LIBS=$libmikmod_oldlibs 621 ) 622 if test $libmikmod_cv_dynload_underscores = yes 623 then 624 AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], 1, [Define if your system needs leading underscore to function names in dlsym() calls]) 625 fi 626fi 627 628# POSIX.4 threads 629# --------------- 630if test $libmikmod_mingw = yes || test $libmikmod_amiga = yes 631then 632 dnl libmikmod_threads variable is for pthreads only 633 libmikmod_threads=no 634fi 635 636if test $libmikmod_threads = yes 637then 638 libmikmod_threads=no 639 AC_CACHE_CHECK([if compiler recognizes -pthread],[libmikmod_cv_gcc_pthread], 640 ac_save_CFLAGS=$CFLAGS 641 CFLAGS="$CFLAGS -pthread" 642 AC_LANG_SAVE 643 AC_LANG_C 644 AC_TRY_LINK([#include <pthread.h>], 645 [int p = pthread_create(NULL,NULL,NULL,NULL);], 646 [libmikmod_cv_gcc_pthread=yes], 647 [libmikmod_cv_gcc_pthread=no]) 648 AC_LANG_RESTORE 649 CFLAGS=$ac_save_CFLAGS 650 ) 651 if test $libmikmod_cv_gcc_pthread = yes 652 then 653 dnl There is no need for -pthread on darwin or haiku, as gcc 654 dnl complains about unrecognized option -pthread 655 if test $libmikmod_darwin = no && test $libmikmod_haiku = no 656 then 657 libmikmod_threads="" 658 CFLAGS="$CFLAGS -pthread" 659 fi 660 else 661 dnl AC_CHECK_HEADERS(pthread.h) unreliable 662 AC_CHECK_LIB([pthread],[pthread_create],[libmikmod_threads=-lpthread], 663 [AC_CHECK_LIB([c_r],[pthread_create],[libmikmod_threads=-lc_r])]) 664 fi 665fi 666 667# ALSA - Linux only 668# ----------------- 669if test $libmikmod_driver_alsa = yes 670then 671 libmikmod_driver_alsa=no 672 AC_CHECK_HEADERS([alsa/asoundlib.h],[AC_CHECK_LIB([asound],[snd_pcm_open],[libmikmod_driver_alsa=yes])]) 673fi 674 675# Amiga audio 676# --------------------- 677if test $libmikmod_driver_ahi = yes 678then 679 libmikmod_driver_ahi=no 680 AC_CHECK_HEADERS([devices/ahi.h],[libmikmod_driver_ahi=yes]) 681fi 682 683# pulseaudio 684# ---------- 685if test $libmikmod_driver_pulseaudio = yes 686then 687 libmikmod_driver_pulseaudio=no 688 AC_CHECK_HEADERS([pulse/simple.h],[AC_CHECK_LIB([pulse-simple],[pa_simple_new],[libmikmod_driver_pulseaudio=yes])]) 689fi 690 691# esd 692# --- 693if test $libmikmod_driver_esd = yes 694then 695 libmikmod_driver_esd=no 696 AM_PATH_ESD("0.2.18",[libmikmod_driver_esd=yes]) 697fi 698 699# nas 700# --- 701if test $libmikmod_driver_nas = yes 702then 703 libmikmod_driver_nas=no 704 AC_PATH_X 705 AC_CHECK_HEADERS([audio/audiolib.h],[AC_CHECK_LIB([audio],[AuCreateFlow],[libmikmod_driver_nas=yes])]) 706 if test $libmikmod_driver_nas = no 707 then 708 if test -n "$ac_x_includes" || test -n "$ac_x_libraries" 709 then 710 ac_save_CFLAGS=$CFLAGS 711 ac_save_LDFLAGS=$LDFLAGS 712 ac_save_LIBS=$LIBS 713 test -n "$ac_x_includes" && CFLAGS="$CFLAGS -I$ac_x_includes" 714 test -n "$ac_x_libraries" && LDFLAGS="$LDFLAGS -L$ac_x_libraries" 715 LIBS="$LIBS -laudio" 716 AC_MSG_CHECKING([X11 locations for NAS]) 717 AC_TRY_LINK([#include <audio/audiolib.h>], 718 [AuFlowID f=AuCreateFlow(0,0);], 719 [libmikmod_driver_nas=yes]) 720 CFLAGS=$ac_save_CFLAGS 721 LDFLAGS=$ac_save_LDFLAGS 722 LIBS=$ac_save_LIBS 723 AC_MSG_RESULT([$libmikmod_driver_nas]) 724 if test $libmikmod_driver_nas = yes 725 then 726 test -n "$ac_x_includes" && CFLAGS="$CFLAGS -I$ac_x_includes" 727 test -n "$ac_x_libraries" && LIBRARY_LIB="$LIBRARY_LIB -L$ac_x_libraries" 728 fi 729 fi 730 fi 731fi 732 733# OpenAL - all supported platforms 734# ----------------- 735if test $libmikmod_driver_openal = yes 736then 737 libmikmod_driver_openal=no 738 if test $libmikmod_darwin = yes 739 then 740 # header-only test is good enough. need 10.4. 741 AC_CHECK_HEADERS([OpenAL/al.h OpenAL/alc.h],,,[ 742#if HAVE_OPENAL_AL_H 743# include <OpenAL/al.h> 744#endif 745#if HAVE_OPENAL_ALC_H 746# include <OpenAL/alc.h> 747#endif 748 ]) 749 if test $ac_cv_header_OpenAL_al_h = yes && test $ac_cv_header_OpenAL_alc_h = yes 750 then 751 libmikmod_driver_openal=yes 752 fi 753 else 754 AC_CHECK_HEADERS([AL/al.h AL/alc.h AL/alext.h],,,[ 755#if HAVE_AL_AL_H 756# include <AL/al.h> 757#endif 758#if HAVE_AL_ALC_H 759# include <AL/alc.h> 760#endif 761 ]) 762 if test $ac_cv_header_AL_al_h = yes && test $ac_cv_header_AL_alc_h = yes 763 then 764 AC_CHECK_LIB([openal],[alEnable],[libmikmod_driver_openal=yes]) 765 fi 766 fi 767fi 768 769# SDL - all supported platforms 770# ----------------- 771if test $libmikmod_driver_sdl = yes 772then 773 libmikmod_driver_sdl=no 774 if test $try_sdl2 = yes 775 then 776 AM_PATH_SDL2("2.0.0",[libmikmod_driver_sdl=yes]) 777 fi 778 if test $libmikmod_driver_sdl != yes 779 then 780 AM_PATH_SDL("1.2.0",[libmikmod_driver_sdl=yes]) 781 fi 782 # we don't need linking to SDLmain, because we are a library. 783 # we also don't need -lmingw32 for MinGW, because gcc adds it automatically. 784 # -mwindows doesn't make sense for us, either, i.e. no need for extra gdi32 785 # and comdlg32 linkage, nor the extra "--subsystem windows" flag. 786 SDL_CFLAGS="`echo $SDL_CFLAGS|sed -e 's/-Dmain=SDL_main//'`" 787 SDL_LIBS="`echo $SDL_LIBS|sed -e 's/-lSDLmain//'|sed -e 's/-lmingw32//'|sed -e 's/-mwindows//'`" 788fi 789AC_SUBST(SDL_CFLAGS) 790AC_SUBST(SDL_LIBS) 791 792# Windows audio 793# --------------------- 794case $host_os in 795 mingw*|cygwin*) 796 # do a windows.h check, just in case.. 797 AC_CHECK_HEADERS([windows.h],,[AC_MSG_ERROR([Targeting windows, but windows.h not available])]) 798 if test $libmikmod_driver_ds = yes 799 then 800 libmikmod_driver_ds=no 801 AC_CHECK_HEADERS([dsound.h],[libmikmod_driver_ds=yes]) 802 fi 803 if test $libmikmod_driver_xaudio2 = yes 804 then 805 libmikmod_driver_xaudio2=no 806 ac_save_CPPFLAGS=$CPPFLAGS 807 if test $use_xaudio28 = yes 808 then 809 CPPFLAGS="$CPPLAGS -D_WIN32_WINNT=0x0602" 810 fi 811 AC_CHECK_HEADERS([xaudio2.h],[libmikmod_driver_xaudio2=yes]) 812 if test $libmikmod_driver_xaudio2 = yes 813 then 814 AC_CACHE_CHECK([if XAUDIO2_VOICE_NOSAMPLESPLAYED is defined],[libmikmod_cv_xaudio2_7_header], 815 [AC_TRY_COMPILE([#include <xaudio2.h>],[int flag=XAUDIO2_VOICE_NOSAMPLESPLAYED;], 816 [libmikmod_cv_xaudio2_7_header=yes],[libmikmod_cv_xaudio2_7_header=no])]) 817 if test $libmikmod_cv_xaudio2_7_header = yes && test $use_xaudio28 = yes 818 then 819 AC_MSG_WARN([xaudio2.h <= 2.7 and xaudio2.8 enabled - build will likely fail.]) 820 fi 821 if test $libmikmod_cv_xaudio2_7_header = no && test $use_xaudio28 != yes 822 then 823 AC_MSG_WARN([xaudio2.h >= 2.8 and xaudio2.8 disabled - build will likely fail.]) 824 fi 825 fi 826 CPPFLAGS=$ac_save_CPPFLAGS 827 fi 828 ;; 829 830 *) libmikmod_driver_win=no 831 libmikmod_driver_ds=no 832 libmikmod_driver_xaudio2=no 833 ;; 834esac 835 836# OS/2 audio 837# --------------------- 838case $host_os in 839 emx*) 840 # do an os2.h check, just in case.. 841 AC_CHECK_HEADERS([os2.h],,[AC_MSG_ERROR([Targeting OS/2, but os2.h not available])]) 842 ;; 843esac 844 845# sgi audio - IRIX only 846# --------------------- 847if test $libmikmod_driver_sgi = yes 848then 849 libmikmod_driver_sgi=no 850 AC_CHECK_HEADERS([dmedia/audio.h],[AC_CHECK_LIB([audio],[ALseterrorhandler],[libmikmod_driver_sgi=yes])]) 851fi 852 853# audiofile 854# --------- 855if test $libmikmod_driver_af = yes 856then 857 libmikmod_driver_af=no 858 AC_CHECK_HEADERS([AF/AFlib.h],[AC_CHECK_LIB([AF],[AFOpenAudioConn],[libmikmod_driver_af=yes])]) 859fi 860 861# libgus - Linux only 862# ------------------- 863if test $libmikmod_driver_ultra = yes 864then 865 libmikmod_driver_ultra=no 866 AC_CHECK_HEADERS([libgus.h]) 867 if test $ac_cv_header_libgus_h = yes 868 then 869 AC_CACHE_CHECK([if libgus is new enough],[libmikmod_cv_libgus_h_good], 870 [AC_TRY_COMPILE([#include <libgus.h>], 871[gus_info_t *info; 872int flg1=GUS_INSTR_SIMPLE; 873int flg2=GUS_WAVE_BIDIR;], 874 [libmikmod_cv_libgus_h_good=yes],[libmikmod_cv_libgus_h_good=no])]) 875 876 if test $libmikmod_cv_libgus_h_good = yes 877 then 878 AC_CHECK_LIB([gus],[gus_cards],[libmikmod_driver_ultra=yes]) 879 fi 880 fi 881fi 882 883# sam9407 - Linux only 884# -------------------- 885if test $libmikmod_driver_sam9407 = yes 886then 887 libmikmod_driver_sam9407=no 888 AC_CHECK_HEADERS([sys/sam9407.h],[libmikmod_driver_sam9407=yes]) 889fi 890 891# AIX audio 892# --------- 893if test $libmikmod_driver_aix = yes 894then 895 libmikmod_driver_aix=no 896 AC_CHECK_HEADERS([sys/audio.h sys/acpa.h]) 897 if test $ac_cv_header_sys_audio_h = yes && test $ac_cv_header_sys_acpa_h = yes 898 then 899 libmikmod_driver_aix=yes 900 fi 901fi 902 903# HP/UX audio 904# ----------- 905if test $libmikmod_driver_hp = yes 906then 907 libmikmod_driver_hp=no 908 AC_CHECK_HEADERS([sys/audio.h],[libmikmod_driver_hp=yes]) 909fi 910 911# sndio - OpenBSD only 912# -------------------- 913if test $libmikmod_driver_sndio = yes 914then 915 libmikmod_driver_sndio=no 916 AC_CHECK_HEADERS([sndio.h],[AC_CHECK_LIB([sndio],[sio_open],[libmikmod_driver_sndio=yes])]) 917fi 918 919# sunaudio - NetBSD/OpenBSD/SunOS/Solaris only 920# -------------------------------------------- 921if test $libmikmod_driver_sun = yes 922then 923 libmikmod_driver_sun=no 924 AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h]) 925 if test $ac_cv_header_sun_audioio_h = yes || test $ac_cv_header_sys_audioio_h = yes 926 then 927 libmikmod_driver_sun=yes 928 fi 929fi 930 931# ================ 932# Choose settings. 933# ================ 934 935if test $libmikmod_driver_raw = yes 936then 937 libmikmod_driverlist="raw $libmikmod_driverlist" 938 AC_DEFINE([DRV_RAW], 1, [Define if you want a raw pcm data file writer driver]) 939fi 940if test $libmikmod_driver_wav = yes 941then 942 libmikmod_driverlist="wav $libmikmod_driverlist" 943 AC_DEFINE([DRV_WAV], 1, [Define if you want a .wav file writer driver]) 944fi 945if test $libmikmod_driver_aiff = yes 946then 947 libmikmod_driverlist="aiff $libmikmod_driverlist" 948 AC_DEFINE([DRV_AIFF], 1, [Define if you want an .aiff file writer driver]) 949fi 950 951if test $libmikmod_driver_pipe = yes 952then 953 libmikmod_driverlist="pipe $libmikmod_driverlist" 954 AC_DEFINE([DRV_PIPE], 1, [Define if your system supports binary pipes (i.e. Unix)]) 955fi 956if test $libmikmod_driver_stdout = yes 957then 958 libmikmod_driverlist="stdout $libmikmod_driverlist" 959 AC_DEFINE([DRV_STDOUT], 1, [Define if you want support for output to stdout]) 960fi 961 962if test $libmikmod_driver_af = yes 963then 964 libmikmod_driverlist="$libmikmod_driverlist audiofile" 965 AC_DEFINE([DRV_AF], 1, [Define if the DEC AudioFile server driver is compiled]) 966 LIBRARY_LIB="-lAF $LIBRARY_LIB" 967fi 968 969if test $libmikmod_driver_win = yes 970then 971 libmikmod_driverlist="win $libmikmod_driverlist" 972 AC_DEFINE([DRV_WIN], 1, [Define if the Windows MCI driver is compiled]) 973 LIBRARY_LIB="-lwinmm $LIBRARY_LIB" 974fi 975 976if test $libmikmod_driver_ds = yes 977then 978 libmikmod_driverlist="ds $libmikmod_driverlist" 979 AC_DEFINE([DRV_DS], 1, [Define if the Windows DirectSound driver is compiled]) 980 LIBRARY_LIB="-ldsound $LIBRARY_LIB" 981fi 982 983if test $libmikmod_driver_xaudio2 = yes 984then 985 libmikmod_driverlist="xaudio2 $libmikmod_driverlist" 986 AC_DEFINE([DRV_XAUDIO2], 1, [Define if the Windows XAudio2 driver is compiled]) 987 LIBRARY_LIB="-lole32 $LIBRARY_LIB" 988 if test $use_xaudio28 = yes 989 then 990 AC_DEFINE([DRV_XAUDIO28],1,[Define if using XAudio 2.8 for Windows8 with XAudio2 driver]) 991 LIBRARY_LIB="-lxaudio2_8 $LIBRARY_LIB" 992 fi 993fi 994 995if test $libmikmod_driver_os2 = yes 996then 997 libmikmod_driverlist="os2 $libmikmod_driverlist" 998 AC_DEFINE([DRV_OS2], 1, [Define if the OS/2 MCI driver is compiled]) 999 # drv_os2 and drv_dart both link to mmpm2 1000 if test $libmikmod_driver_dart = no 1001 then 1002 LIBRARY_LIB="-lmmpm2 $LIBRARY_LIB" 1003 fi 1004fi 1005 1006if test $libmikmod_driver_dart = yes 1007then 1008 libmikmod_driverlist="dart $libmikmod_driverlist" 1009 AC_DEFINE([DRV_DART], 1, [Define if the OS/2 direct audio (DART) driver is compiled]) 1010 LIBRARY_LIB="-lmmpm2 $LIBRARY_LIB" 1011fi 1012 1013if test $libmikmod_driver_aix = yes 1014then 1015 libmikmod_driverlist="aix $libmikmod_driverlist" 1016 AC_DEFINE([DRV_AIX], 1, [Define if the AIX audio driver is compiled]) 1017fi 1018 1019if test $libmikmod_driver_ahi = yes 1020then 1021 libmikmod_driverlist="ahi $libmikmod_driverlist" 1022 AC_DEFINE([DRV_AHI], 1, [Define if the Amiga AHI driver is compiled]) 1023fi 1024 1025if test $libmikmod_driver_alsa = yes 1026then 1027 libmikmod_driverlist="alsa $libmikmod_driverlist" 1028 AC_DEFINE([DRV_ALSA], 1, [Define if the Linux ALSA driver is compiled]) 1029 if test $libmikmod_dynload = no 1030 then 1031 LIBRARY_LIB="-lasound $LIBRARY_LIB" 1032 fi 1033fi 1034 1035if test $libmikmod_driver_pulseaudio = yes 1036then 1037 libmikmod_driverlist="pulseaudio $libmikmod_driverlist" 1038 AC_DEFINE([DRV_PULSEAUDIO], 1, [Define if the PulseAudio driver is compiled]) 1039 LIBRARY_LIB="-lpulse-simple -lpulse $LIBRARY_LIB" 1040fi 1041 1042if test $libmikmod_driver_esd = yes 1043then 1044 libmikmod_driverlist="esd $libmikmod_driverlist" 1045 AC_DEFINE([DRV_ESD], 1, [Define if the Enlightened Sound Daemon driver is compiled]) 1046 CFLAGS="$CFLAGS $ESD_CFLAGS" 1047 # Under Solaris and perhaps other systems, we have to forward esd 1048 # dependencies to libmikmod's dependency list. 1049 # However, no need to keep libraries we won't require (libossaudio on BSD 1050 # systems, libaudiofile, libasound on Linux) 1051 if test $libmikmod_dynload != no 1052 then 1053 ESD_LIBS="`echo $ESD_LIBS|sed -e 's/-lesd//'|sed -e 's/-lasound//'|sed -e 's/-laudiofile//'|sed -e 's/-lossaudio//'`" 1054 fi 1055 LIBRARY_LIB="$ESD_LIBS $LIBRARY_LIB" 1056fi 1057 1058if test $libmikmod_driver_nas = yes 1059then 1060 libmikmod_driverlist="nas $libmikmod_driverlist" 1061 AC_DEFINE([DRV_NAS], 1, [Define if the Network Audio System driver is compiled]) 1062 LIBRARY_LIB="-laudio $LIBRARY_LIB" 1063fi 1064 1065if test $libmikmod_driver_hp = yes 1066then 1067 libmikmod_driverlist="hp $libmikmod_driverlist" 1068 AC_DEFINE([DRV_HP], 1, [Define if the HP-UX audio driver is compiled]) 1069fi 1070 1071if test $libmikmod_driver_openal = yes 1072then 1073 libmikmod_driverlist="openal $libmikmod_driverlist" 1074 AC_DEFINE([DRV_OPENAL], 1, [Define if the OpenAL driver is compiled]) 1075 if test $libmikmod_darwin = yes 1076 then 1077 LIBRARY_LIB="-framework OpenAL $LIBRARY_LIB" 1078 else 1079 LIBRARY_LIB="-lopenal $LIBRARY_LIB" 1080 fi 1081fi 1082 1083if test $libmikmod_driver_sdl = yes 1084then 1085 libmikmod_driverlist="sdl $libmikmod_driverlist" 1086 AC_DEFINE([DRV_SDL], 1, [Define if the SDL audio driver is compiled]) 1087 CFLAGS="$SDL_CFLAGS $CFLAGS" 1088 LIBRARY_LIB="$SDL_LIBS $LIBRARY_LIB" 1089fi 1090 1091if test $libmikmod_driver_oss = yes && test $libmikmod_mingw = no && test $libmikmod_darwin = no 1092then 1093 AC_CHECK_HEADERS([sys/soundcard.h machine/soundcard.h soundcard.h]) 1094 1095 # NetBSD and OpenBSD use ossaudio emulation layer, 1096 # otherwise no link library is needed. 1097 oss_library="" 1098 case $host_os in 1099 netbsd*|openbsd*) 1100 AC_CHECK_LIB([ossaudio],[_oss_ioctl],[oss_library="-lossaudio"]) 1101 ;; 1102 esac 1103 1104 AC_MSG_CHECKING([whether OSS code compiles]) 1105 AC_TRY_COMPILE([#ifdef HAVE_SYS_IOCTL_H 1106# include <sys/ioctl.h> 1107#endif 1108#ifdef HAVE_SYS_SOUNDCARD_H 1109# include <sys/soundcard.h> 1110#elif defined(HAVE_MACHINE_SOUNDCARD_H) 1111# include <machine/soundcard.h> 1112#elif defined(HAVE_SOUNDCARD_H) 1113# include <soundcard.h> 1114#else 1115error No OSS header present. 1116#endif], 1117 [int i=SNDCTL_DSP_RESET;], 1118 [libmikmod_driver_oss=yes], 1119 [libmikmod_driver_oss=no]) 1120 AC_MSG_RESULT([$libmikmod_driver_oss]) 1121 if test $libmikmod_driver_oss = yes 1122 then 1123 libmikmod_driverlist="oss $libmikmod_driverlist" 1124 AC_DEFINE([DRV_OSS], 1, [Define if the Open Sound System driver is compiled]) 1125 if test -n "$oss_library" 1126 then 1127 LIBRARY_LIB="$oss_library $LIBRARY_LIB" 1128 fi 1129 fi 1130fi 1131 1132if test $libmikmod_driver_osx = yes 1133then 1134 libmikmod_driverlist="osx $libmikmod_driverlist" 1135 AC_DEFINE([DRV_OSX], 1, [Define this if you want the MacOS X CoreAudio driver]) 1136 LIBRARY_LIB="-framework CoreAudio $LIBRARY_LIB" 1137fi 1138 1139#OpenSL ES driver (e.g. Android) 1140if test $libmikmod_driver_osles = yes 1141then 1142 AC_DEFINE([DRV_OSLES], 1, [Define if the OpenSL ES driver is compiled]) 1143 LIBRARY_LIB="-lOpenSLES $LIBRARY_LIB" 1144fi 1145 1146if test $libmikmod_driver_mac = yes 1147then 1148 libmikmod_driverlist="mac $libmikmod_driverlist" 1149 AC_DEFINE([DRV_MAC], 1, [Define this if you want the Carbon Mac Audio driver]) 1150 LIBRARY_LIB="-framework Carbon $LIBRARY_LIB" 1151fi 1152 1153if test $libmikmod_driver_sam9407 = yes 1154then 1155 libmikmod_driverlist="sam9407 $libmikmod_driverlist" 1156 AC_DEFINE([DRV_SAM9407], 1, [Define if the Linux SAM9407 driver is compiled]) 1157fi 1158 1159if test $libmikmod_driver_sgi = yes 1160then 1161 libmikmod_driverlist="sgi $libmikmod_driverlist" 1162 AC_DEFINE([DRV_SGI], 1, [Define if the SGI audio driver is compiled]) 1163 LIBRARY_LIB="-laudio $LIBRARY_LIB" 1164fi 1165 1166if test $libmikmod_driver_sndio = yes 1167then 1168 libmikmod_driverlist="sndio $libmikmod_driverlist" 1169 AC_DEFINE([DRV_SNDIO], 1, [Define if the OpenBSD sndio driver is compiled]) 1170 LIBRARY_LIB="-lsndio $LIBRARY_LIB" 1171fi 1172 1173if test $libmikmod_driver_sun = yes 1174then 1175 libmikmod_driverlist="sunaudio $libmikmod_driverlist" 1176 AC_DEFINE([DRV_SUN], 1, [Define if the Sun audio driver or compatible (NetBSD, OpenBSD) is compiled]) 1177fi 1178 1179if test $libmikmod_driver_ultra = yes 1180then 1181 libmikmod_driverlist="ultra $libmikmod_driverlist" 1182 AC_DEFINE([DRV_ULTRA], 1, [Define if the Linux Ultra driver is compiled]) 1183 if test $libmikmod_dynload = no 1184 then 1185 LIBRARY_LIB="-lgus $LIBRARY_LIB" 1186 fi 1187fi 1188 1189if test $libmikmod_debug = yes 1190then 1191 AC_DEFINE([MIKMOD_DEBUG], 1, [Define if you want a debug version of the library]) 1192 CC="$CC -g" 1193fi 1194 1195if test $libmikmod_dynload != no 1196then 1197 AC_DEFINE([MIKMOD_DYNAMIC], 1, [Define if you want runtime dynamic linking of ALSA and EsounD drivers]) 1198 1199 LIBRARY_LIB="$libmikmod_dllib $LIBRARY_LIB" 1200 if test $libmikmod_dynload = sun 1201 then 1202 # RTLD_GLOBAL is not defined under every system 1203 AC_CACHE_CHECK([if RTLD_GLOBAL is defined],libmikmod_cv_decl_rtld_global, 1204 [AC_TRY_COMPILE([#include <dlfcn.h>],[int flag=RTLD_GLOBAL;], 1205 [libmikmod_cv_decl_rtld_global=yes], 1206 [libmikmod_cv_decl_rtld_global=no])]) 1207 if test $libmikmod_cv_decl_rtld_global = yes 1208 then 1209 AC_DEFINE([HAVE_RTLD_GLOBAL], 1, [Define if your system has RTLD_GLOBAL defined in <dlfcn.h>]) 1210 fi 1211 fi 1212fi 1213 1214# If compiling with gcc, use adequate optimization flags 1215if test $ac_cv_prog_gcc = yes 1216then 1217 # On at least x86 platforms, gcc 2.7.2.1 and earlier won't work if -O3 (or 1218 # -finline-functions) are used. Versions 2.7.2.3, 2.8.x and egcs are ok 1219 # (didn't test 2.7.2.2). 1220 # Until there's an easy way to catch broken inlining, we choose flags known 1221 # to work correctly depending of the compiler version. 1222 AC_CACHE_CHECK([if inlining functions is safe],[libmikmod_cv_gcc_inline_safe], 1223 [AC_TRY_COMPILE(,[ 1224#if !(defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 7)) 1225#error inlining functions is not safe 1226#endif 1227], 1228 [libmikmod_cv_gcc_inline_safe=yes], 1229 [libmikmod_cv_gcc_inline_safe=no])]) 1230 if test $libmikmod_cv_gcc_inline_safe = no 1231 then 1232 CFLAGS="$CFLAGS -fno-strength-reduce" 1233 fi 1234 CFLAGS="$CFLAGS -ffast-math" 1235 if test $libmikmod_darwin = yes 1236 then 1237 CFLAGS="$CFLAGS -fno-common" 1238 fi 1239 if test $libmikmod_debug = yes 1240 then 1241 CFLAGS="$CFLAGS -Wall -Werror" 1242 else 1243 CFLAGS="$CFLAGS -Wall" 1244 fi 1245 1246 # pgcc 2.95.2 appears not to be able to compile libmikmod, although regular 1247 # gcc works fine. Issue a warning if the compiler is pgcc, until a reliable 1248 # way to detect flawed version (or, better, a reliable workaround) is 1249 # found. 1250dnl do not cache this test - better rechecking every time 1251 AC_MSG_CHECKING([if compiler is pgcc]) 1252 if ($CC -v 2>&1 | grep ^pgcc > /dev/null) 2>/dev/null 1253 then 1254 libmikmod_gcc_is_pgcc=yes 1255 else 1256 libmikmod_gcc_is_pgcc=no 1257 fi 1258 AC_MSG_RESULT([$libmikmod_gcc_is_pgcc]) 1259 if test $libmikmod_gcc_is_pgcc = yes 1260 then 1261 echo " 1262*** Version 2.95.2 of this compiler, and perhaps others, are unable to 1263*** compile libmikmod. If compilation fails for playercode/virtch.c 1264*** around line 650, with the error ``internal error--insn does not 1265*** satisfy its constraints'', then you'll have to use another compiler. 1266" >&2 1267 fi 1268fi 1269 1270if test x$libmikmod_threads != xno 1271then 1272 AC_DEFINE([HAVE_PTHREAD], 1, [Define if your system provides POSIX.4 threads]) 1273 CFLAGS="$CFLAGS -D_REENTRANT" 1274 LIBRARY_LIB="$libmikmod_threads $LIBRARY_LIB" 1275 REENTRANT="-D_REENTRANT" 1276 if test $libmikmod_cv_gcc_pthread = yes 1277 then 1278 dnl There is no need for -pthread on darwin or haiku, as gcc 1279 dnl complains about unrecognized option -pthread 1280 if test $libmikmod_darwin = no && test $libmikmod_haiku = no 1281 then 1282 REENTRANT="-pthread $REENTRANT" 1283 LIB_LDADD="-pthread" 1284 fi 1285 fi 1286fi 1287 1288case $host_cpu in 1289 ppc|ppc64|powerpc|powerpc64) 1290 AC_MSG_CHECKING(whether to use altivec) 1291 if test x$libmikmod_simd = xyes 1292 then 1293 case $host_os in 1294 darwin*) 1295 dnl compile all Altivec functions, check at run-time 1296 CFLAGS="$CFLAGS -faltivec -force_cpusubtype_ALL" ;; 1297 *) 1298 dnl -faltivec and -force_cpusubtype_ALL are Apple-only 1299 dnl features. -maltivec compiles all code for AltiVec.. 1300 CFLAGS="$CFLAGS -maltivec" ;; 1301 esac 1302 libmikmod_altivec=yes 1303 libmikmod_simd=altivec 1304 fi 1305 AC_MSG_RESULT([$libmikmod_altivec]) 1306 ;; 1307 1308 i*86|x86_64) 1309 AC_MSG_CHECKING(whether to use sse2) 1310 if test x$libmikmod_simd = xyes 1311 then 1312 dnl x86_64 already enables sse2 1313 dnl add -msse2 for x86 to enable it 1314 case `arch` in 1315 i*86) CFLAGS="$CFLAGS -msse2" ;; 1316 esac 1317 libmikmod_sse2=yes 1318 libmikmod_simd=sse2 1319 fi 1320 AC_MSG_RESULT([$libmikmod_sse2]) 1321 ;; 1322esac 1323 1324# see if we set libmikmod_simd properly 1325case $libmikmod_simd in 1326 altivec|sse2) 1327 AC_DEFINE([MIKMOD_SIMD], 1, [Define if you want to use SIMD (AltiVec or SSE2) optimizations (Unstable!)]) ;; 1328 *) libmikmod_simd=no ;; 1329esac 1330 1331# MIKMOD_UNIX override 1332if test "$libmikmod_unix" = "0" || test "$libmikmod_unix" = "1" 1333then 1334 AC_DEFINE_UNQUOTED([MIKMOD_UNIX], $libmikmod_unix, [Define to 0 or 1 to override MIKMOD_UNIX in mikmod_internals.h.]) 1335fi 1336 1337if test $libmikmod_hqmixer = no 1338then 1339 AC_DEFINE([NO_HQMIXER], 1, [disable the high quality mixer (build only with the standart mixer)]) 1340fi 1341 1342# symbol visibility 1343ac_save_CFLAGS="$CFLAGS" 1344CFLAGS="$CFLAGS -fvisibility=hidden -Werror" 1345AC_CACHE_CHECK([if compiler supports visibility attributes],[libmikmod_cv_gcc_visibility], 1346 AC_LANG_SAVE 1347 AC_LANG_C 1348 AC_TRY_COMPILE([void foo(void); 1349__attribute__((visibility("default"))) void foo(void) {}], 1350 [], 1351 [libmikmod_cv_gcc_visibility=yes], 1352 [libmikmod_cv_gcc_visibility=no]) 1353 AC_LANG_RESTORE) 1354# we want symbol -fvisibility for elf targets, however it works 1355# with darwin/macho too. other than that, windows, dos, os/2, amiga 1356# do not need it: for any such targets, the -Werror switch is 1357# supposed to fail the above check. (I'm adding the manual test 1358# below nonetheless, just in case.) 1359case $host_os in 1360 mingw*|cygwin*|emx*|*djgpp|amigaos*|aros*|morphos*) 1361 libmikmod_cv_gcc_visibility=no 1362 ;; 1363esac 1364CFLAGS="$ac_save_CFLAGS" 1365if test $libmikmod_cv_gcc_visibility = yes 1366then 1367 CFLAGS="$CFLAGS -DSYM_VISIBILITY -fvisibility=hidden" 1368fi 1369 1370# ================= 1371# Create Makefiles. 1372# ================= 1373 1374AM_CONDITIONAL([BUILD_DOCS], [test "$libmikmod_docs" = yes]) 1375 1376AC_SUBST(REENTRANT) 1377 1378AC_SUBST(LIBRARY_LIB) 1379 1380AC_SUBST(LIBMIKMOD_MAJOR_VERSION) 1381AC_SUBST(LIBMIKMOD_MINOR_VERSION) 1382AC_SUBST(LIBMIKMOD_MICRO_VERSION) 1383AC_SUBST(LIBMIKMOD_VERSION) 1384 1385AC_SUBST(LIB_LDADD) 1386 1387AC_CONFIG_FILES([ 1388libmikmod-config 1389libmikmod.pc 1390libmikmod.spec 1391Makefile 1392docs/Makefile 1393docs/libmikmod-config.1 1394dlapi/Makefile 1395drivers/Makefile 1396drivers/dos/Makefile 1397include/Makefile 1398loaders/Makefile 1399mmio/Makefile 1400depackers/Makefile 1401playercode/Makefile 1402posix/Makefile]) 1403AC_CONFIG_HEADERS([config.h]) 1404AC_OUTPUT 1405 1406chmod +x libmikmod-config 1407 1408# ==================== 1409# Print configuration. 1410# ==================== 1411 1412if test $libmikmod_dynload != no 1413then 1414 libmikmod_dynload="yes, ${libmikmod_dynload} style" 1415fi 1416 1417echo " 1418Library configuration: 1419 1420 Source code location: $srcdir 1421 Compiler: $CC 1422 Compiler flags: $CFLAGS 1423 Debug version: $libmikmod_debug 1424 SIMD optimizations: $libmikmod_simd 1425 Dynamically loaded drivers whenever possible: $libmikmod_dynload 1426 Drivers to be compiled: $libmikmod_driverlist 1427 HQ Mixer: $libmikmod_hqmixer 1428 Install path: $prefix/lib, $prefix/include 1429" 1430