OpenAL-1.3.1.1: configure.ac
AC_INIT([Haskell HOpenAL package], [1.3.1], [sven.panne@aedion.de], [OpenAL])
# Safety check: Ensure that we are in the correct source directory.
AC_CONFIG_SRCDIR([include/HsOpenAL.h.in])
# The first file mentioned below will be generated by autoheader and contains
# defines which are needed during package build time only. The second header
# contains all kinds of stuff which is needed for using this package.
AC_CONFIG_HEADERS([include/HsOpenALConfig.h include/HsOpenAL.h])
# We set this to "yes" later when we have found OpenAL libs and headers.
AL_BUILD_PACKAGE=no
AC_SUBST([AL_BUILD_PACKAGE])
# Shall we build this package at all?
FP_ARG_OPENAL
if test x"$enable_openal" = xyes; then
# Check for ALUT include paths and libraries
FP_CHECK_OPENAL
if test "$AL_LIBS" = no; then
AC_MSG_FAILURE([no OpenAL library found, so this package cannot be built])
fi
# check for ALUT include files
FP_HEADER_AL
FP_HEADER_ALC
if test x"$fp_found_al_header" = xno || test x"$fp_found_alc_header" = xno; then
AC_MSG_FAILURE([no OpenAL headers found, so this package cannot be built])
fi
AL_BUILD_PACKAGE=yes
AC_CHECK_HEADERS([AL/alext.h OpenAL/alext.h], [break])
FP_FUNC_ALCCLOSEDEVICE_VOID
FP_FUNC_ALCMAKECONTEXTCURRENT_VOID
FP_FUNC_ALCPROCESSCONTEXT_VOID
FP_FUNC_ALCDESTROYCONTEXT_VOID
FPTOOLS_CHECK_HTYPE([ALboolean])
FPTOOLS_CHECK_HTYPE([ALchar], [Int8])
FPTOOLS_CHECK_HTYPE([ALbyte])
FPTOOLS_CHECK_HTYPE([ALubyte])
FPTOOLS_CHECK_HTYPE([ALshort])
FPTOOLS_CHECK_HTYPE([ALushort])
FPTOOLS_CHECK_HTYPE([ALint])
FPTOOLS_CHECK_HTYPE([ALuint])
FPTOOLS_CHECK_HTYPE([ALsizei])
FPTOOLS_CHECK_HTYPE([ALenum])
FPTOOLS_CHECK_HTYPE([ALfloat])
FPTOOLS_CHECK_HTYPE([ALdouble])
FPTOOLS_CHECK_HTYPE([ALCboolean], [Int8])
FPTOOLS_CHECK_HTYPE([ALCchar], [Int8])
FPTOOLS_CHECK_HTYPE([ALCbyte], [Int8])
FPTOOLS_CHECK_HTYPE([ALCubyte], [Word8])
FPTOOLS_CHECK_HTYPE([ALCshort], [Int16])
FPTOOLS_CHECK_HTYPE([ALCushort], [Word16])
FPTOOLS_CHECK_HTYPE([ALCint], [Int32])
FPTOOLS_CHECK_HTYPE([ALCuint], [Word32])
FPTOOLS_CHECK_HTYPE([ALCsizei], [Int32])
FPTOOLS_CHECK_HTYPE([ALCenum], [Int32])
FPTOOLS_CHECK_HTYPE([ALCfloat], [Float])
FPTOOLS_CHECK_HTYPE([ALCdouble], [Double])
FP_CHECK_CONSTS([AL_FALSE AL_TRUE AL_NO_ERROR AL_INVALID_NAME AL_INVALID_ENUM AL_INVALID_VALUE AL_INVALID_OPERATION AL_OUT_OF_MEMORY AL_DOPPLER_FACTOR AL_SPEED_OF_SOUND AL_DISTANCE_MODEL AL_VERSION AL_RENDERER AL_VENDOR AL_EXTENSIONS AL_NONE AL_INVERSE_DISTANCE AL_INVERSE_DISTANCE_CLAMPED AL_LINEAR_DISTANCE AL_LINEAR_DISTANCE_CLAMPED AL_EXPONENT_DISTANCE AL_EXPONENT_DISTANCE_CLAMPED AL_POSITION AL_VELOCITY AL_GAIN AL_ORIENTATION AL_SOURCE_RELATIVE AL_SOURCE_TYPE AL_LOOPING AL_BUFFER AL_BUFFERS_QUEUED AL_BUFFERS_PROCESSED AL_MIN_GAIN AL_MAX_GAIN AL_REFERENCE_DISTANCE AL_ROLLOFF_FACTOR AL_MAX_DISTANCE AL_PITCH AL_DIRECTION AL_CONE_INNER_ANGLE AL_CONE_OUTER_ANGLE AL_CONE_OUTER_GAIN AL_SEC_OFFSET AL_SAMPLE_OFFSET AL_BYTE_OFFSET AL_SOURCE_STATE AL_UNDETERMINED AL_STATIC AL_STREAMING AL_INITIAL AL_PLAYING AL_PAUSED AL_STOPPED AL_FREQUENCY AL_SIZE AL_BITS AL_CHANNELS AL_FORMAT_MONO8 AL_FORMAT_MONO16 AL_FORMAT_STEREO8 AL_FORMAT_STEREO16 ALC_FALSE ALC_TRUE ALC_FREQUENCY ALC_REFRESH ALC_SYNC ALC_MONO_SOURCES ALC_STEREO_SOURCES ALC_NO_ERROR ALC_INVALID_DEVICE ALC_INVALID_CONTEXT ALC_INVALID_ENUM ALC_INVALID_VALUE ALC_INVALID_OPERATION ALC_OUT_OF_MEMORY ALC_DEFAULT_DEVICE_SPECIFIER ALC_DEVICE_SPECIFIER ALC_EXTENSIONS ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER ALC_CAPTURE_DEVICE_SPECIFIER ALC_ATTRIBUTES_SIZE ALC_ALL_ATTRIBUTES ALC_MAJOR_VERSION ALC_MINOR_VERSION ALC_CAPTURE_SAMPLES], [#include <stdio.h>
#if defined(HAVE_AL_ALC_H)
#include <AL/alc.h>
#elif defined(HAVE_OPENAL_ALC_H)
#include <OpenAL/alc.h>
#endif
#if defined(HAVE_AL_ALEXT_H)
#include <AL/alext.h>
#elif defined(HAVE_OPENAL_ALEXT_H)
#include <OpenAL/alext.h>
#endif
#ifndef AL_SPEED_OF_SOUND
#define AL_SPEED_OF_SOUND 0xC003
#endif
#ifndef AL_LINEAR_DISTANCE
#define AL_LINEAR_DISTANCE 0xD003
#endif
#ifndef AL_LINEAR_DISTANCE_CLAMPED
#define AL_LINEAR_DISTANCE_CLAMPED 0xD004
#endif
#ifndef AL_EXPONENT_DISTANCE
#define AL_EXPONENT_DISTANCE 0xD005
#endif
#ifndef AL_EXPONENT_DISTANCE_CLAMPED
#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
#endif
#ifndef AL_SEC_OFFSET
#define AL_SEC_OFFSET 0x1024
#endif
#ifndef AL_SAMPLE_OFFSET
#define AL_SAMPLE_OFFSET 0x1025
#endif
#ifndef AL_BYTE_OFFSET
#define AL_BYTE_OFFSET 0x1026
#endif
#ifndef AL_UNDETERMINED
#define AL_UNDETERMINED 0x1030
#endif
#ifndef AL_STATIC
#define AL_STATIC 0x1028
#endif
#ifndef ALC_MONO_SOURCES
#define ALC_MONO_SOURCES 0x1010
#endif
#ifndef ALC_STEREO_SOURCES
#define ALC_STEREO_SOURCES 0x1011
#endif
#ifndef AL_INVALID_ENUM
#ifdef AL_ILLEGAL_ENUM
#define AL_INVALID_ENUM AL_ILLEGAL_ENUM
#else
#define AL_INVALID_ENUM 0xA002
#endif
#endif
#ifndef AL_INVALID_OPERATION
#ifdef AL_ILLEGAL_COMMAND
#define AL_INVALID_OPERATION AL_ILLEGAL_COMMAND
#else
#define AL_INVALID_OPERATION 0xA004
#endif
#endif
/* NOTE: THIS IS NOT IN ANY HEADER */
#ifndef ALC_INVALID_OPERATION
#define ALC_INVALID_OPERATION 0xA006
#endif
#ifndef ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
#endif
#ifndef ALC_CAPTURE_DEVICE_SPECIFIER
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
#endif
#ifndef ALC_CAPTURE_SAMPLES
#define ALC_CAPTURE_SAMPLES 0x312
#endif
])
AC_DEFINE_UNQUOTED([AL_LIBS],
[`echo '' $AL_LIBS | sed -e 's/-[[^ ]]*/,"&"/g' -e 's/^ *,//'`],
[Library flags for AL, as a list of string literals.])
AC_DEFINE_UNQUOTED([AL_FRAMEWORKS],
[`echo '' $AL_FRAMEWORKS | sed -e 's/-[[^ ]]*/,"&"/g' -e 's/^ *,//'`],
[Framework flags for AL, as a list of string literals.])
fi
if test "$AL_BUILD_PACKAGE" = yes; then
BUILD_PACKAGE_BOOL=True
else
BUILD_PACKAGE_BOOL=False
fi
AC_SUBST([BUILD_PACKAGE_BOOL])
case "$host" in
*-mingw32) CALLCONV=stdcall ;;
*) CALLCONV=ccall ;;
esac
AC_SUBST([CALLCONV])
AC_CONFIG_FILES([config.mk OpenAL.buildinfo])
AC_OUTPUT