1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
AC_INIT([Haskell HOpenAL package], [1.3.1.3], [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 do not really care about this here, but this avoids a warning about an
# unknown option
FP_ARG_COMPILER
# We set this to "yes" later when we have found OpenAL libs and headers.
AL_BUILD_PACKAGE=no
# 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
AL_LIBS_PLAIN=`echo "$AL_LIBS" | sed -e s/-l//`
AC_SUBST([AL_LIBS_PLAIN])
# 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_AL_H)
#include <AL/al.h>
#elif defined(HAVE_OPENAL_AL_H)
#include <OpenAL/al.h>
#endif
#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
# WinDoze DLL hell
# NOTE: For some obscure/unknown reason, OpenAL uses ccall, even on WinDoze...
# *-mingw32) CALLCONV=stdcall ;;
*) CALLCONV=ccall ;;
esac
AC_SUBST([CALLCONV])
AC_CONFIG_FILES([OpenAL.buildinfo])
AC_OUTPUT
|