dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.63]) AC_INIT([libmikmod],[3.3.12]) LIBMIKMOD_MAJOR_VERSION=3 LIBMIKMOD_MINOR_VERSION=3 LIBMIKMOD_MICRO_VERSION=12 LIBMIKMOD_VERSION=$LIBMIKMOD_MAJOR_VERSION.$LIBMIKMOD_MINOR_VERSION.$LIBMIKMOD_MICRO_VERSION AC_CONFIG_AUX_DIR([autotools]) AM_INIT_AUTOMAKE([1.10 foreign subdir-objects]) AC_CONFIG_SRCDIR([include/mikmod_internals.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_LIBOBJ_DIR([posix]) AM_MAINTAINER_MODE # Library versioning for libtool: CURRENT, REVISION, AGE # - library source changed -> increment REVISION # - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 # - interfaces added -> increment AGE # - interfaces removed -> AGE = 0 MIKMOD_LT_CURRENT=6 MIKMOD_LT_REVISION=0 MIKMOD_LT_AGE=3 AC_SUBST(MIKMOD_LT_CURRENT) AC_SUBST(MIKMOD_LT_REVISION) AC_SUBST(MIKMOD_LT_AGE) # =================== # build target: # =================== AC_CANONICAL_HOST # these for convenience libmikmod_mingw=no libmikmod_cygwin=no libmikmod_linux=no libmikmod_darwin=no libmikmod_netbsd=no libmikmod_openbsd=no libmikmod_os2=no libmikmod_djgpp=no libmikmod_amiga=no libmikmod_haiku=no libmikmod_irix=no libmikmod_sun=no libmikmod_aix=no libmikmod_hpux=no case $host_os in mingw*) libmikmod_mingw=yes ;; msys*) libmikmod_mingw=yes ;; cygwin*) libmikmod_cygwin=yes ;; linux*) libmikmod_linux=yes ;; darwin*) libmikmod_darwin=yes ;; netbsd*) libmikmod_netbsd=yes ;; openbsd*) libmikmod_openbsd=yes ;; emx*) libmikmod_os2=yes ;; *djgpp) libmikmod_djgpp=yes ;; amigaos*|aros*|morphos*) libmikmod_amiga=yes ;; haiku*) libmikmod_haiku=yes ;; hpux*) libmikmod_hpux=yes ;; irix*) libmikmod_irix=yes ;; aix*) AC_DEFINE([AIX], 1, [Define if your system is AIX 3.x - might be needed for 4.x too]) libmikmod_aix=yes ;; sunos*|solaris*) if test "$cross_compiling" != yes then case `uname -r` in 4*) AC_DEFINE([SUNOS], 1, [Define if your system is SunOS 4.x]) ;; esac fi libmikmod_sun=yes ;; esac # ============================================================== # libmikmod specific control variables and their default values. # ============================================================== libmikmod_depackers=yes libmikmod_hqmixer=yes libmikmod_driverlist=nosound libmikmod_driver_af=no libmikmod_driver_ahi=$libmikmod_amiga libmikmod_driver_aix=$libmikmod_aix libmikmod_driver_alsa=$libmikmod_linux libmikmod_driver_pulseaudio=yes libmikmod_driver_esd=no libmikmod_driver_nas=no libmikmod_driver_hp=$libmikmod_hpux libmikmod_driver_sdl=no libmikmod_driver_openal=no libmikmod_driver_oss=yes if test $libmikmod_openbsd = yes then libmikmod_driver_oss=no fi libmikmod_driver_sam9407=no libmikmod_driver_sgi=$libmikmod_irix libmikmod_driver_sndio=$libmikmod_openbsd libmikmod_driver_sun=$libmikmod_sun if test $libmikmod_netbsd = yes then libmikmod_driver_sun=yes fi libmikmod_driver_osx=$libmikmod_darwin libmikmod_driver_mac=no libmikmod_driver_win=yes libmikmod_driver_ds=yes libmikmod_driver_xaudio2=no libmikmod_driver_ultra=no libmikmod_driver_os2=$libmikmod_os2 libmikmod_driver_dart=$libmikmod_os2 libmikmod_driver_aiff=yes libmikmod_driver_wav=yes libmikmod_driver_raw=yes libmikmod_driver_stdout=yes libmikmod_driver_pipe=yes # ANDROID and DRV_OSLES are not configury-integrated libmikmod_driver_osles=no libmikmod_dynload=yes libmikmod_dynload_underscores=no libmikmod_debug=no libmikmod_threads=yes libmikmod_simd=no libmikmod_altivec=no libmikmod_sse2=no libmikmod_unix=default libmikmod_docs=yes # ========================= # Configure script options. # ========================= AC_ARG_ENABLE([hqmixer], [AS_HELP_STRING([--disable-hqmixer],[exclude support for high quality mixer [default=no]])], [if test "$enableval" = "no" then libmikmod_hqmixer=no else libmikmod_hqmixer=yes fi]) AC_ARG_ENABLE([depackers], [AS_HELP_STRING([--disable-depackers],[exclude support for module depackers [default=no]])], [if test "$enableval" = "no" then libmikmod_depackers=no else libmikmod_depackers=yes fi]) AC_ARG_ENABLE([alldrv], [AS_HELP_STRING([--disable-alldrv],[disable all of the audio drivers. using additional --enable-XXX options enables the specified drivers.])], [if test "$enableval" = "no" then libmikmod_driver_af=no libmikmod_driver_ahi=no libmikmod_driver_aix=no libmikmod_driver_alsa=no libmikmod_driver_pulseaudio=no libmikmod_driver_esd=no libmikmod_driver_nas=no libmikmod_driver_hp=no libmikmod_driver_sdl=no libmikmod_driver_openal=no libmikmod_driver_oss=no libmikmod_driver_sam9407=no libmikmod_driver_sgi=no libmikmod_driver_sndio=no libmikmod_driver_sun=no libmikmod_driver_osx=no libmikmod_driver_mac=no libmikmod_driver_win=no libmikmod_driver_ds=no libmikmod_driver_xaudio2=no libmikmod_driver_ultra=no libmikmod_driver_os2=no libmikmod_driver_dart=no libmikmod_driver_aiff=no libmikmod_driver_wav=no libmikmod_driver_raw=no libmikmod_driver_stdout=no libmikmod_driver_pipe=no libmikmod_driver_osles=no fi]) AC_ARG_ENABLE([af], [AS_HELP_STRING([--enable-af],[include DEC AudioFile server driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_af=yes else libmikmod_driver_af=no fi]) AC_ARG_ENABLE([alsa], [AS_HELP_STRING([--enable-alsa],[Linux only: include ALSA driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_alsa=yes else libmikmod_driver_alsa=no fi]) AC_ARG_ENABLE([oss], [AS_HELP_STRING([--enable-oss],[include OSS driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_oss=yes else libmikmod_driver_oss=no fi]) AC_ARG_ENABLE([sunaudio], [AS_HELP_STRING([--enable-sunaudio],[For SunOS, Solaris, NetBSD or OpenBSD: include sunaudio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_sun=yes else libmikmod_driver_sun=no fi]) AC_ARG_ENABLE([sndio], [AS_HELP_STRING([--enable-sndio],[OpenBSD only: include sndio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_sndio=yes else libmikmod_driver_sndio=no fi]) AC_ARG_ENABLE([aix], [AS_HELP_STRING([--enable-aix],[AIX only: include AIX audio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_aix=$libmikmod_aix else libmikmod_driver_aix=no fi]) AC_ARG_ENABLE([sgi], [AS_HELP_STRING([--enable-sgi],[IRIX only: include SGI audio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_sgi=$libmikmod_irix else libmikmod_driver_sgi=no fi]) AC_ARG_ENABLE([hp], [AS_HELP_STRING([--enable-hp],[HP/UX only: include HP/UX audio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_hp=$libmikmod_hpux else libmikmod_driver_hp=no fi]) AC_ARG_ENABLE([ahi], [AS_HELP_STRING([--enable-ahi],[Amiga only: include AHI driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_ahi=$libmikmod_amiga else libmikmod_driver_ahi=no fi]) AC_ARG_ENABLE([pulseaudio], [AS_HELP_STRING([--enable-pulseaudio],[include PulseAudio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_pulseaudio=yes else libmikmod_driver_pulseaudio=no fi]) AC_ARG_ENABLE([esd], [AS_HELP_STRING([--enable-esd],[include EsounD (Enlightened Sound Daemon) driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_esd=yes else libmikmod_driver_esd=no fi]) AC_ARG_ENABLE([nas], [AS_HELP_STRING([--enable-nas],[include the Network Audio System driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_nas=yes else libmikmod_driver_nas=no fi]) case $host_os in mingw*|emx*|*djgpp|amigaos*|aros*|morphos*) libmikmod_driver_oss=no libmikmod_driver_esd=no libmikmod_driver_nas=no libmikmod_driver_af=no # windows, dos, os2 don't need sdl, stdout, or pipe. # so default to disabled, but still user-selectable. libmikmod_driver_pipe=no libmikmod_driver_pulseaudio=no libmikmod_driver_stdout=no libmikmod_driver_sdl=no ;; cygwin*|darwin*) libmikmod_driver_oss=no libmikmod_driver_esd=no libmikmod_driver_nas=no libmikmod_driver_af=no libmikmod_driver_pulseaudio=no # cygwin, osx don't need sdl. libmikmod_driver_sdl=no ;; *) ;; esac AC_ARG_ENABLE([aiff], [AS_HELP_STRING([--enable-aiff],[include support for output to an aiff file [default=yes]])], [if test "$enableval" = "yes" then libmikmod_driver_aiff=yes else libmikmod_driver_aiff=no fi]) AC_ARG_ENABLE([wav], [AS_HELP_STRING([--enable-wav],[include support for output to a wav file [default=yes]])], [if test "$enableval" = "yes" then libmikmod_driver_wav=yes else libmikmod_driver_wav=no fi]) AC_ARG_ENABLE([raw], [AS_HELP_STRING([--enable-raw],[include support for output raw data to a file [default=yes]])], [if test "$enableval" = "yes" then libmikmod_driver_raw=yes else libmikmod_driver_raw=no fi]) AC_ARG_ENABLE([stdout], [AS_HELP_STRING([--enable-stdout],[include support for output to stdout [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_stdout=yes else libmikmod_driver_stdout=no fi]) AC_ARG_ENABLE([pipe], [AS_HELP_STRING([--enable-pipe],[include support for output via a pipe to another command [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_pipe=yes else libmikmod_driver_pipe=no fi]) AC_ARG_ENABLE([sdl], [AS_HELP_STRING([--enable-sdl],[include SDL driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_sdl=yes else libmikmod_driver_sdl=no fi]) try_sdl2=yes AC_ARG_ENABLE([sdl2], [AS_HELP_STRING([--enable-sdl2],[try SDL2 first, then SDL-1.2 as libsdl [default=yes]])], [if test "$enableval" = "yes" then try_sdl2=yes else try_sdl2=no fi]) AC_ARG_ENABLE([openal], [AS_HELP_STRING([--enable-openal],[include OpenAL driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_openal=yes else libmikmod_driver_openal=no fi]) AC_ARG_ENABLE([osx], [AS_HELP_STRING([--enable-osx],[Darwin only: include OSX CoreAudio driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_osx=$libmikmod_darwin else libmikmod_driver_osx=no fi]) AC_ARG_ENABLE([mac], [AS_HELP_STRING([--enable-mac],[Darwin only: include MAC carbon driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_mac=$libmikmod_darwin else libmikmod_driver_mac=no fi]) AC_ARG_ENABLE([win], [AS_HELP_STRING([--enable-win],[Windows only: include Windows MCI driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_win=yes else libmikmod_driver_win=no fi]) AC_ARG_ENABLE([ds], [AS_HELP_STRING([--enable-ds],[Windows only: include Direct Sound driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_ds=yes else libmikmod_driver_ds=no fi]) AC_ARG_ENABLE([xaudio2], [AS_HELP_STRING([--enable-xaudio2],[Windows only: include XAudio2 driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_xaudio2=yes else libmikmod_driver_xaudio2=no fi]) use_xaudio28=no AC_ARG_ENABLE([xaudio28], [AS_HELP_STRING([--enable-xaudio28],[Windows only: use XAudio2.8 for Windows8 instead of XAudio2.7 [default=no]])], [if test "$enableval" = "yes" then use_xaudio28=yes else use_xaudio28=no fi]) AC_ARG_ENABLE([os2], [AS_HELP_STRING([--enable-os2],[OS/2 only: include the OS/2 MCI driver [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_os2=$libmikmod_os2 else libmikmod_driver_os2=no fi]) AC_ARG_ENABLE([dart], [AS_HELP_STRING([--enable-dart],[OS/2 (Warp 4) only: include OS/2 direct audio (DART) [guessed]])], [if test "$enableval" = "yes" then libmikmod_driver_dart=$libmikmod_os2 else libmikmod_driver_dart=no fi]) AC_ARG_ENABLE([sam9407], [AS_HELP_STRING([--enable-sam9407],[Linux only: include sam9407 driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_sam9407=$libmikmod_linux else libmikmod_driver_sam9407=no fi]) AC_ARG_ENABLE([ultra], [AS_HELP_STRING([--enable-ultra],[Linux only: include Ultra driver [default=no]])], [if test "$enableval" = "yes" then libmikmod_driver_ultra=$libmikmod_linux else libmikmod_driver_ultra=no fi]) AC_ARG_ENABLE([dl], [AS_HELP_STRING([--enable-dl],[load alsa, esound and ultra drivers at runtime [default=yes]])], [if test "$enableval" = "yes" then libmikmod_dynload=yes else libmikmod_dynload=no fi]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[build a debug version of libmikmod [default=no]])], [if test "$enableval" = "yes" then libmikmod_debug=yes else libmikmod_debug=no fi]) AC_ARG_ENABLE([threads], [AS_HELP_STRING([--enable-threads],[build a thread-safe version of libmikmod [guessed]])], [if test "$enableval" = "yes" then libmikmod_threads=yes else libmikmod_threads=no fi]) AC_ARG_ENABLE([simd], [AS_HELP_STRING([--enable-simd],[include SIMD (AltiVec or SSE2) mixer optimizations (Unstable!) [default=no]])], [if test "$enableval" = "yes" then libmikmod_simd=yes else libmikmod_simd=no fi]) AC_ARG_ENABLE([unix], [AS_HELP_STRING([--enable-unix],[override the default value of MIKMOD_UNIX in mikmod_internals.h (if you *really* need to.)])], [if test "$enableval" = "yes" then libmikmod_unix=1 elif test "$enableval" = "no" then libmikmod_unix=0 else libmikmod_unix=default fi]) AC_ARG_ENABLE([doc], [AS_HELP_STRING([--enable-doc],[Build and install the documentation [default=yes]])], [if test "$enableval" = "yes" then libmikmod_docs=yes else libmikmod_docs=no fi]) # =================== # Check for programs. # =================== AC_PROG_CC AC_PROG_EGREP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET LT_INIT([win32-dll]) dnl for sdl.m4 and sdl2.m4: PKG_PROG_PKG_CONFIG # ============================================================= # Check for typedefs, structures, and compiler characteristics. # ============================================================= AC_PROG_GCC_TRADITIONAL AC_C_CONST AC_C_INLINE AC_CACHE_CHECK([if compiler understands the signed keyword],[libmikmod_cv_gcc_signed], AC_LANG_PUSH([C]) AC_TRY_COMPILE(,[signed int t = 0;],[libmikmod_cv_gcc_signed=yes],[libmikmod_cv_gcc_signed=no]) AC_LANG_POP([C])) if test $libmikmod_cv_gcc_signed = no then AC_DEFINE(signed,,[Define to empty if compiler does not understand the `signed' keyword.]) fi AC_TYPE_PID_T AC_TYPE_SIZE_T AC_C_BIGENDIAN # ======================= # Check for header files. # ======================= AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([fcntl.h limits.h malloc.h memory.h sys/ioctl.h unistd.h]) # ============================ # Check for library functions. # ============================ AC_CHECK_FUNCS([posix_memalign setenv snprintf srandom]) AC_REPLACE_FUNCS([memcmp strstr]) AC_CHECK_LIB([m],[floor],LIBRARY_LIB="-lm $LIBRARY_LIB") AC_EGREP_HEADER([srandom],[math.h],AC_DEFINE([SRANDOM_IN_MATH_H], 1, [Define if your system defines random(3) and srandom(3) in math.h instead of stdlib.h])) # ==================== # Check for libraries. # ==================== # dl functions # ------------ if test $libmikmod_mingw = yes then # libmikmod_dynload variable is for dlopen() api only libmikmod_dynload=no fi if test $libmikmod_dynload = yes then libmikmod_dynload=no libmikmod_dllib= # SunOS-style shared libraries AC_CHECK_HEADERS([dlfcn.h]) if test $ac_cv_header_dlfcn_h = yes then AC_CHECK_LIB([c],[dlopen],[libmikmod_dynload=sun], [AC_CHECK_LIB([dl],[dlopen],[libmikmod_dynload=sun libmikmod_dllib="-ldl"],[libmikmod_dynload=no])]) else # HP-UX-style shared libraries AC_CHECK_HEADERS([dl.h]) if test $ac_cv_header_dl_h = yes then AC_CHECK_LIB([dld],[shl_load],[libmikmod_dynload=hp libmikmod_dllib="-ldld" CFLAGS="${CFLAGS} -DMIKMOD_DLAPI_HP=1 -I${srcdir}/dlapi"], [libmikmod_dynload=no]) fi fi fi if test $libmikmod_dynload = sun then AC_CACHE_CHECK([wherever dynamically loaded symbols need underscores],[libmikmod_cv_dynload_underscores], libmikmod_oldlibs=$LIBS LIBS="$LIBS $libmikmod_dllib" AC_LANG_PUSH([C]) AC_TRY_RUN( [#include #ifndef RTLD_GLOBAL #define RTLD_GLOBAL 0 #endif int main(void) { void *libc, *printfptr; libc = dlopen("libc.so", RTLD_LAZY | RTLD_GLOBAL); if (!libc) exit(1); printfptr = dlsym(libc, "_printf"); dlclose(libc); exit(!printfptr); }], [libmikmod_cv_dynload_underscores=yes], [libmikmod_cv_dynload_underscores=no], [libmikmod_cv_dynload_underscores=no]) AC_LANG_POP([C]) LIBS=$libmikmod_oldlibs ) if test $libmikmod_cv_dynload_underscores = yes then AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], 1, [Define if your system needs leading underscore to function names in dlsym() calls]) fi fi # POSIX.4 threads # --------------- if test $libmikmod_mingw = yes || test $libmikmod_amiga = yes then dnl libmikmod_threads variable is for pthreads only libmikmod_threads=no fi if test $libmikmod_threads = yes then libmikmod_threads=no AC_CACHE_CHECK([if compiler recognizes -pthread],[libmikmod_cv_gcc_pthread], ac_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -pthread" AC_LANG_PUSH([C]) AC_TRY_LINK([#include ], [int p = pthread_create(NULL,NULL,NULL,NULL);], [libmikmod_cv_gcc_pthread=yes], [libmikmod_cv_gcc_pthread=no]) AC_LANG_POP([C]) CFLAGS=$ac_save_CFLAGS ) if test $libmikmod_cv_gcc_pthread = yes then dnl There is no need for -pthread on darwin or haiku, as gcc dnl complains about unrecognized option -pthread if test $libmikmod_darwin = no && test $libmikmod_haiku = no then libmikmod_threads="" CFLAGS="$CFLAGS -pthread" fi else dnl AC_CHECK_HEADERS(pthread.h) unreliable AC_CHECK_LIB([pthread],[pthread_create],[libmikmod_threads=-lpthread], [AC_CHECK_LIB([c_r],[pthread_create],[libmikmod_threads=-lc_r])]) fi fi # ALSA - Linux only # ----------------- if test $libmikmod_driver_alsa = yes then libmikmod_driver_alsa=no AC_CHECK_HEADERS([alsa/asoundlib.h],[AC_CHECK_LIB([asound],[snd_pcm_open],[libmikmod_driver_alsa=yes])]) fi # Amiga audio # --------------------- if test $libmikmod_driver_ahi = yes then libmikmod_driver_ahi=no AC_CHECK_HEADERS([devices/ahi.h],[libmikmod_driver_ahi=yes]) fi # pulseaudio # ---------- if test $libmikmod_driver_pulseaudio = yes then libmikmod_driver_pulseaudio=no AC_CHECK_HEADERS([pulse/simple.h],[AC_CHECK_LIB([pulse-simple],[pa_simple_new],[libmikmod_driver_pulseaudio=yes])]) fi # esd # --- if test $libmikmod_driver_esd = yes then libmikmod_driver_esd=no AM_PATH_ESD("0.2.18",[libmikmod_driver_esd=yes]) fi # nas # --- if test $libmikmod_driver_nas = yes then libmikmod_driver_nas=no AC_PATH_X AC_CHECK_HEADERS([audio/audiolib.h],[AC_CHECK_LIB([audio],[AuCreateFlow],[libmikmod_driver_nas=yes])]) if test $libmikmod_driver_nas = no then if test -n "$ac_x_includes" || test -n "$ac_x_libraries" then ac_save_CFLAGS=$CFLAGS ac_save_LDFLAGS=$LDFLAGS ac_save_LIBS=$LIBS test -n "$ac_x_includes" && CFLAGS="$CFLAGS -I$ac_x_includes" test -n "$ac_x_libraries" && LDFLAGS="$LDFLAGS -L$ac_x_libraries" LIBS="$LIBS -laudio" AC_MSG_CHECKING([X11 locations for NAS]) AC_TRY_LINK([#include