~ubuntu-branches/ubuntu/vivid/openal-soft/vivid

« back to all changes in this revision

Viewing changes to .pc/etcconf.patch/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Bret Curtis
  • Date: 2014-08-04 08:38:25 UTC
  • Revision ID: package-import@ubuntu.com-20140804083825-rf1iv8tpz96c3r6c
Tags: 1:1.15.1-4
* Added etcconf.patch to bring back the default conf file, 
  closes: 755862, 756891
* Added debug packages. (Closes: 659364)
* Made the additional binaries into separate packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# CMake build file list for OpenAL
 
2
 
 
3
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
 
4
 
 
5
IF(COMMAND CMAKE_POLICY)
 
6
  CMAKE_POLICY(SET CMP0003 NEW)
 
7
ENDIF(COMMAND CMAKE_POLICY)
 
8
 
 
9
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
 
10
 
 
11
INCLUDE(CheckFunctionExists)
 
12
INCLUDE(CheckLibraryExists)
 
13
INCLUDE(CheckSharedFunctionExists)
 
14
INCLUDE(CheckIncludeFile)
 
15
INCLUDE(CheckIncludeFiles)
 
16
INCLUDE(CheckSymbolExists)
 
17
INCLUDE(CheckCCompilerFlag)
 
18
INCLUDE(CheckCSourceCompiles)
 
19
INCLUDE(CheckTypeSize)
 
20
INCLUDE(FindPkgConfig)
 
21
 
 
22
 
 
23
PROJECT(OpenAL C)
 
24
 
 
25
 
 
26
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
 
27
 
 
28
 
 
29
OPTION(SSE  "Check for SSE CPU extensions"      ON)
 
30
OPTION(NEON "Check for ARM Neon CPU extensions" ON)
 
31
 
 
32
OPTION(REQUIRE_SSE  "Require SSE CPU extensions"      OFF)
 
33
OPTION(REQUIRE_NEON "Require ARM Neon CPU extensions" OFF)
 
34
 
 
35
 
 
36
OPTION(ALSA    "Check for ALSA backend"                ON)
 
37
OPTION(OSS     "Check for OSS backend"                 ON)
 
38
OPTION(SOLARIS "Check for Solaris backend"             ON)
 
39
OPTION(SNDIO   "Check for SndIO backend"               ON)
 
40
OPTION(MMDEVAPI "Check for MMDevApi"                   ON)
 
41
OPTION(DSOUND  "Check for DirectSound backend"         ON)
 
42
OPTION(WINMM   "Check for Windows Multimedia backend"  ON)
 
43
OPTION(PORTAUDIO  "Check for PortAudio backend"        ON)
 
44
OPTION(PULSEAUDIO "Check for PulseAudio backend"       ON)
 
45
OPTION(COREAUDIO  "Check for CoreAudio backend"        ON)
 
46
OPTION(OPENSL     "Check for OpenSL backend"           ON)
 
47
OPTION(WAVE    "Enable Wave Writer backend"            ON)
 
48
 
 
49
OPTION(REQUIRE_ALSA       "Require ALSA backend"               OFF)
 
50
OPTION(REQUIRE_OSS        "Require OSS backend"                OFF)
 
51
OPTION(REQUIRE_SOLARIS    "Require Solaris backend"            OFF)
 
52
OPTION(REQUIRE_SNDIO      "Require SndIO backend"              OFF)
 
53
OPTION(REQUIRE_MMDEVAPI   "Require MMDevApi"                   OFF)
 
54
OPTION(REQUIRE_DSOUND     "Require DirectSound backend"        OFF)
 
55
OPTION(REQUIRE_WINMM      "Require Windows Multimedia backend" OFF)
 
56
OPTION(REQUIRE_PORTAUDIO  "Require PortAudio backend"          OFF)
 
57
OPTION(REQUIRE_PULSEAUDIO "Require PulseAudio backend"         OFF)
 
58
OPTION(REQUIRE_COREAUDIO  "Require CoreAudio backend"          OFF)
 
59
OPTION(REQUIRE_OPENSL     "Require OpenSL backend"             OFF)
 
60
 
 
61
OPTION(DLOPEN  "Check for the dlopen API for loading optional libs"  ON)
 
62
 
 
63
OPTION(WERROR  "Treat compile warnings as errors"      OFF)
 
64
 
 
65
OPTION(UTILS  "Build and install utility programs"  ON)
 
66
 
 
67
OPTION(EXAMPLES  "Build and install example programs"  ON)
 
68
 
 
69
OPTION(ALSOFT_CONFIG "Install alsoft.conf sample configuration file" ON)
 
70
 
 
71
 
 
72
IF(WIN32)
 
73
    SET(LIBNAME OpenAL32)
 
74
    ADD_DEFINITIONS("-D_WIN32 -D_WIN32_WINNT=0x0501")
 
75
ELSE()
 
76
    SET(LIBNAME openal)
 
77
ENDIF()
 
78
 
 
79
IF(NOT LIBTYPE)
 
80
    SET(LIBTYPE SHARED)
 
81
ENDIF()
 
82
 
 
83
SET(LIB_MAJOR_VERSION "1")
 
84
SET(LIB_MINOR_VERSION "15")
 
85
SET(LIB_REVISION "1")
 
86
SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}")
 
87
 
 
88
SET(EXPORT_DECL "")
 
89
SET(ALIGN_DECL "")
 
90
SET(RESTRICT_DECL "")
 
91
 
 
92
 
 
93
CHECK_TYPE_SIZE("long" SIZEOF_LONG)
 
94
CHECK_TYPE_SIZE("long long" SIZEOF_LONG_LONG)
 
