Make sure the log file is set before initializing the rest of the lib
[openal-soft/android/lowlatency.git] / CMakeLists.txt
blobebfa796a950dc9a7cd9332c0e1b0745339182a5b
1 # CMake build file list for OpenAL
3 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
5 IF(COMMAND CMAKE_POLICY)
6   CMAKE_POLICY(SET CMP0003 NEW)
7 ENDIF(COMMAND CMAKE_POLICY)
9 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
11 INCLUDE(CheckFunctionExists)
12 INCLUDE(CheckLibraryExists)
13 INCLUDE(CheckSharedLibraryExists)
14 INCLUDE(CheckIncludeFile)
15 INCLUDE(CheckIncludeFiles)
16 INCLUDE(CheckSymbolExists)
17 INCLUDE(CheckCCompilerFlag)
18 INCLUDE(CheckCSourceCompiles)
19 INCLUDE(CheckTypeSize)
22 PROJECT(OpenAL C)
25 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
28 OPTION(ALSA    "Check for ALSA backend"                ON)
29 OPTION(OSS     "Check for OSS backend"                 ON)
30 OPTION(SOLARIS "Check for Solaris backend"             ON)
31 OPTION(DSOUND  "Check for DirectSound backend"         ON)
32 OPTION(WINMM   "Check for Windows Multimedia backend"  ON)
33 OPTION(PORTAUDIO  "Check for PortAudio backend"        ON)
34 OPTION(PULSEAUDIO "Check for PulseAudio backend"       ON)
35 OPTION(WAVE    "Enable Wave Writer backend"            ON)
37 OPTION(DLOPEN  "Check for the dlopen API for loading optional libs"  ON)
39 OPTION(WERROR  "Treat compile warnings as errors"      OFF)
41 OPTION(EXAMPLES  "Build example programs"              ON)
43 OPTION(ALSOFT_CONFIG "Install alsoft.conf configuration file" OFF)
46 IF(WIN32)
47     SET(LIBNAME OpenAL32)
48     ADD_DEFINITIONS("-D_WIN32")
49 ELSE()
50     SET(LIBNAME openal)
51 ENDIF()
53 SET(LIB_MAJOR_VERSION "1")
54 SET(LIB_MINOR_VERSION "12")
55 SET(LIB_BUILD_VERSION "854")
56 SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_BUILD_VERSION}")
59 CHECK_TYPE_SIZE("long" SIZEOF_LONG)
60 CHECK_TYPE_SIZE("long long" SIZEOF_LONG_LONG)
61 CHECK_TYPE_SIZE("unsigned int" SIZEOF_UINT)
62 CHECK_TYPE_SIZE("void*" SIZEOF_VOIDP)
65 # Add definitions, compiler switches, etc.
66 INCLUDE_DIRECTORIES(OpenAL32/Include include "${OpenAL_BINARY_DIR}")
68 IF(NOT CMAKE_BUILD_TYPE)
69     SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
70         "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
71         FORCE)
72 ENDIF()
73 IF(NOT CMAKE_DEBUG_POSTFIX)
74     SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING
75         "Library postfix for debug builds. Normally left blank."
76         FORCE)
77 ENDIF()
79 IF(MSVC)
80     # ???
81     SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_DEBUG")
82     SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DNDEBUG")
83     SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG")
84     SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
85     ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
86     ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_DEPRECATE)
88     IF(NOT DXSDK_DIR)
89         STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "$ENV{DXSDK_DIR}")
90     ELSE()
91         STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "${DXSDK_DIR}")
92     ENDIF()
93     IF(DXSDK_DIR)
94         MESSAGE(STATUS "Using DirectX SDK directory: ${DXSDK_DIR}")
95         SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} "${DXSDK_DIR}/Include")
96         INCLUDE_DIRECTORIES("${DXSDK_DIR}/Include")
97         LINK_DIRECTORIES("${DXSDK_DIR}/Lib")
98     ENDIF()
100 ELSE()
101     ADD_DEFINITIONS(-Wall)
102     CHECK_C_COMPILER_FLAG(-Wextra HAVE_W_EXTRA)
103     IF(HAVE_W_EXTRA)
104         ADD_DEFINITIONS(-Wextra)
105     ENDIF()
107     IF(WERROR)
108         ADD_DEFINITIONS(-Werror)
109     ENDIF()
111     SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2 -funroll-loops -D_DEBUG" CACHE STRING
112         "Flags used by the compiler during Release with Debug Info builds."
113         FORCE)
114     SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" CACHE STRING
115         "Flags used by the compiler during release minsize builds."
116         FORCE)
117     SET(CMAKE_C_FLAGS_RELEASE "-O2 -funroll-loops -fomit-frame-pointer -DNDEBUG" CACHE STRING
118         "Flags used by the compiler during release builds"
119         FORCE)
120     SET(CMAKE_C_FLAGS_DEBUG "-g3 -D_DEBUG" CACHE STRING
121         "Flags used by the compiler during debug builds."
122         FORCE)
124     # Set visibility options if available
125     IF(NOT WIN32)
126         CHECK_C_SOURCE_COMPILES("int foo() __attribute__((destructor));
127                                  int main() {return 0;}" HAVE_GCC_DESTRUCTOR)
129         CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_VISIBILITY_SWITCH)
130         IF(HAVE_VISIBILITY_SWITCH)
131             CHECK_C_SOURCE_COMPILES("int foo() __attribute__((visibility(\"default\")));
132                                      int main() {return 0;}" HAVE_GCC_VISIBILITY)
133             IF(HAVE_GCC_VISIBILITY)
134                 ADD_DEFINITIONS(-fvisibility=hidden -DHAVE_GCC_VISIBILITY)
135             ENDIF()
136         ENDIF()
137     ENDIF()
138 ENDIF()
140 CHECK_C_SOURCE_COMPILES("int foo(const char *str, ...) __attribute__((format(printf, 1, 2)));
141                          int main() {return 0;}" HAVE_GCC_FORMAT)
143 CHECK_INCLUDE_FILE(fenv.h HAVE_FENV_H)
144 CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H)
146 CHECK_LIBRARY_EXISTS(m  powf   "" HAVE_POWF)
147 CHECK_LIBRARY_EXISTS(m  sqrtf  "" HAVE_SQRTF)
148 CHECK_LIBRARY_EXISTS(m  acosf  "" HAVE_ACOSF)
149 CHECK_LIBRARY_EXISTS(m  atanf  "" HAVE_ATANF)
150 CHECK_LIBRARY_EXISTS(m  fabsf  "" HAVE_FABSF)
151 IF(HAVE_FENV_H)
152     CHECK_LIBRARY_EXISTS(m  fesetround  "" HAVE_FESETROUND)
153 ENDIF()
154 IF(HAVE_SQRTF OR HAVE_ACOSF OR HAVE_ATANF OR HAVE_FABSF OR HAVE_FESETROUND)
155     SET(EXTRA_LIBS m ${EXTRA_LIBS})
156 ENDIF()
157 CHECK_FUNCTION_EXISTS(strtof HAVE_STRTOF)
158 CHECK_FUNCTION_EXISTS(_controlfp HAVE__CONTROLFP)
160 CHECK_FUNCTION_EXISTS(stat HAVE_STAT)
161 CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
162 IF(NOT HAVE_STRCASECMP)
163     CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP)
164     IF(NOT HAVE__STRICMP)
165         MESSAGE(FATAL_ERROR "No case-insensitive compare function found, please report!")
166     ENDIF()
168     ADD_DEFINITIONS(-Dstrcasecmp=_stricmp)
169 ENDIF()
171 CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP)
172 IF(NOT HAVE_STRNCASECMP)
173     CHECK_FUNCTION_EXISTS(_strnicmp HAVE__STRNICMP)
174     IF(NOT HAVE__STRNICMP)
175         MESSAGE(FATAL_ERROR "No case-insensitive size-limitted compare function found, please report!")
176     ENDIF()
178     ADD_DEFINITIONS(-Dstrncasecmp=_strnicmp)
179 ENDIF()
181 CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
182 IF(NOT HAVE_SNPRINTF)
183     CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF)
184     IF(NOT HAVE__SNPRINTF)
185         MESSAGE(FATAL_ERROR "No snprintf function found, please report!")
186     ENDIF()
188     ADD_DEFINITIONS(-Dsnprintf=_snprintf)
189 ENDIF()
191 CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF)
192 IF(NOT HAVE_VSNPRINTF)
193     CHECK_FUNCTION_EXISTS(_vsnprintf HAVE__VSNPRINTF)
194     IF(NOT HAVE__VSNPRINTF)
195         MESSAGE(FATAL_ERROR "No vsnprintf function found, please report!")
196     ENDIF()
198     ADD_DEFINITIONS(-Dvsnprintf=_vsnprintf)
199 ENDIF()
201 CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN)
202 IF(NOT HAVE_ISNAN)
203     CHECK_FUNCTION_EXISTS(_isnan HAVE__ISNAN)
204     IF(NOT HAVE__ISNAN)
205         MESSAGE(FATAL_ERROR "No isnan function found, please report!")
206     ENDIF()
208     ADD_DEFINITIONS(-Disnan=_isnan)
209 ENDIF()
212 # Check for the dlopen API (for dynamicly loading backend libs)
213 IF(DLOPEN)
214     CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
215     IF(HAVE_DLFCN_H)
216         CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL)
217         IF(HAVE_LIBDL)
218             SET(EXTRA_LIBS dl ${EXTRA_LIBS})
219         ENDIF()
220     ENDIF()
221 ENDIF()
223 # Check if we have Windows headers
224 CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H -D_WIN32_WINNT=0x0500)
225 IF(NOT HAVE_WINDOWS_H)
226     CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
227     IF(NOT HAVE_GETTIMEOFDAY)
228         MESSAGE(FATAL_ERROR "No timing function found!")
229     ENDIF()
231     CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
232     IF(NOT HAVE_NANOSLEEP)
233         MESSAGE(FATAL_ERROR "No sleep function found!")
234     ENDIF()
236     CHECK_C_COMPILER_FLAG(-pthread HAVE_PTHREAD)
237     IF(HAVE_PTHREAD)
238         ADD_DEFINITIONS(-pthread)
239         SET(EXTRA_LIBS ${EXTRA_LIBS} -pthread)
240     ENDIF()
242     # We need pthreads outside of Windows
243     CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
244     IF(NOT HAVE_PTHREAD_H)
245         MESSAGE(FATAL_ERROR "PThreads is required for non-Windows builds!")
246     ENDIF()
247     # Some systems need pthread_np.h to get recursive mutexes
248     CHECK_INCLUDE_FILES("pthread.h;pthread_np.h" HAVE_PTHREAD_NP_H)
250     # _GNU_SOURCE is needed on some systems for extra attributes, and
251     # _REENTRANT is needed for libc thread-safety
252     ADD_DEFINITIONS(-D_GNU_SOURCE=1)
253     CHECK_LIBRARY_EXISTS(pthread pthread_create "" HAVE_LIBPTHREAD)
254     IF(HAVE_LIBPTHREAD)
255         SET(EXTRA_LIBS pthread ${EXTRA_LIBS})
256     ENDIF()
258     CHECK_LIBRARY_EXISTS(pthread pthread_setschedparam "" HAVE_PTHREAD_SETSCHEDPARAM)
260     CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT)
261     IF(HAVE_LIBRT)
262         SET(EXTRA_LIBS rt ${EXTRA_LIBS})
263     ENDIF()
264 ENDIF()
266 # Check for a 64-bit type
267 CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
268 IF(NOT HAVE_STDINT_H)
269     IF(HAVE_WINDOWS_H)
270         CHECK_C_SOURCE_COMPILES("\#define _WIN32_WINNT 0x0500
271                                  \#include <windows.h>
272                                  __int64 foo;
273                                  int main() {return 0;}" HAVE___INT64)
274     ENDIF()
275     IF(NOT HAVE___INT64)
276         IF(NOT SIZEOF_LONG MATCHES "8")
277             IF(NOT SIZEOF_LONG_LONG MATCHES "8")
278                 MESSAGE(FATAL_ERROR "No 64-bit types found, please report!")
279             ENDIF()
280         ENDIF()
281     ENDIF()
282 ENDIF()
284 IF(WIN32)
285     # Windows needs winmm for timeGetTime, even if the backend is disabled
286     CHECK_SHARED_LIBRARY_EXISTS(winmm timeGetTime 0 "" HAVE_LIBWINMM)
287     IF(HAVE_LIBWINMM)
288         SET(EXTRA_LIBS winmm ${EXTRA_LIBS})
289     ENDIF()
290 ENDIF()
293 SET(OPENAL_OBJS  OpenAL32/alAuxEffectSlot.c
294                  OpenAL32/alBuffer.c
295                  OpenAL32/alDatabuffer.c
296                  OpenAL32/alEffect.c
297                  OpenAL32/alError.c
298                  OpenAL32/alExtension.c
299                  OpenAL32/alFilter.c
300                  OpenAL32/alListener.c
301                  OpenAL32/alSource.c
302                  OpenAL32/alState.c
303                  OpenAL32/alThunk.c
305 SET(ALC_OBJS  Alc/ALc.c
306               Alc/ALu.c
307               Alc/alcConfig.c
308               Alc/alcEcho.c
309               Alc/alcModulator.c
310               Alc/alcReverb.c
311               Alc/alcRing.c
312               Alc/alcThread.c
313               Alc/bs2b.c
314               Alc/null.c
317 SET(BACKENDS "")
319 # Check ALSA backend
320 IF(ALSA)
321     CHECK_INCLUDE_FILE(alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H)
322     IF(HAVE_ALSA_ASOUNDLIB_H)
323         CHECK_SHARED_LIBRARY_EXISTS(asound snd_pcm_open 4 "" HAVE_LIBASOUND)
324         IF(HAVE_LIBASOUND OR HAVE_DLFCN_H OR WIN32)
325             SET(HAVE_ALSA 1)
326             SET(ALC_OBJS  ${ALC_OBJS} Alc/alsa.c)
327             IF(HAVE_DLFCN_H OR WIN32)
328                 SET(BACKENDS  "${BACKENDS} ALSA,")
329             ELSE()
330                 SET(BACKENDS  "${BACKENDS} ALSA \(linked\),")
331                 SET(EXTRA_LIBS asound ${EXTRA_LIBS})
332             ENDIF()
333         ENDIF()
334     ENDIF()
335 ENDIF()
337 # Check OSS backend
338 IF(OSS)
339     CHECK_INCLUDE_FILE(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
340     IF(HAVE_SYS_SOUNDCARD_H)
341         SET(HAVE_OSS 1)
342         SET(ALC_OBJS  ${ALC_OBJS} Alc/oss.c)
343         SET(BACKENDS  "${BACKENDS} OSS,")
344     ENDIF()
345 ENDIF()
347 # Check Solaris backend
348 IF(SOLARIS)
349     CHECK_INCLUDE_FILE(sys/audioio.h HAVE_SYS_AUDIOIO_H)
350     IF(HAVE_SYS_AUDIOIO_H)
351         SET(HAVE_SOLARIS 1)
352         SET(ALC_OBJS  ${ALC_OBJS} Alc/solaris.c)
353         SET(BACKENDS  "${BACKENDS} Solaris,")
354     ENDIF()
355 ENDIF()
357 # Check DSound/MMSystem backend
358 IF(DSOUND)
359     CHECK_INCLUDE_FILE(dsound.h HAVE_DSOUND_H)
360     IF(HAVE_DSOUND_H)
361         CHECK_SHARED_LIBRARY_EXISTS(dsound DirectSoundCreate 3 "" HAVE_LIBDSOUND)
362         IF(HAVE_LIBDSOUND OR HAVE_DLFCN_H OR WIN32)
363             SET(HAVE_DSOUND 1)
364             SET(ALC_OBJS  ${ALC_OBJS} Alc/dsound.c)
366             IF(HAVE_DLFCN_H OR WIN32)
367                 SET(BACKENDS  "${BACKENDS} DirectSound,")
368             ELSE()
369                 SET(BACKENDS  "${BACKENDS} DirectSound \(linked\),")
370                 SET(EXTRA_LIBS dsound ${EXTRA_LIBS})
371             ENDIF()
372         ENDIF()
373     ENDIF()
374 ENDIF()
375 IF(HAVE_WINDOWS_H)
376     IF(WINMM)
377         CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0500)
378         IF(HAVE_MMSYSTEM_H)
379             CHECK_SHARED_LIBRARY_EXISTS(winmm waveInOpen 6 "" HAVE_LIBWINMM)
380             IF(HAVE_LIBWINMM)
381                 SET(HAVE_WINMM 1)
382                 SET(ALC_OBJS  ${ALC_OBJS} Alc/winmm.c)
383                 SET(BACKENDS  "${BACKENDS} WinMM,")
385                 SET(EXTRA_LIBS winmm ${EXTRA_LIBS})
386             ENDIF()
387         ENDIF()
388     ENDIF()
389 ENDIF()
391 # Check PortAudio backend
392 IF(PORTAUDIO)
393     CHECK_INCLUDE_FILE(portaudio.h HAVE_PORTAUDIO_H)
394     IF(HAVE_PORTAUDIO_H)
395         CHECK_SHARED_LIBRARY_EXISTS(portaudio Pa_Initialize 0 "" HAVE_LIBPORTAUDIO)
396         IF(HAVE_LIBPORTAUDIO OR HAVE_DLFCN_H OR WIN32)
397             SET(HAVE_PORTAUDIO 1)
398             SET(ALC_OBJS  ${ALC_OBJS} Alc/portaudio.c)
399             IF(HAVE_DLFCN_H OR WIN32)
400                 SET(BACKENDS  "${BACKENDS} PortAudio,")
401             ELSE()
402                 SET(BACKENDS  "${BACKENDS} PortAudio \(linked\),")
403                 SET(EXTRA_LIBS portaudio ${EXTRA_LIBS})
404             ENDIF()
405         ENDIF()
406     ENDIF()
407 ENDIF()
409 # Check PortAudio backend
410 IF(PULSEAUDIO)
411     CHECK_INCLUDE_FILE(pulse/pulseaudio.h HAVE_PULSE_PULSEAUDIO_H)
412     IF(HAVE_PULSE_PULSEAUDIO_H)
413         CHECK_SHARED_LIBRARY_EXISTS(pulse pa_context_new 2 "" HAVE_LIBPULSE)
414         IF(HAVE_LIBPULSE OR HAVE_DLFCN_H OR WIN32)
415             SET(HAVE_PULSEAUDIO 1)
416             SET(ALC_OBJS  ${ALC_OBJS} Alc/pulseaudio.c)
417             IF(HAVE_DLFCN_H OR WIN32)
418                 SET(BACKENDS  "${BACKENDS} PulseAudio,")
419             ELSE()
420                 SET(BACKENDS  "${BACKENDS} PulseAudio \(linked\),")
421                 SET(EXTRA_LIBS pulse ${EXTRA_LIBS})
422             ENDIF()
423         ENDIF()
424     ENDIF()
425 ENDIF()
427 # Optionally enable the Wave Writer backend
428 IF(WAVE)
429     SET(HAVE_WAVE 1)
430     SET(ALC_OBJS  ${ALC_OBJS} Alc/wave.c)
431     SET(BACKENDS  "${BACKENDS} WaveFile,")
432 ENDIF()
434 # This is always available
435 SET(BACKENDS  "${BACKENDS} Null")
437 # Needed for openal.pc.in
438 SET(prefix ${CMAKE_INSTALL_PREFIX})
439 SET(exec_prefix "\${prefix}")
440 SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}")
441 SET(bindir "\${exec_prefix}/bin")
442 SET(includedir "\${prefix}/include")
443 SET(PACKAGE_VERSION "${LIB_VERSION}")
445 # End configuration
446 CONFIGURE_FILE(
447     "${OpenAL_SOURCE_DIR}/config.h.in"
448     "${OpenAL_BINARY_DIR}/config.h")
449 CONFIGURE_FILE(
450     "${OpenAL_SOURCE_DIR}/openal.pc.in"
451     "${OpenAL_BINARY_DIR}/openal.pc"
452     @ONLY)
454 # Build a library
455 IF(NOT LIBTYPE)
456     SET(LIBTYPE SHARED)
457 ENDIF()
458 ADD_LIBRARY(${LIBNAME} ${LIBTYPE} ${OPENAL_OBJS} ${ALC_OBJS})
459 SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES DEFINE_SYMBOL AL_BUILD_LIBRARY
460                                             COMPILE_FLAGS -DAL_ALEXT_PROTOTYPES
461                                             VERSION ${LIB_VERSION}
462                                             SOVERSION ${LIB_MAJOR_VERSION})
463 IF(WIN32)
464     SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES PREFIX "")
465 ENDIF()
467 TARGET_LINK_LIBRARIES(${LIBNAME} ${EXTRA_LIBS})
469 # Add an install target here
470 INSTALL(TARGETS ${LIBNAME}
471         RUNTIME DESTINATION bin
472         LIBRARY DESTINATION "lib${LIB_SUFFIX}"
473         ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
475 INSTALL(FILES include/AL/al.h
476               include/AL/alc.h
477               include/AL/alext.h
478               include/AL/efx.h
479               include/AL/efx-creative.h
480         DESTINATION include/AL
482 INSTALL(FILES "${OpenAL_BINARY_DIR}/openal.pc"
483         DESTINATION "lib${LIB_SUFFIX}/pkgconfig")
485 # Install alsoft.conf configuration file
486 IF(ALSOFT_CONFIG)
487     INSTALL(FILES alsoftrc.sample
488             DESTINATION /etc/openal
489             RENAME alsoft.conf
490     )
491 ENDIF()
493 IF(EXAMPLES)
494     ADD_EXECUTABLE(openal-info examples/openal-info.c)
495     TARGET_LINK_LIBRARIES(openal-info ${LIBNAME})
496     INSTALL(TARGETS openal-info
497             RUNTIME DESTINATION bin
498             LIBRARY DESTINATION "lib${LIB_SUFFIX}"
499             ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
500     )
501 ENDIF()
503 MESSAGE(STATUS "")
504 MESSAGE(STATUS "Building OpenAL with support for the following backends:")
505 MESSAGE(STATUS "    ${BACKENDS}")
506 MESSAGE(STATUS "")
508 IF(WIN32)
509     IF(NOT HAVE_DSOUND)
510         MESSAGE(STATUS "WARNING: Building the Windows version without DirectSound output")
511         MESSAGE(STATUS "         This is probably NOT what you want!")
512         MESSAGE(STATUS "")
513     ENDIF()
514 ENDIF()