Remove the GStreamer decoder
[alure.git] / CMakeLists.txt
blob0fef51f22cbf61e08f88b8371ea0c42ace19a035
1 # CMakeLists.txt for ALURE
2 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
4 IF(COMMAND CMAKE_POLICY)
5     CMAKE_POLICY(SET CMP0003 NEW)
6 ENDIF(COMMAND CMAKE_POLICY)
8 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
10 INCLUDE(CheckCCompilerFlag)
11 INCLUDE(CheckCSourceCompiles)
12 INCLUDE(CheckFunctionExists)
13 INCLUDE(CheckIncludeFile)
14 INCLUDE(CheckIncludeFiles)
15 INCLUDE(CheckLibraryExists)
16 INCLUDE(CheckSharedLibraryExists)
17 INCLUDE(FindPkgConfig)
18 INCLUDE(UsePkgConfig)
19 INCLUDE(CheckFileOffsetBits)
21 PROJECT(ALURE)
23 IF(WIN32)
24     SET(LIBNAME ALURE32)
25 ELSE(WIN32)
26     SET(LIBNAME alure)
27 ENDIF(WIN32)
29 SET(LIB_MAJOR_VERSION "1")
30 SET(LIB_MINOR_VERSION "0")
31 SET(LIB_BUILD_VERSION "72")
32 SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_BUILD_VERSION}")
33 IF(NOT DEFINED LIB_INSTALL_DIR)
34     SET(LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
35 ENDIF(NOT DEFINED LIB_INSTALL_DIR)
38 INCLUDE_DIRECTORIES(include "${ALURE_BINARY_DIR}")
41 OPTION(NO_SHARED "Build a static library instead of shared" OFF)
43 IF(NOT CMAKE_BUILD_TYPE)
44     SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
45         "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
46         FORCE)
47 ENDIF(NOT CMAKE_BUILD_TYPE)
48 IF(NOT DEFINED CMAKE_DEBUG_POSTFIX)
49     SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING
50         "Library postfix for debug builds. Normally left blank."
51         FORCE)
52 ENDIF(NOT DEFINED CMAKE_DEBUG_POSTFIX)
55 ADD_DEFINITIONS(-DALURE_BUILD_LIBRARY -DHAVE_CONFIG_H)
57 CHECK_SHARED_LIBRARY_EXISTS(stdc++ memset "" HAS_STDCXX)
58 IF(HAS_STDCXX)
59     SET(EXTRA_LIBS stdc++ ${EXTRA_LIBS})
60 ENDIF(HAS_STDCXX)
62 CHECK_SHARED_LIBRARY_EXISTS(m pow "" HAS_LIBM)
63 IF(HAS_LIBM)
64     SET(EXTRA_LIBS m ${EXTRA_LIBS})
65 ENDIF(HAS_LIBM)
67 CHECK_FILE_OFFSET_BITS()
68 IF(_FILE_OFFSET_BITS)
69     ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=${_FILE_OFFSET_BITS})
70     SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=${_FILE_OFFSET_BITS})
71 ENDIF(_FILE_OFFSET_BITS)
73 CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO)
75 IF(MSVC)
76     # ???
77 ELSE(MSVC)
78     IF(NOT WIN32)
79         CHECK_C_SOURCE_COMPILES("int foo() __attribute__((constructor));
80                                  int main() {return 0;}" HAVE_GCC_CONSTRUCTOR)
82         CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
83         IF(HAVE_GCC_VISIBILITY)
84             ADD_DEFINITIONS(-fvisibility=hidden)
85         ENDIF(HAVE_GCC_VISIBILITY)
86     ENDIF(NOT WIN32)
88     CHECK_C_COMPILER_FLAG(-Wextra HAVE_WEXTRA)
89     IF(HAVE_WEXTRA)
90         ADD_DEFINITIONS(-Wextra)
91     ENDIF(HAVE_WEXTRA)
92     ADD_DEFINITIONS(-Wall)
94     CHECK_C_COMPILER_FLAG(-funswitch-loops HAVE_FUNSWITCH_LOOPS)
95     IF(HAVE_FUNSWITCH_LOOPS)
96         ADD_DEFINITIONS(-funswitch-loops)
97     ENDIF(HAVE_FUNSWITCH_LOOPS)
98 ENDIF(MSVC)
101 CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H -D_WIN32_WINNT=0x0500)
102 IF(NOT HAVE_WINDOWS_H)
103     CHECK_C_COMPILER_FLAG(-pthread HAVE_PTHREAD)
104     IF(HAVE_PTHREAD)
105         ADD_DEFINITIONS(-pthread)
106         SET(EXTRA_LIBS ${EXTRA_LIBS} -pthread)
107     ENDIF(HAVE_PTHREAD)
109     # We need pthreads outside of Windows
110     CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
111     IF(NOT HAVE_PTHREAD_H)
112         MESSAGE(FATAL_ERROR "PThreads is required for non-Windows builds!")
113     ENDIF()
114     # Some systems need pthread_np.h to get recursive mutexes
115     CHECK_INCLUDE_FILES("pthread.h;pthread_np.h" HAVE_PTHREAD_NP_H)
117     # _GNU_SOURCE is needed on some systems for extra attributes, and
118     # _REENTRANT is needed for libc thread-safety
119     ADD_DEFINITIONS(-D_GNU_SOURCE=1)
120     CHECK_FUNCTION_EXISTS(pthread_create HAS_PTHREAD_CREATE)
121     IF(NOT HAS_PTHREAD_CREATE)
122         CHECK_SHARED_LIBRARY_EXISTS(pthread pthread_create "" HAVE_LIBPTHREAD)
123         IF(NOT HAVE_LIBPTHREAD)
124             MESSAGE(FATAL_ERROR "pthread_create not found on non-Windows target!")
125         ENDIF(NOT HAVE_LIBPTHREAD)
126         SET(EXTRA_LIBS pthread ${EXTRA_LIBS})
127     ENDIF(NOT HAS_PTHREAD_CREATE)
129     CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
130     IF(NOT HAVE_NANOSLEEP)
131         MESSAGE(FATAL_ERROR "No sleep function found!")
132     ENDIF(NOT HAVE_NANOSLEEP)
133 ENDIF(NOT HAVE_WINDOWS_H)
135 CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
136 CHECK_INCLUDE_FILE(sys/wait.h HAVE_SYS_WAIT_H)
137 CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H)
138 CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
140 IF(HAVE_DLFCN_H)
141     CHECK_SHARED_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL)
142     IF(HAVE_LIBDL)
143         SET(EXTRA_LIBS dl ${EXTRA_LIBS})
144     ENDIF(HAVE_LIBDL)
145 ENDIF(HAVE_DLFCN_H)
147 OPTION(DYNLOAD   "Dynamically load support libs at run-time" ON)
148 OPTION(SNDFILE   "SoundFile support (for various formats)" ON)
149 OPTION(VORBIS    "VorbisFile support (for Ogg Vorbis)"  ON)
150 OPTION(FLAC      "FLAC support (for FLAC and Ogg FLAC)" ON)
151 OPTION(MPG123    "MPG123 support (for MP1/MP2/MP3)" ON)
152 OPTION(DUMB      "DUMB support (for IT/XM/S3M/MOD)" ON)
153 OPTION(TIMIDITY  "Timidity support (for MIDI/MUS)" ON)
155 IF(WIN32)
156     ADD_DEFINITIONS(-D_WIN32)
158     IF(CMAKE_SIZEOF_VOID_P MATCHES "8")
159         SET(WIN_TYPE Win64)
160         SET(XBITS x64)
161     ELSE(CMAKE_SIZEOF_VOID_P MATCHES "8")
162         SET(WIN_TYPE Win32)
163         SET(XBITS x86)
164     ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
166     SET(OPENAL_SEARCH_PATHS
167         ENV ALSDK_DIR
168         ENV MINGDIR
169         "C:/Program Files/OpenAL 1.1 SDK"
170         "C:/Program Files (x86)/OpenAL 1.1 SDK"
171         "E:/Programs/Dev/OpenAL"
172         "E:/Program Files (x86)/OpenAL 1.1 SDK" )
174     FIND_PATH(OPENAL_INCLUDE_DIR al.h
175               PATHS ${OPENAL_SEARCH_PATHS}
176               PATH_SUFFIXES include include/AL )
177     IF(OPENAL_INCLUDE_DIR)
178         INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
179         FIND_LIBRARY(OPENAL_LIBRARIES OpenAL32
180                      PATHS ${OPENAL_SEARCH_PATHS}
181                      PATH_SUFFIXES lib libs/${WIN_TYPE} )
182     ENDIF(OPENAL_INCLUDE_DIR)
184     IF(NOT OPENAL_LIBRARIES)
185         MESSAGE(FATAL_ERROR "OpenAL not found!\nPlease try setting the ALSDK_DIR environment variable and try again.")
186     ENDIF(NOT OPENAL_LIBRARIES)
188     MESSAGE(STATUS "OpenAL include: ${OPENAL_INCLUDE_DIR}")
189     MESSAGE(STATUS "OpenAL lib: ${OPENAL_LIBRARIES}")
190 ELSE(WIN32)
191     IF(NOT HAVE_DLFCN_H OR NOT HAVE_LIBDL)
192         SET(DYNLOAD OFF)
193     ENDIF(NOT HAVE_DLFCN_H OR NOT HAVE_LIBDL)
195     PKG_CHECK_MODULES(OPENAL openal)
196     IF(NOT OPENAL_FOUND)
197         IF(APPLE)
198             CHECK_INCLUDE_FILE(OpenAL/al.h HAVE_OPENAL_AL_H)
199             IF(HAVE_OPENAL_AL_H)
200                 SET(OPENAL_LIBRARIES "-framework OpenAL")
201                 SET(HAS_OPENAL 1)
202             ENDIF(HAVE_OPENAL_AL_H)
203         ELSE(APPLE)
204             CHECK_INCLUDE_FILE(AL/al.h HAVE_AL_AL_H)
205             IF(HAVE_AL_AL_H)
206                 CHECK_SHARED_LIBRARY_EXISTS(openal alcOpenDevice "" HAS_OPENAL)
207                 IF(HAS_OPENAL)
208                     SET(OPENAL_LIBRARIES openal)
209                 ENDIF(HAS_OPENAL)
210             ENDIF(HAVE_AL_AL_H)
211         ENDIF(APPLE)
212         IF(NOT HAS_OPENAL)
213             MESSAGE(FATAL_ERROR "OpenAL not found!")
214         ENDIF(NOT HAS_OPENAL)
215     ELSE(NOT OPENAL_FOUND)
216         INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIRS})
217         LINK_DIRECTORIES(${OPENAL_LIBRARY_DIRS})
218     ENDIF(NOT OPENAL_FOUND)
219 ENDIF(WIN32)
221 # SndFile support
222 IF(SNDFILE)
223     PKG_CHECK_MODULES(SNDFILE sndfile)
224     IF(NOT SNDFILE_FOUND)
225         CHECK_INCLUDE_FILE(sndfile.h HAVE_SNDFILE_H)
226         IF(HAVE_SNDFILE_H)
227             CHECK_SHARED_LIBRARY_EXISTS(sndfile sf_open "" HAVE_LIBSNDFILE)
228             CHECK_SHARED_LIBRARY_EXISTS(libsndfile-1 sf_open "" HAVE_LIBSNDFILE1)
229             IF(DYNLOAD OR HAVE_LIBSNDFILE OR HAVE_LIBSNDFILE1)
230                 SET(HAS_SNDFILE 1)
231                 IF(HAVE_LIBSNDFILE)
232                     SET(SNDFILE_LIBRARIES "sndfile")
233                 ELSEIF(HAVE_LIBSNDFILE1)
234                     SET(SNDFILE_LIBRARIES "libsndfile-1")
235                 ENDIF(HAVE_LIBSNDFILE)
236             ENDIF(DYNLOAD OR HAVE_LIBSNDFILE OR HAVE_LIBSNDFILE1)
237         ENDIF(HAVE_SNDFILE_H)
238     ELSE(NOT SNDFILE_FOUND)
239         SET(HAS_SNDFILE 1)
240         INCLUDE_DIRECTORIES(${SNDFILE_INCLUDE_DIRS})
241         LINK_DIRECTORIES(${SNDFILE_LIBRARY_DIRS})
242     ENDIF(NOT SNDFILE_FOUND)
243 ELSE(SNDFILE)
244     SET(SNDFILE_LIBRARIES "")
245 ENDIF(SNDFILE)
247 # Vorbis support
248 IF(VORBIS)
249     PKG_CHECK_MODULES(VORBISFILE vorbisfile)
250     IF(NOT VORBISFILE_FOUND)
251         CHECK_INCLUDE_FILE(vorbis/vorbisfile.h HAVE_VORBIS_VORBISFILE_H)
252         IF(HAVE_VORBIS_VORBISFILE_H)
253             CHECK_SHARED_LIBRARY_EXISTS(vorbisfile ov_open "" HAVE_LIBVORBISFILE)
254             IF(DYNLOAD OR HAVE_LIBVORBISFILE)
255                 SET(HAS_VORBISFILE 1)
256                 IF(HAVE_LIBVORBISFILE)
257                     SET(VORBISFILE_LIBRARIES "vorbisfile")
258                 ENDIF(HAVE_LIBVORBISFILE)
259             ENDIF(DYNLOAD OR HAVE_LIBVORBISFILE)
260         ENDIF(HAVE_VORBIS_VORBISFILE_H)
261     ELSE(NOT VORBISFILE_FOUND)
262         SET(HAS_VORBISFILE 1)
263         INCLUDE_DIRECTORIES(${VORBISFILE_INCLUDE_DIRS})
264         LINK_DIRECTORIES(${VORBISFILE_LIBRARY_DIRS})
265     ENDIF(NOT VORBISFILE_FOUND)
266 ELSE(VORBIS)
267     SET(VORBISFILE_LIBRARIES "")
268 ENDIF(VORBIS)
270 # FLAC support
271 IF(FLAC)
272     #PKG_CHECK_MODULES(LIBFLAC flac)
273     #IF(NOT LIBFLAC_FOUND)
274         CHECK_INCLUDE_FILE(FLAC/all.h HAVE_FLAC_ALL_H)
275         IF(HAVE_FLAC_ALL_H)
276             CHECK_SHARED_LIBRARY_EXISTS(FLAC FLAC__stream_decoder_new "" HAVE_LIBFLAC)
277             IF(DYNLOAD OR HAVE_LIBFLAC)
278                 SET(HAS_FLAC 1)
279                 IF(HAVE_LIBFLAC)
280                     SET(LIBFLAC_LIBRARIES "FLAC")
281                 ENDIF(HAVE_LIBFLAC)
282             ENDIF(DYNLOAD OR HAVE_LIBFLAC)
283         ENDIF(HAVE_FLAC_ALL_H)
284     #ELSE(NOT LIBFLAC)
285     #    SET(HAS_FLAC 1)
286     #    INCLUDE_DIRECTORIES(${LIBFLAC_INCLUDE_DIRS})
287     #    LINK_DIRECTORIES(${LIBFLAC_LIBRARY_DIRS})
288     #ENDIF(NOT LIBFLAC_FOUND)
289 ELSE(FLAC)
290     SET(LIBFLAC_LIBRARIES "")
291 ENDIF(FLAC)
293 # MPG123 support
294 IF(MPG123)
295     PKG_CHECK_MODULES(MPG123 libmpg123)
296     IF(NOT MPG123_FOUND)
297         CHECK_INCLUDE_FILE(mpg123.h HAVE_MPG123_H)
298         IF(HAVE_MPG123_H)
299             CHECK_SHARED_LIBRARY_EXISTS(mpg123 mpg123_init "" HAVE_LIBMPG123)
300             IF(DYNLOAD OR HAVE_LIBMPG123)
301                 SET(HAS_MPG123 1)
302                 IF(HAVE_LIBMPG123)
303                     SET(MPG123_LIBRARIES "mpg123")
304                 ENDIF(HAVE_LIBMPG123)
305             ENDIF(DYNLOAD OR HAVE_LIBMPG123)
306         ENDIF(HAVE_MPG123_H)
307     ELSE(NOT MPG123_FOUND)
308         SET(HAS_MPG123 1)
309         INCLUDE_DIRECTORIES(${MPG123_INCLUDE_DIRS})
310         LINK_DIRECTORIES(${MPG123_LIBRARY_DIRS})
311     ENDIF(NOT MPG123_FOUND)
312 ELSE(MPG123)
313     SET(MPG123_LIBRARIES "")
314 ENDIF(MPG123)
316 # DUMB support
317 IF(DUMB)
318     CHECK_INCLUDE_FILE(dumb.h HAVE_DUMB_H)
319     IF(HAVE_DUMB_H)
320         IF(HAS_LIBM)
321             CHECK_SHARED_LIBRARY_EXISTS("dumb;m" dumbfile_open_ex "" HAVE_LIBDUMB)
322         ELSE(HAS_LIBM)
323             CHECK_SHARED_LIBRARY_EXISTS(dumb dumbfile_open_ex "" HAVE_LIBDUMB)
324         ENDIF(HAS_LIBM)
325         IF(DYNLOAD OR HAVE_LIBDUMB)
326             SET(HAS_DUMB 1)
327             IF(HAVE_LIBDUMB)
328                 SET(DUMB_LIBRARIES dumb)
329             ENDIF(HAVE_LIBDUMB)
330         ENDIF(DYNLOAD OR HAVE_LIBDUMB)
331     ENDIF(HAVE_DUMB_H)
332 ELSE(DUMB)
333     SET(DUMB_LIBRARIES "")
334 ENDIF(DUMB)
336 IF(TIMIDITY)
337     CHECK_FUNCTION_EXISTS(fork HAVE_FORK)
338     CHECK_FUNCTION_EXISTS(pipe HAVE_PIPE)
339     CHECK_FUNCTION_EXISTS(kill HAVE_KILL)
340     CHECK_FUNCTION_EXISTS(open HAVE_OPEN)
341     IF(WIN32 OR (HAVE_OPEN AND HAVE_KILL AND HAVE_PIPE AND HAVE_FORK))
342         SET(HAS_TIMIDITY 1)
343     ELSE(WIN32 OR (HAVE_OPEN AND HAVE_KILL AND HAVE_PIPE AND HAVE_FORK))
344         SET(HAS_TIMIDITY 0)
345     ENDIF(WIN32 OR (HAVE_OPEN AND HAVE_KILL AND HAVE_PIPE AND HAVE_FORK))
346 ENDIF(TIMIDITY)
349 IF(NOT DYNLOAD)
350     SET(EXTRA_LIBS ${SNDFILE_LIBRARIES} ${VORBISFILE_LIBRARIES} ${LIBFLAC_LIBRARIES} ${MPG123_LIBRARIES} ${DUMB_LIBRARIES} ${EXTRA_LIBS})
351 ELSE(NOT DYNLOAD)
352     ADD_DEFINITIONS(-DDYNLOAD=1)
353 ENDIF(NOT DYNLOAD)
355 # For alure.pc.in
356 SET(prefix ${CMAKE_INSTALL_PREFIX})
357 SET(exec_prefix "\${prefix}")
358 SET(libdir "\${exec_prefix}/${LIB_INSTALL_DIR}")
359 SET(bindir "\${exec_prefix}/bin")
360 SET(includedir "\${prefix}/include")
361 SET(PKG_CONFIG_REQUIRES openal)
362 SET(PACKAGE_VERSION "${LIB_VERSION}")
364 # End configuration
365 CONFIGURE_FILE(
366     "${ALURE_SOURCE_DIR}/config.h.in"
367     "${ALURE_BINARY_DIR}/config.h")
368 CONFIGURE_FILE(
369     "${ALURE_SOURCE_DIR}/alure.pc.in"
370     "${ALURE_BINARY_DIR}/alure.pc"
371     @ONLY)
374 SET(ALURE_OBJS  src/alure.cpp
375                 src/buffer.cpp
376                 src/istream.cpp
377                 src/stream.cpp
378                 src/streamdec.cpp
379                 src/streamplay.cpp
382 IF(NOT NO_SHARED)
383     #build a shared library
384     ADD_LIBRARY(${LIBNAME} SHARED ${ALURE_OBJS})
385     SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES VERSION ${LIB_VERSION}
386                                                 SOVERSION ${LIB_MAJOR_VERSION})
387     IF(WIN32)
388         SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES PREFIX "")
389     ENDIF(WIN32)
390     TARGET_LINK_LIBRARIES(${LIBNAME} ${OPENAL_LIBRARIES} ${GST_LIBRARIES} ${EXTRA_LIBS})
391 ELSE(NOT NO_SHARED)
392     #build a static library
393     ADD_LIBRARY(${LIBNAME} STATIC ${ALURE_OBJS})
394     SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES VERSION ${LIB_VERSION})
395 ENDIF(NOT NO_SHARED)
398 ADD_EXECUTABLE(alureplay examples/alureplay.c)
399 TARGET_LINK_LIBRARIES(alureplay ${LIBNAME} ${OPENAL_LIBRARIES} ${GST_LIBRARIES} ${EXTRA_LIBS})
401 ADD_EXECUTABLE(alurestream examples/alurestream.c)
402 TARGET_LINK_LIBRARIES(alurestream ${LIBNAME} ${OPENAL_LIBRARIES} ${GST_LIBRARIES} ${EXTRA_LIBS})
405 FIND_PROGRAM(NATDOCS_BIN NaturalDocs)
406 IF(NATDOCS_BIN)
407     ADD_CUSTOM_TARGET(docs
408                       "${NATDOCS_BIN}" -i "${ALURE_SOURCE_DIR}/src" -o HTML "${ALURE_SOURCE_DIR}/docs/html" -p "${ALURE_SOURCE_DIR}/docs/naturaldocs" -s Default CustomStyle
409                       COMMENT "Building NaturalDocs documentation..." VERBATIM)
410 ELSE(NATDOCS_BIN)
411     MESSAGE(STATUS "\nNaturalDocs not found; building documentation is disabled")
412 ENDIF(NATDOCS_BIN)
415 #add an install target here
416 IF(APPLE)
417     SET(INCPATH OpenAL)
418 ELSE(APPLE)
419     SET(INCPATH AL)
420 ENDIF(APPLE)
422 INSTALL(DIRECTORY "${ALURE_SOURCE_DIR}/docs/html"
423         DESTINATION share/doc/alure
425 INSTALL(TARGETS ${LIBNAME}
426         RUNTIME DESTINATION bin
427         LIBRARY DESTINATION ${LIB_INSTALL_DIR}
428         ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
430 INSTALL(FILES include/AL/alure.h
431         DESTINATION "include/${INCPATH}"
433 INSTALL(FILES "${ALURE_BINARY_DIR}/alure.pc"
434         DESTINATION "${LIB_INSTALL_DIR}/pkgconfig"
438 MESSAGE(STATUS "\n********************** Configured options **********************")
439 IF(NO_SHARED)
440     MESSAGE(STATUS "Building static library")
441 ELSE(NO_SHARED)
442     MESSAGE(STATUS "Building shared library")
443 ENDIF(NO_SHARED)
444 MESSAGE(STATUS "")
445 IF(HAS_SNDFILE)
446     MESSAGE(STATUS "SndFile support: enabled")
447 ELSE(HAS_SNDFILE)
448     MESSAGE(STATUS "SndFile support: disabled")
449 ENDIF(HAS_SNDFILE)
450 IF(HAS_VORBISFILE)
451     MESSAGE(STATUS "VorbisFile support: enabled")
452 ELSE(HAS_VORBISFILE)
453     MESSAGE(STATUS "VorbisFile support: disabled")
454 ENDIF(HAS_VORBISFILE)
455 IF(HAS_FLAC)
456     MESSAGE(STATUS "FLAC support: enabled")
457 ELSE(HAS_FLAC)
458     MESSAGE(STATUS "FLAC support: disabled")
459 ENDIF(HAS_FLAC)
460 IF(HAS_MPG123)
461     MESSAGE(STATUS "MPG123 support: enabled")
462 ELSE(HAS_MPG123)
463     MESSAGE(STATUS "MPG123 support: disabled")
464 ENDIF(HAS_MPG123)
465 IF(HAS_DUMB)
466     MESSAGE(STATUS "DUMB support: enabled")
467 ELSE(HAS_DUMB)
468     MESSAGE(STATUS "DUMB support: disabled")
469 ENDIF(HAS_DUMB)
470 IF(HAS_TIMIDITY)
471     MESSAGE(STATUS "Timidity support: enabled")
472 ELSE(HAS_TIMIDTY)
473     MESSAGE(STATUS "Timidity support: disabled")
474 ENDIF(HAS_TIMIDITY)
475 MESSAGE(STATUS "")