95
 
 
96
 
 
97
CHECK_C_SOURCE_COMPILES("int *restrict foo;
 
98
                         int main() {return 0;}" HAVE_RESTRICT)
 
99
IF(HAVE_RESTRICT)
 
100
    SET(RESTRICT_DECL "restrict")
 
101
ELSE()
 
102
    CHECK_C_SOURCE_COMPILES("int *__restrict foo;
 
103
                             int main() {return 0;}" HAVE___RESTRICT)
 
104
    IF(HAVE___RESTRICT)
 
105
        SET(RESTRICT_DECL "__restrict")
 
106
    ENDIF()
 
107
ENDIF()
 
108
 
 
109
 
 
110
# Add definitions, compiler switches, etc.
 
111
INCLUDE_DIRECTORIES(OpenAL32/Include include "${OpenAL_BINARY_DIR}")
 
112
 
 
113
IF(NOT CMAKE_BUILD_TYPE)
 
114
    SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
 
115
        "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
 
116
        FORCE)
 
117
ENDIF()
 
118
IF(NOT CMAKE_DEBUG_POSTFIX)
 
119
    SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING
 
120
        "Library postfix for debug builds. Normally left blank."
 
121
        FORCE)
 
122
ENDIF()
 
123
 
 
124
IF(MSVC)
 
125
    # ???
 
126
    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_DEBUG")
 
127
    SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DNDEBUG")
 
128
    SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG")
 
129
    SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
 
130
    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
 
131
    ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_DEPRECATE)
 
132
 
 
133
    IF(NOT DXSDK_DIR)
 
134
        STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "$ENV{DXSDK_DIR}")
 
135
    ELSE()
 
136
        STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "${DXSDK_DIR}")
 
137
    ENDIF()
 
138
    IF(DXSDK_DIR)
 
139
        MESSAGE(STATUS "Using DirectX SDK directory: ${DXSDK_DIR}")
 
140
        SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} "${DXSDK_DIR}/Include")
 
141
        INCLUDE_DIRECTORIES("${DXSDK_DIR}/Include")
 
142
        LINK_DIRECTORIES("${DXSDK_DIR}/Lib")
 
143
    ENDIF()
 
144
 
 
145
    OPTION(FORCE_STATIC_VCRT "Force /MT for static VC runtimes" OFF)
 
146
    IF(FORCE_STATIC_VCRT)
 
147
        FOREACH(flag_var
 
148
                CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
 
149
                CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
 
150
            IF(${flag_var} MATCHES "/MD")
 
151
                STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
 
152
            ENDIF()
 
153
        ENDFOREACH(flag_var)
 
154
    ENDIF()
 
155
ELSE()
 
156
    ADD_DEFINITIONS(-Winline -Wall)
 
157
    CHECK_C_COMPILER_FLAG(-Wextra HAVE_W_EXTRA)
 
158
    IF(HAVE_W_EXTRA)
 
159
        ADD_DEFINITIONS(-Wextra)
 
160
    ENDIF()
 
161
 
 
162
    IF(WERROR)
 
163
        ADD_DEFINITIONS(-Werror)
 
164
    ENDIF()
 
165
 
 
166
    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2 -D_DEBUG" CACHE STRING
 
167
        "Flags used by the compiler during Release with Debug Info builds."
 
168
        FORCE)
 
169
    SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" CACHE STRING
 
170
        "Flags used by the compiler during release minsize builds."
 
171
        FORCE)
 
172
    SET(CMAKE_C_FLAGS_RELEASE "-O2 -fomit-frame-pointer -DNDEBUG" CACHE STRING
 
173
        "Flags used by the compiler during release builds"
 
174
        FORCE)
 
175
    SET(CMAKE_C_FLAGS_DEBUG "-g3 -D_DEBUG" CACHE STRING
 
176
        "Flags used by the compiler during debug builds."
 
177
        FORCE)
 
178
 
 
179
    CHECK_C_SOURCE_COMPILES("int foo() __attribute__((destructor));
 
180
                             int main() {return 0;}" HAVE_GCC_DESTRUCTOR)
 
181
ENDIF()
 
182
 
 
183
# Set visibility/export options if available
 
184
IF(WIN32)
 
185
    SET(EXPORT_DECL "__declspec(dllexport)")
 
186
    SET(ALIGN_DECL "__declspec(align(x))")
 
187
 
 
188
    OPTION(WINE "Enable use of Wine headers when compiling" OFF)
 
189
    IF(WINE)
 
190
        FIND_PATH(WINE_INCLUDE_DIR library.h
 
191
                  PATHS
 
192
                  /usr/include/wine
 
193
                  /usr/local/include/wine
 
194
                  CMAKE_FIND_ROOT_PATH_BOTH)
 
195
        IF(WINE_INCLUDE_DIR)
 
196
            MESSAGE(STATUS "Found Wine header files - ${WINE_INCLUDE_DIR}" )
 
197
            INCLUDE_DIRECTORIES("${WINE_INCLUDE_DIR}/windows")
 
198
            SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} "${WINE_INCLUDE_DIR}/windows")
 
199
        ELSE()
 
200
            MESSAGE(STATUS "Could not find Wine header files" )
 
201
        ENDIF()
 
202
    ENDIF()
 
203
ELSE()
 
204
    SET(OLD_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
 
205
    # Yes GCC, really don't accept visibility modes you don't support
 
206
    SET(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS} -Wattributes -Werror")
 
207
 
 
208
    CHECK_C_SOURCE_COMPILES("int foo() __attribute__((visibility(\"protected\")));
 
209
                             int main() {return 0;}" HAVE_GCC_PROTECTED_VISIBILITY)
 
210
    IF(HAVE_GCC_PROTECTED_VISIBILITY)
 
211
        SET(EXPORT_DECL "__attribute__((visibility(\"protected\")))")
 
212
    ELSE()
 
213
        CHECK_C_SOURCE_COMPILES("int foo() __attribute__((visibility(\"default\")));
 
214
                                 int main() {return 0;}" HAVE_GCC_DEFAULT_VISIBILITY)
 
215
        IF(HAVE_GCC_DEFAULT_VISIBILITY)
 
216
            SET(EXPORT_DECL "__attribute__((visibility(\"default\")))")
 
217
        ENDIF()
 
218
    ENDIF()
 
219
 
 
220
    IF(HAVE_GCC_PROTECTED_VISIBILITY OR HAVE_GCC_DEFAULT_VISIBILITY)
 
221
        CHECK_C_COMPILER_FLAG(-fvisibility=internal HAVE_VISIBILITY_INTERNAL_SWITCH)
 
222
        IF(HAVE_VISIBILITY_INTERNAL_SWITCH)
 
223
            ADD_DEFINITIONS(-fvisibility=internal)
 
224
        ELSE()
 
225
            CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN_SWITCH)
 
226
            IF(HAVE_VISIBILITY_HIDDEN_SWITCH)
 
227
                ADD_DEFINITIONS(-fvisibility=hidden)
 
228
            ENDIF()
 
229
        ENDIF()
 
230
    ENDIF()
 
231
 
 
232
    CHECK_C_SOURCE_COMPILES("int foo __attribute__((aligned(16)));
 
233
                             int main() {return 0;}" HAVE_ATTRIBUTE_ALIGNED)
 
234
    IF(HAVE_ATTRIBUTE_ALIGNED)
 
235
        SET(ALIGN_DECL "__attribute__((aligned(x)))")
 
236
    ENDIF()
 
237
 
 
238
    SET(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS}")
 
239
ENDIF()
 
240
 
 
241
SET(SSE_SWITCH "")
 
242
CHECK_C_COMPILER_FLAG(-msse HAVE_MSSE_SWITCH)
 
243
IF(HAVE_MSSE_SWITCH)
 
244
    SET(SSE_SWITCH "-msse")
 
245
ENDIF()
 
246
 
 
247
CHECK_C_SOURCE_COMPILES("int foo(const char *str, ...) __attribute__((format(printf, 1, 2)));
 
248
                         int main() {return 0;}" HAVE_GCC_FORMAT)
 
249
 
 
250
CHECK_INCLUDE_FILE(malloc.h HAVE_MALLOC_H)
 
251
CHECK_INCLUDE_FILE(cpuid.h HAVE_CPUID_H)
 
252
CHECK_INCLUDE_FILE(fenv.h HAVE_FENV_H)
 
253
CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H)
 
254
CHECK_INCLUDE_FILE(ieeefp.h HAVE_IEEEFP_H)
 
255
CHECK_INCLUDE_FILE(guiddef.h HAVE_GUIDDEF_H)
 
256
IF(NOT HAVE_GUIDDEF_H)
 
257
    CHECK_INCLUDE_FILE(initguid.h HAVE_INITGUID_H)
 
258
ENDIF()
 
259
 
 
260
# Some systems need libm for some of the following math functions to work
 
261
CHECK_LIBRARY_EXISTS(m pow "" HAVE_LIBM)
 
262
IF(HAVE_LIBM)
 
263
    SET(EXTRA_LIBS m ${EXTRA_LIBS})
 
264
    SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} m)
 
265
ENDIF()
 
266
 
 
267
 
 
268
CHECK_SYMBOL_EXISTS(aligned_alloc    stdlib.h HAVE_ALIGNED_ALLOC)
 
269
CHECK_SYMBOL_EXISTS(posix_memalign   stdlib.h HAVE_POSIX_MEMALIGN)
 
270
CHECK_SYMBOL_EXISTS(_aligned_malloc  malloc.h HAVE__ALIGNED_MALLOC)
 
271
CHECK_SYMBOL_EXISTS(lrintf math.h HAVE_LRINTF)
 
272
 
 
273
IF(HAVE_FENV_H)
 
274
    CHECK_SYMBOL_EXISTS(fesetround fenv.h HAVE_FESETROUND)
 
275
ENDIF()
 
276
IF(HAVE_FLOAT_H)
 
277
    CHECK_SYMBOL_EXISTS(_controlfp float.h HAVE__CONTROLFP)
 
278
    CHECK_SYMBOL_EXISTS(__control87_2 float.h HAVE___CONTROL87_2)
 
279
ENDIF()
 
280
 
 
281
CHECK_FUNCTION_EXISTS(strtof HAVE_STRTOF)
 
282
CHECK_FUNCTION_EXISTS(stat HAVE_STAT)
 
283
CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
 
284
IF(NOT HAVE_STRCASECMP)
 
285
    CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP)
 
286
    IF(NOT HAVE__STRICMP)
 
287
        MESSAGE(FATAL_ERROR "No case-insensitive compare function found, please report!")
 
288
    ENDIF()
 
289
 
 
290
    ADD_DEFINITIONS(-Dstrcasecmp=_stricmp)
 
291
ENDIF()
 
292
 
 
293
CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP)
 
294
IF(NOT HAVE_STRNCASECMP)
 
295
    CHECK_FUNCTION_EXISTS(_strnicmp HAVE__STRNICMP)
 
296
    IF(NOT HAVE__STRNICMP)
 
297
        MESSAGE(FATAL_ERROR "No case-insensitive size-limitted compare function found, please report!")
 
298
    ENDIF()
 
299
 
 
300
    ADD_DEFINITIONS(-Dstrncasecmp=_strnicmp)
 
301
ENDIF()
 
302
 
 
303
CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
 
304
IF(NOT HAVE_SNPRINTF)
 
305
    CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF)
 
306
    IF(NOT HAVE__SNPRINTF)
 
307
        MESSAGE(FATAL_ERROR "No snprintf function found, please report!")
 
308
    ENDIF()
 
309
 
 
310
    ADD_DEFINITIONS(-Dsnprintf=_snprintf)
 
311
ENDIF()
 
312
 
 
313
CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF)
 
314
IF(NOT HAVE_VSNPRINTF)
 
315
    CHECK_FUNCTION_EXISTS(_vsnprintf HAVE__VSNPRINTF)
 
316
    IF(NOT HAVE__VSNPRINTF)
 
317
        MESSAGE(FATAL_ERROR "No vsnprintf function found, please report!")
 
318
    ENDIF()
 
319
 
 
320
    ADD_DEFINITIONS(-Dvsnprintf=_vsnprintf)
 
321
ENDIF()
 
322
 
 
323
CHECK_SYMBOL_EXISTS(isfinite math.h HAVE_ISFINITE)
 
324
IF(NOT HAVE_ISFINITE)
 
325
    CHECK_FUNCTION_EXISTS(finite HAVE_FINITE)
 
326
    IF(NOT HAVE_FINITE)
 
327
        CHECK_FUNCTION_EXISTS(_finite HAVE__FINITE)
 
328
        IF(NOT HAVE__FINITE)
 
329
            MESSAGE(FATAL_ERROR "No isfinite function found, please report!")
 
330
        ENDIF()
 
331
        ADD_DEFINITIONS(-Disfinite=_finite)
 
332
    ELSE()
 
333
        ADD_DEFINITIONS(-Disfinite=finite)
 
334
    ENDIF()
 
335
ENDIF()
 
336
 
 
337
CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN)
 
338
IF(NOT HAVE_ISNAN)
 
339
    CHECK_FUNCTION_EXISTS(_isnan HAVE__ISNAN)
 
340
    IF(NOT HAVE__ISNAN)
 
341
        MESSAGE(FATAL_ERROR "No isnan function found, please report!")
 
342
    ENDIF()
 
343
 
 
344
    ADD_DEFINITIONS(-Disnan=_isnan)
 
345
ENDIF()
 
346
 
 
347
 
 
348
# Check for the dlopen API (for dynamicly loading backend libs)
 
349
IF(DLOPEN)
 
350
    CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
 
351
    IF(HAVE_DLFCN_H)
 
352
        CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL)
 
353
        IF(HAVE_LIBDL)
 
354
            SET(EXTRA_LIBS dl ${EXTRA_LIBS})
 
355
        ENDIF()
 
356
    ENDIF()
 
357
ENDIF()
 
358
 
 
359
# Check if we have Windows headers
 
360
CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H -D_WIN32_WINNT=0x0501)
 
361
IF(NOT HAVE_WINDOWS_H)
 
362
    CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
 
363
    IF(NOT HAVE_GETTIMEOFDAY)
 
364
        MESSAGE(FATAL_ERROR "No timing function found!")
 
365
    ENDIF()
 
366
 
 
367
    CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
 
368
    IF(NOT HAVE_NANOSLEEP)
 
369
        MESSAGE(FATAL_ERROR "No sleep function found!")
 
370
    ENDIF()
 
371
 
 
372
    CHECK_C_COMPILER_FLAG(-pthread HAVE_PTHREAD)
 
373
    IF(HAVE_PTHREAD)
 
374
        ADD_DEFINITIONS(-pthread)
 
375
        SET(EXTRA_LIBS ${EXTRA_LIBS} -pthread)
 
376
    ENDIF()
 
377
 
 
378
    # We need pthreads outside of Windows
 
379
    CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
 
380
    IF(NOT HAVE_PTHREAD_H)
 
381
        MESSAGE(FATAL_ERROR "PThreads is required for non-Windows builds!")
 
382
    ENDIF()
 
383
    # Some systems need pthread_np.h to get recursive mutexes
 
384
    CHECK_INCLUDE_FILES("pthread.h;pthread_np.h" HAVE_PTHREAD_NP_H)
 
385
 
 
386
    # _GNU_SOURCE is needed on some systems for extra attributes
 
387
    ADD_DEFINITIONS(-D_GNU_SOURCE=1)
 
388
    CHECK_LIBRARY_EXISTS(pthread pthread_create "" HAVE_LIBPTHREAD)
 
389
    IF(HAVE_LIBPTHREAD)
 
390
        SET(EXTRA_LIBS pthread ${EXTRA_LIBS})
 
391
    ENDIF()
 
392
 
 
393
    CHECK_LIBRARY_EXISTS(pthread pthread_setschedparam "" HAVE_PTHREAD_SETSCHEDPARAM)
 
394
 
 
395
    CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT)
 
396
    IF(HAVE_LIBRT)
 
397
        SET(EXTRA_LIBS rt ${EXTRA_LIBS})
 
398
    ENDIF()
 
399
ENDIF()
 
400
 
 
401
# Check for a 64-bit type
 
402
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
 
403
IF(NOT HAVE_STDINT_H)
 
404
    IF(HAVE_WINDOWS_H)
 
405
        CHECK_C_SOURCE_COMPILES("\#define _WIN32_WINNT 0x0501
 
406
                                 \#include <windows.h>
 
407
                                 __int64 foo;
 
408
                                 int main() {return 0;}" HAVE___INT64)
 
409
    ENDIF()
 
410
    IF(NOT HAVE___INT64)
 
411
        IF(NOT SIZEOF_LONG MATCHES "8")
 
412
            IF(NOT SIZEOF_LONG_LONG MATCHES "8")
 
413
                MESSAGE(FATAL_ERROR "No 64-bit types found, please report!")
 
414
            ENDIF()
 
415
        ENDIF()
 
416
    ENDIF()
 
417
ENDIF()
 
418
 
 
419
# Windows needs winmm for timeGetTime, even if the backend is disabled
 
420
CHECK_SHARED_FUNCTION_EXISTS(timeGetTime "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM)
 
421
IF(HAVE_LIBWINMM)
 
422
    SET(EXTRA_LIBS winmm ${EXTRA_LIBS})
 
423
    SET(PKG_CONFIG_LIBS ${PKG_CONFIG_LIBS} -lwinmm)
 
424
ENDIF()
 
425
 
 
426
 
 
427
SET(OPENAL_OBJS  OpenAL32/alAuxEffectSlot.c
 
428
                 OpenAL32/alBuffer.c
 
429
                 OpenAL32/alEffect.c
 
430
                 OpenAL32/alError.c
 
431
                 OpenAL32/alExtension.c
 
432
                 OpenAL32/alFilter.c
 
433
                 OpenAL32/alListener.c
 
434
                 OpenAL32/alSource.c
 
435
                 OpenAL32/alState.c
 
436
                 OpenAL32/alThunk.c
 
437
)
 
438
SET(ALC_OBJS  Alc/ALc.c
 
439
              Alc/ALu.c
 
440
              Alc/alcConfig.c
 
441
              Alc/alcDedicated.c
 
442
              Alc/alcEcho.c
 
443
              Alc/alcModulator.c
 
444
              Alc/alcReverb.c
 
445
              Alc/alcRing.c
 
446
              Alc/alcThread.c
 
447
              Alc/bs2b.c
 
448
              Alc/helpers.c
 
449
              Alc/panning.c
 
450
              Alc/hrtf.c
 
451
              Alc/mixer.c
 
452
              Alc/mixer_c.c
 
453
)
 
454
 
 
455
 
 
456
SET(CPU_EXTS "Default")
 
457
SET(HAVE_SSE  0)
 
458
SET(HAVE_NEON 0)
 
459
 
 
460
# Check for SSE support
 
461
IF(SSE AND ALIGN_DECL)
 
462
    CHECK_INCLUDE_FILE(xmmintrin.h HAVE_XMMINTRIN_H "${SSE_SWITCH}")
 
463
    IF(HAVE_XMMINTRIN_H)
 
464
        SET(HAVE_SSE 1)
 
465
        SET(ALC_OBJS  ${ALC_OBJS} Alc/mixer_sse.c)
 
466
        IF(SSE_SWITCH)
 
467
            SET_SOURCE_FILES_PROPERTIES(Alc/mixer_sse.c PROPERTIES
 
468
                                        COMPILE_FLAGS "${SSE_SWITCH}")
 
469
        ENDIF()
 
470
        SET(CPU_EXTS "${CPU_EXTS}, SSE")
 
471
    ENDIF()
 
472
ENDIF()
 
473
IF(REQUIRE_SSE AND NOT HAVE_SSE)
 
474
    MESSAGE(FATAL_ERROR "Failed to enabled required SSE CPU extensions")
 
475
ENDIF()
 
476
 
 
477
# Check for ARM Neon support
 
478
IF(NEON)
 
479
    CHECK_INCLUDE_FILE(arm_neon.h HAVE_ARM_NEON_H)
 
480
    IF(HAVE_ARM_NEON_H)
 
481
        SET(HAVE_NEON 1)
 
482
        SET(ALC_OBJS  ${ALC_OBJS} Alc/mixer_neon.c)
 
483
        SET(CPU_EXTS "${CPU_EXTS}, Neon")
 
484
    ENDIF()
 
485
ENDIF()
 
486
IF(REQUIRE_NEON AND NOT HAVE_NEON)
 
487
    MESSAGE(FATAL_ERROR "Failed to enabled required ARM Neon CPU extensions")
 
488
ENDIF()
 
489
 
 
490
 
 
491
SET(ALC_OBJS  ${ALC_OBJS}
 
492
              # Default backends, always available
 
493
              Alc/backends/loopback.c
 
494
              Alc/backends/null.c
 
495
)
 
496
 
 
497
SET(BACKENDS "")
 
498
SET(HAVE_ALSA       0)
 
499
SET(HAVE_OSS        0)
 
500
SET(HAVE_SOLARIS    0)
 
501
SET(HAVE_SNDIO      0)
 
502
SET(HAVE_DSOUND     0)
 
503
SET(HAVE_MMDEVAPI   0)
 
504
SET(HAVE_WINMM      0)
 
505
SET(HAVE_PORTAUDIO  0)
 
506
SET(HAVE_PULSEAUDIO 0)
 
507
SET(HAVE_COREAUDIO  0)
 
508
SET(HAVE_OPENSL     0)
 
509
SET(HAVE_WAVE       0)
 
510
 
 
511
# Check ALSA backend
 
512
IF(ALSA)
 
513
    CHECK_INCLUDE_FILE(alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H)
 
514
    IF(HAVE_ALSA_ASOUNDLIB_H)
 
515
        CHECK_SHARED_FUNCTION_EXISTS(snd_pcm_open "alsa/asoundlib.h" asound "" HAVE_LIBASOUND)
 
516
        IF(HAVE_LIBASOUND OR HAVE_DLFCN_H OR WIN32)
 
517
            SET(HAVE_ALSA 1)
 
518
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/alsa.c)
 
519
            IF(HAVE_DLFCN_H OR WIN32)
 
520
                SET(BACKENDS  "${BACKENDS} ALSA,")
 
521
            ELSE()
 
522
                SET(BACKENDS  "${BACKENDS} ALSA \(linked\),")
 
523
                SET(EXTRA_LIBS asound ${EXTRA_LIBS})
 
524
            ENDIF()
 
525
        ENDIF()
 
526
    ENDIF()
 
527
ENDIF()
 
528
IF(REQUIRE_ALSA AND NOT HAVE_ALSA)
 
529
    MESSAGE(FATAL_ERROR "Failed to enabled required ALSA backend")
 
530
ENDIF()
 
531
 
 
532
# Check OSS backend
 
533
IF(OSS)
 
534
    CHECK_INCLUDE_FILE(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
 
535
    IF(HAVE_SYS_SOUNDCARD_H)
 
536
        SET(HAVE_OSS 1)
 
537
        SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/oss.c)
 
538
        SET(BACKENDS  "${BACKENDS} OSS,")
 
539
    ENDIF()
 
540
ENDIF()
 
541
IF(REQUIRE_OSS AND NOT HAVE_OSS)
 
542
    MESSAGE(FATAL_ERROR "Failed to enabled required OSS backend")
 
543
ENDIF()
 
544
 
 
545
# Check Solaris backend
 
546
IF(SOLARIS)
 
547
    CHECK_INCLUDE_FILE(sys/audioio.h HAVE_SYS_AUDIOIO_H)
 
548
    IF(HAVE_SYS_AUDIOIO_H)
 
549
        SET(HAVE_SOLARIS 1)
 
550
        SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/solaris.c)
 
551
        SET(BACKENDS  "${BACKENDS} Solaris,")
 
552
    ENDIF()
 
553
ENDIF()
 
554
IF(REQUIRE_SOLARIS AND NOT HAVE_SOLARIS)
 
555
    MESSAGE(FATAL_ERROR "Failed to enabled required Solaris backend")
 
556
ENDIF()
 
557
 
 
558
# Check SndIO backend
 
559
IF(SNDIO)
 
560
    CHECK_INCLUDE_FILE(sndio.h HAVE_SNDIO_H)
 
561
    IF(HAVE_SNDIO_H)
 
562
        CHECK_SHARED_FUNCTION_EXISTS(sio_open "sndio.h" sndio "" HAVE_LIBSNDIO)
 
563
        IF(HAVE_LIBSNDIO)
 
564
            SET(HAVE_SNDIO 1)
 
565
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/sndio.c)
 
566
            SET(BACKENDS  "${BACKENDS} SndIO \(linked\),")
 
567
            SET(EXTRA_LIBS sndio ${EXTRA_LIBS})
 
568
        ENDIF()
 
569
    ENDIF()
 
570
ENDIF()
 
571
IF(REQUIRE_SNDIO AND NOT HAVE_SNDIO)
 
572
    MESSAGE(FATAL_ERROR "Failed to enabled required SndIO backend")
 
573
ENDIF()
 
574
 
 
575
# Check for MMDevApi backend
 
576
IF(HAVE_WINDOWS_H)
 
577
    IF(MMDEVAPI)
 
578
        CHECK_INCLUDE_FILE(mmdeviceapi.h HAVE_MMDEVICEAPI_H)
 
579
        IF(HAVE_MMDEVICEAPI_H)
 
580
            SET(HAVE_MMDEVAPI 1)
 
581
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/mmdevapi.c)
 
582
 
 
583
            SET(BACKENDS  "${BACKENDS} MMDevApi,")
 
584
        ENDIF()
 
585
    ENDIF()
 
586
ENDIF()
 
587
IF(REQUIRE_MMDEVAPI AND NOT HAVE_MMDEVAPI)
 
588
    MESSAGE(FATAL_ERROR "Failed to enabled required MMDevApi backend")
 
589
ENDIF()
 
590
 
 
591
# Check DSound/MMSystem backend
 
592
IF(DSOUND)
 
593
    CHECK_INCLUDE_FILE(dsound.h HAVE_DSOUND_H)
 
594
    IF(HAVE_DSOUND_H)
 
595
        CHECK_SHARED_FUNCTION_EXISTS(DirectSoundCreate "dsound.h" dsound "" HAVE_LIBDSOUND)
 
596
        IF(HAVE_LIBDSOUND OR HAVE_DLFCN_H OR WIN32)
 
597
            SET(HAVE_DSOUND 1)
 
598
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/dsound.c)
 
599
 
 
600
            IF(HAVE_DLFCN_H OR WIN32)
 
601
                SET(BACKENDS  "${BACKENDS} DirectSound,")
 
602
            ELSE()
 
603
                SET(BACKENDS  "${BACKENDS} DirectSound \(linked\),")
 
604
                SET(EXTRA_LIBS dsound ${EXTRA_LIBS})
 
605
            ENDIF()
 
606
        ENDIF()
 
607
    ENDIF()
 
608
ENDIF()
 
609
IF(REQUIRE_DSOUND AND NOT HAVE_DSOUND)
 
610
    MESSAGE(FATAL_ERROR "Failed to enabled required DSound backend")
 
611
ENDIF()
 
612
 
 
613
IF(HAVE_WINDOWS_H)
 
614
    IF(WINMM)
 
615
        CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0501)
 
616
        IF(HAVE_MMSYSTEM_H AND HAVE_LIBWINMM)
 
617
            SET(HAVE_WINMM 1)
 
618
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/winmm.c)
 
619
            SET(BACKENDS  "${BACKENDS} WinMM,")
 
620
        ENDIF()
 
621
    ENDIF()
 
622
ENDIF()
 
623
IF(REQUIRE_WINMM AND NOT HAVE_WINMM)
 
624
    MESSAGE(FATAL_ERROR "Failed to enabled required WinMM backend")
 
625
ENDIF()
 
626
 
 
627
# Check PortAudio backend
 
628
IF(PORTAUDIO)
 
629
    CHECK_INCLUDE_FILE(portaudio.h HAVE_PORTAUDIO_H)
 
630
    IF(HAVE_PORTAUDIO_H)
 
631
        CHECK_SHARED_FUNCTION_EXISTS(Pa_Initialize "portaudio.h" portaudio "" HAVE_LIBPORTAUDIO)
 
632
        IF(HAVE_LIBPORTAUDIO OR HAVE_DLFCN_H OR WIN32)
 
633
            SET(HAVE_PORTAUDIO 1)
 
634
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/portaudio.c)
 
635
            IF(HAVE_DLFCN_H OR WIN32)
 
636
                SET(BACKENDS  "${BACKENDS} PortAudio,")
 
637
            ELSE()
 
638
                SET(BACKENDS  "${BACKENDS} PortAudio \(linked\),")
 
639
                SET(EXTRA_LIBS portaudio ${EXTRA_LIBS})
 
640
            ENDIF()
 
641
        ENDIF()
 
642
    ENDIF()
 
643
ENDIF()
 
644
IF(REQUIRE_PORTAUDIO AND NOT HAVE_PORTAUDIO)
 
645
    MESSAGE(FATAL_ERROR "Failed to enabled required PortAudio backend")
 
646
ENDIF()
 
647
 
 
648
# Check PulseAudio backend
 
649
IF(PULSEAUDIO)
 
650
    CHECK_INCLUDE_FILE(pulse/pulseaudio.h HAVE_PULSE_PULSEAUDIO_H)
 
651
    IF(HAVE_PULSE_PULSEAUDIO_H)
 
652
        CHECK_SHARED_FUNCTION_EXISTS(pa_context_new "pulse/pulseaudio.h" pulse "" HAVE_LIBPULSE)
 
653
        IF(HAVE_LIBPULSE OR HAVE_DLFCN_H OR WIN32)
 
654
            SET(HAVE_PULSEAUDIO 1)
 
655
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/pulseaudio.c)
 
656
            IF(HAVE_DLFCN_H OR WIN32)
 
657
                SET(BACKENDS  "${BACKENDS} PulseAudio,")
 
658
            ELSE()
 
659
                SET(BACKENDS  "${BACKENDS} PulseAudio \(linked\),")
 
660
                SET(EXTRA_LIBS pulse ${EXTRA_LIBS})
 
661
            ENDIF()
 
662
        ENDIF()
 
663
    ENDIF()
 
664
ENDIF()
 
665
IF(REQUIRE_PULSEAUDIO AND NOT HAVE_PULSEAUDIO)
 
666
    MESSAGE(FATAL_ERROR "Failed to enabled required PulseAudio backend")
 
667
ENDIF()
 
668
 
 
669
# Check CoreAudio backend
 
670
IF(COREAUDIO)
 
671
    CHECK_INCLUDE_FILE(/System/Library/Frameworks/CoreAudio.framework/Headers/CoreAudio.h HAVE_COREAUDIO_FRAMEWORK)
 
672
    IF(HAVE_COREAUDIO_FRAMEWORK)
 
673
        SET(HAVE_COREAUDIO 1)
 
674
        SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/coreaudio.c)
 
675
        SET(BACKENDS  "${BACKENDS} CoreAudio,")
 
676
        SET(EXTRA_LIBS /System/Library/Frameworks/CoreAudio.framework ${EXTRA_LIBS})
 
677
        SET(EXTRA_LIBS /System/Library/Frameworks/AudioUnit.framework ${EXTRA_LIBS})
 
678
        SET(EXTRA_LIBS /System/Library/Frameworks/ApplicationServices.framework ${EXTRA_LIBS})
 
679
 
 
680
        # Some versions of OSX may need the AudioToolbox framework. Add it if
 
681
        # it's found.
 
682
        FIND_LIBRARY(AUDIOTOOLBOX_LIBRARY
 
683
                     NAMES AudioToolbox
 
684
                     PATHS ~/Library/Frameworks
 
685
                           /Library/Frameworks
 
686
                           /System/Library/Frameworks
 
687
                    )
 
688
        IF(AUDIOTOOLBOX_LIBRARY)
 
689
            SET(EXTRA_LIBS ${AUDIOTOOLBOX_LIBRARY} ${EXTRA_LIBS})
 
690
        ENDIF()
 
691
    ENDIF()
 
692
ENDIF()
 
693
IF(REQUIRE_COREAUDIO AND NOT HAVE_COREAUDIO)
 
694
    MESSAGE(FATAL_ERROR "Failed to enabled required CoreAudio backend")
 
695
ENDIF()
 
696
 
 
697
# Check for OpenSL (Android) backend
 
698
IF(OPENSL)
 
699
    CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_Android.h" HAVE_SLES_OPENSLES_ANDROID_H)
 
700
    IF(HAVE_SLES_OPENSLES_ANDROID_H)
 
701
        CHECK_SHARED_FUNCTION_EXISTS(slCreateEngine "SLES/OpenSLES.h" OpenSLES "" HAVE_LIBOPENSLES)
 
702
        IF(HAVE_LIBOPENSLES)
 
703
            SET(HAVE_OPENSL 1)
 
704
            SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/opensl.c)
 
705
            SET(BACKENDS  "${BACKENDS} OpenSL,")
 
706
            SET(EXTRA_LIBS OpenSLES ${EXTRA_LIBS})
 
707
        ENDIF()
 
708
    ENDIF()
 
709
ENDIF()
 
710
IF(REQUIRE_OPENSL AND NOT HAVE_OPENSL)
 
711
    MESSAGE(FATAL_ERROR "Failed to enabled required OpenSL backend")
 
712
ENDIF()
 
713
 
 
714
# Optionally enable the Wave Writer backend
 
715
IF(WAVE)
 
716
    SET(HAVE_WAVE 1)
 
717
    SET(ALC_OBJS  ${ALC_OBJS} Alc/backends/wave.c)
 
718
    SET(BACKENDS  "${BACKENDS} WaveFile,")
 
719
ENDIF()
 
720
 
 
721
# This is always available
 
722
SET(BACKENDS  "${BACKENDS} Null")
 
723
 
 
724
IF(EXAMPLES)
 
725
    # Might be able to use earlier versions, but these definitely work
 
726
    PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100)
 
727
ENDIF()
 
728
 
 
729
IF(LIBTYPE STREQUAL "STATIC")
 
730
    ADD_DEFINITIONS(-DAL_LIBTYPE_STATIC)
 
731
    SET(PKG_CONFIG_CFLAGS -DAL_LIBTYPE_STATIC ${PKG_CONFIG_CFLAGS})
 
732
ENDIF()
 
733
 
 
734
# Needed for openal.pc.in
 
735
SET(prefix ${CMAKE_INSTALL_PREFIX})
 
736
SET(exec_prefix "\${prefix}")
 
737
SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}")
 
738
SET(bindir "\${exec_prefix}/bin")
 
739
SET(includedir "\${prefix}/include")
 
740
SET(PACKAGE_VERSION "${LIB_VERSION}")
 
741
 
 
742
# End configuration
 
743
CONFIGURE_FILE(
 
744
    "${OpenAL_SOURCE_DIR}/config.h.in"
 
745
    "${OpenAL_BINARY_DIR}/config.h")
 
746
CONFIGURE_FILE(
 
747
    "${OpenAL_SOURCE_DIR}/openal.pc.in"
 
748
    "${OpenAL_BINARY_DIR}/openal.pc"
 
749
    @ONLY)
 
750
 
 
751
# Build a library
 
752
ADD_LIBRARY(${LIBNAME} ${LIBTYPE} ${OPENAL_OBJS} ${ALC_OBJS})
 
753
SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES DEFINE_SYMBOL AL_BUILD_LIBRARY
 
754
                                            COMPILE_FLAGS -DAL_ALEXT_PROTOTYPES
 
755
                                            VERSION ${LIB_VERSION}
 
756
                                            SOVERSION ${LIB_MAJOR_VERSION})
 
757
IF(WIN32 AND NOT LIBTYPE STREQUAL "STATIC")
 
758
    SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES PREFIX "")
 
759
ENDIF()
 
760
 
 
761
TARGET_LINK_LIBRARIES(${LIBNAME} ${EXTRA_LIBS})
 
762
 
 
763
# Add an install target here
 
764
INSTALL(TARGETS ${LIBNAME}
 
765
        RUNTIME DESTINATION bin
 
766
        LIBRARY DESTINATION "lib${LIB_SUFFIX}"
 
767
        ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
 
768
)
 
769
INSTALL(FILES include/AL/al.h
 
770
              include/AL/alc.h
 
771
              include/AL/alext.h
 
772
              include/AL/efx.h
 
773
              include/AL/efx-creative.h
 
774
              include/AL/efx-presets.h
 
775
        DESTINATION include/AL
 
776
)
 
777
INSTALL(FILES "${OpenAL_BINARY_DIR}/openal.pc"
 
778
        DESTINATION "lib${LIB_SUFFIX}/pkgconfig")
 
779
 
 
780
 
 
781
MESSAGE(STATUS "")
 
782
MESSAGE(STATUS "Building OpenAL with support for the following backends:")
 
783
MESSAGE(STATUS "    ${BACKENDS}")
 
784
MESSAGE(STATUS "")
 
785
MESSAGE(STATUS "Building with support for CPU extensions:")
 
786
MESSAGE(STATUS "    ${CPU_EXTS}")
 
787
MESSAGE(STATUS "")
 
788
 
 
789
IF(WIN32)
 
790
    IF(NOT HAVE_DSOUND)
 
791
        MESSAGE(STATUS "WARNING: Building the Windows version without DirectSound output")
 
792
        MESSAGE(STATUS "         This is probably NOT what you want!")
 
793
        MESSAGE(STATUS "")
 
794
    ENDIF()
 
795
ENDIF()
 
796
 
 
797
# Install alsoft.conf configuration file
 
798
IF(ALSOFT_CONFIG)
 
799
    INSTALL(FILES alsoftrc.sample
 
800
            DESTINATION share/openal
 
801
    )
 
802
    MESSAGE(STATUS "Installing sample configuration")
 
803
    MESSAGE(STATUS "")
 
804
ENDIF()
 
805
 
 
806
IF(UTILS)
 
807
    ADD_EXECUTABLE(openal-info utils/openal-info.c)
 
808
    TARGET_LINK_LIBRARIES(openal-info ${LIBNAME})
 
809
 
 
810
    ADD_EXECUTABLE(makehrtf utils/makehrtf.c)
 
811
    IF(HAVE_LIBM)
 
812
        TARGET_LINK_LIBRARIES(makehrtf m)
 
813
    ENDIF()
 
814
 
 
815
    INSTALL(TARGETS openal-info makehrtf
 
816
            RUNTIME DESTINATION bin
 
817
            LIBRARY DESTINATION "lib${LIB_SUFFIX}"
 
818
            ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
 
819
    )
 
820
    MESSAGE(STATUS "Building utility programs")
 
821
    MESSAGE(STATUS "")
 
822
ENDIF()
 
823
 
 
824
IF(EXAMPLES)
 
825
    IF(FFMPEG_FOUND)
 
826
        ADD_EXECUTABLE(alstream examples/common/alhelpers.c
 
827
                                examples/common/alffmpeg.c
 
828
                                examples/alstream.c)
 
829
        TARGET_LINK_LIBRARIES(alstream ${FFMPEG_LIBRARIES} ${LIBNAME})
 
830
        SET_TARGET_PROPERTIES(alstream PROPERTIES COMPILE_FLAGS "${FFMPEG_CFLAGS}")
 
831
 
 
832
        ADD_EXECUTABLE(alreverb examples/common/alhelpers.c
 
833
                                examples/common/alffmpeg.c
 
834
                                examples/alreverb.c)
 
835
        TARGET_LINK_LIBRARIES(alreverb ${FFMPEG_LIBRARIES} ${LIBNAME})
 
836
        SET_TARGET_PROPERTIES(alreverb PROPERTIES COMPILE_FLAGS "${FFMPEG_CFLAGS}")
 
837
 
 
838
        ADD_EXECUTABLE(allatency examples/common/alhelpers.c
 
839
                                 examples/common/alffmpeg.c
 
840
                                 examples/allatency.c)
 
841
        TARGET_LINK_LIBRARIES(allatency ${FFMPEG_LIBRARIES} ${LIBNAME})
 
842
        SET_TARGET_PROPERTIES(allatency PROPERTIES COMPILE_FLAGS "${FFMPEG_CFLAGS}")
 
843
 
 
844
        INSTALL(TARGETS alstream alreverb allatency
 
845
                RUNTIME DESTINATION bin
 
846
                LIBRARY DESTINATION "lib${LIB_SUFFIX}"
 
847
                ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
 
848
        )
 
849
 
 
850
        MESSAGE(STATUS "Building ffmpeg example programs")
 
851
        MESSAGE(STATUS "")
 
852
    ENDIF()
 
853
ENDIF()