Mercurial > audio-send
diff CMakeLists-works.txt @ 0:f9476ff7637e
initial forking of open-al to create multiple listeners
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 25 Oct 2011 13:02:31 -0700 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/CMakeLists-works.txt Tue Oct 25 13:02:31 2011 -0700 1.3 @@ -0,0 +1,431 @@ 1.4 +# CMake build file list for OpenAL 1.5 + 1.6 +CMAKE_MINIMUM_REQUIRED(VERSION 2.4) 1.7 + 1.8 +IF(COMMAND CMAKE_POLICY) 1.9 + CMAKE_POLICY(SET CMP0003 NEW) 1.10 +ENDIF(COMMAND CMAKE_POLICY) 1.11 + 1.12 +SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") 1.13 + 1.14 +INCLUDE(CheckFunctionExists) 1.15 +INCLUDE(CheckLibraryExists) 1.16 +INCLUDE(CheckSharedFunctionExists) 1.17 +INCLUDE(CheckIncludeFile) 1.18 +INCLUDE(CheckIncludeFiles) 1.19 +INCLUDE(CheckSymbolExists) 1.20 +INCLUDE(CheckCCompilerFlag) 1.21 +INCLUDE(CheckCSourceCompiles) 1.22 +INCLUDE(CheckTypeSize) 1.23 + 1.24 + 1.25 +PROJECT(OpenAL C) 1.26 + 1.27 + 1.28 +SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) 1.29 + 1.30 + 1.31 +OPTION(ALSA "Check for ALSA backend" ON) 1.32 +OPTION(OSS "Check for OSS backend" ON) 1.33 +OPTION(SOLARIS "Check for Solaris backend" ON) 1.34 +OPTION(SNDIO "Check for SndIO backend" ON) 1.35 +OPTION(MMDEVAPI "Check for MMDevApi" ON) 1.36 +OPTION(DSOUND "Check for DirectSound backend" ON) 1.37 +OPTION(WINMM "Check for Windows Multimedia backend" ON) 1.38 +OPTION(PORTAUDIO "Check for PortAudio backend" ON) 1.39 +OPTION(PULSEAUDIO "Check for PulseAudio backend" ON) 1.40 +OPTION(COREAUDIO "Check for CoreAudio backend" ON) 1.41 +OPTION(OPENSL "Check for OpenSL backend" ON) 1.42 +OPTION(WAVE "Enable Wave Writer backend" ON) 1.43 +OPTION(RECORD "Enable Recorder Backend" ON) 1.44 + 1.45 +OPTION(REQUIRE_ALSA "Require ALSA backend" OFF) 1.46 +OPTION(REQUIRE_OSS "Require OSS backend" OFF) 1.47 +OPTION(REQUIRE_SOLARIS "Require Solaris backend" OFF) 1.48 +OPTION(REQUIRE_SNDIO "Require SndIO backend" OFF) 1.49 +OPTION(REQUIRE_MMDEVAPI "Require MMDevApi" OFF) 1.50 +OPTION(REQUIRE_DSOUND "Require DirectSound backend" OFF) 1.51 +OPTION(REQUIRE_WINMM "Require Windows Multimedia backend" OFF) 1.52 +OPTION(REQUIRE_PORTAUDIO "Require PortAudio backend" OFF) 1.53 +OPTION(REQUIRE_PULSEAUDIO "Require PulseAudio backend" OFF) 1.54 +OPTION(REQUIRE_COREAUDIO "Require CoreAudio backend" OFF) 1.55 +OPTION(REQUIRE_OPENSL "Require OpenSL backend" OFF) 1.56 + 1.57 +OPTION(DLOPEN "Check for the dlopen API for loading optional libs" ON) 1.58 + 1.59 +OPTION(WERROR "Treat compile warnings as errors" OFF) 1.60 + 1.61 +OPTION(UTILS "Build and install utility programs" ON) 1.62 + 1.63 +OPTION(ALSOFT_CONFIG "Install alsoft.conf configuration file" OFF) 1.64 + 1.65 + 1.66 +SET(LIBNAME openal) 1.67 + 1.68 +SET(LIBTYPE SHARED) 1.69 + 1.70 +SET(LIB_MAJOR_VERSION "1") 1.71 +SET(LIB_MINOR_VERSION "13") 1.72 +SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}") 1.73 + 1.74 +SET(EXPORT_DECL "") 1.75 + 1.76 + 1.77 +# Add definitions, compiler switches, etc. 1.78 +INCLUDE_DIRECTORIES(OpenAL32/Include include "${OpenAL_BINARY_DIR}") 1.79 + 1.80 +ADD_DEFINITIONS(-Winline -Wall) 1.81 +CHECK_C_COMPILER_FLAG(-Wextra HAVE_W_EXTRA) 1.82 +IF(HAVE_W_EXTRA) 1.83 + ADD_DEFINITIONS(-Wextra) 1.84 +ENDIF() 1.85 + 1.86 +IF(WERROR) 1.87 + ADD_DEFINITIONS(-Werror) 1.88 +ENDIF() 1.89 + 1.90 +SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2 -D_DEBUG" CACHE STRING 1.91 + "Flags used by the compiler during Release with Debug Info builds." 1.92 + FORCE) 1.93 +SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" CACHE STRING 1.94 + "Flags used by the compiler during release minsize builds." 1.95 + FORCE) 1.96 +SET(CMAKE_C_FLAGS_RELEASE "-O2 -fomit-frame-pointer -DNDEBUG" CACHE STRING 1.97 + "Flags used by the compiler during release builds" 1.98 + FORCE) 1.99 +SET(CMAKE_C_FLAGS_DEBUG "-g3 -D_DEBUG" CACHE STRING 1.100 + "Flags used by the compiler during debug builds." 1.101 + FORCE) 1.102 + 1.103 +CHECK_INCLUDE_FILE(fenv.h HAVE_FENV_H) 1.104 +CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H) 1.105 +CHECK_INCLUDE_FILE(ieeefp.h HAVE_IEEEFP_H) 1.106 +CHECK_INCLUDE_FILE(guiddef.h HAVE_GUIDDEF_H) 1.107 +IF(NOT HAVE_GUIDDEF_H) 1.108 + CHECK_INCLUDE_FILE(initguid.h HAVE_INITGUID_H) 1.109 +ENDIF() 1.110 +CHECK_INCLUDE_FILE(arm_neon.h HAVE_ARM_NEON_H) 1.111 + 1.112 +CHECK_LIBRARY_EXISTS(m powf "" HAVE_POWF) 1.113 +CHECK_LIBRARY_EXISTS(m sqrtf "" HAVE_SQRTF) 1.114 +CHECK_LIBRARY_EXISTS(m acosf "" HAVE_ACOSF) 1.115 +CHECK_LIBRARY_EXISTS(m atanf "" HAVE_ATANF) 1.116 +CHECK_LIBRARY_EXISTS(m fabsf "" HAVE_FABSF) 1.117 +IF(HAVE_FENV_H) 1.118 + CHECK_LIBRARY_EXISTS(m fesetround "" HAVE_FESETROUND) 1.119 +ENDIF() 1.120 +IF(HAVE_SQRTF OR HAVE_ACOSF OR HAVE_ATANF OR HAVE_FABSF OR HAVE_FESETROUND) 1.121 + SET(EXTRA_LIBS m ${EXTRA_LIBS}) 1.122 +ENDIF() 1.123 +CHECK_FUNCTION_EXISTS(strtof HAVE_STRTOF) 1.124 +CHECK_FUNCTION_EXISTS(_controlfp HAVE__CONTROLFP) 1.125 + 1.126 +CHECK_FUNCTION_EXISTS(stat HAVE_STAT) 1.127 +CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) 1.128 +IF(NOT HAVE_STRCASECMP) 1.129 + CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP) 1.130 + IF(NOT HAVE__STRICMP) 1.131 + MESSAGE(FATAL_ERROR "No case-insensitive compare function found, please report!") 1.132 + ENDIF() 1.133 + 1.134 + ADD_DEFINITIONS(-Dstrcasecmp=_stricmp) 1.135 +ENDIF() 1.136 + 1.137 +CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP) 1.138 +IF(NOT HAVE_STRNCASECMP) 1.139 + CHECK_FUNCTION_EXISTS(_strnicmp HAVE__STRNICMP) 1.140 + IF(NOT HAVE__STRNICMP) 1.141 + MESSAGE(FATAL_ERROR "No case-insensitive size-limitted compare function found, please report!") 1.142 + ENDIF() 1.143 + 1.144 + ADD_DEFINITIONS(-Dstrncasecmp=_strnicmp) 1.145 +ENDIF() 1.146 + 1.147 +CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) 1.148 +IF(NOT HAVE_SNPRINTF) 1.149 + CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF) 1.150 + IF(NOT HAVE__SNPRINTF) 1.151 + MESSAGE(FATAL_ERROR "No snprintf function found, please report!") 1.152 + ENDIF() 1.153 + 1.154 + ADD_DEFINITIONS(-Dsnprintf=_snprintf) 1.155 +ENDIF() 1.156 + 1.157 +CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) 1.158 +IF(NOT HAVE_VSNPRINTF) 1.159 + CHECK_FUNCTION_EXISTS(_vsnprintf HAVE__VSNPRINTF) 1.160 + IF(NOT HAVE__VSNPRINTF) 1.161 + MESSAGE(FATAL_ERROR "No vsnprintf function found, please report!") 1.162 + ENDIF() 1.163 + 1.164 + ADD_DEFINITIONS(-Dvsnprintf=_vsnprintf) 1.165 +ENDIF() 1.166 + 1.167 +CHECK_SYMBOL_EXISTS(isfinite math.h HAVE_ISFINITE) 1.168 +IF(NOT HAVE_ISFINITE) 1.169 + CHECK_FUNCTION_EXISTS(finite HAVE_FINITE) 1.170 + IF(NOT HAVE_FINITE) 1.171 + CHECK_FUNCTION_EXISTS(_finite HAVE__FINITE) 1.172 + IF(NOT HAVE__FINITE) 1.173 + MESSAGE(FATAL_ERROR "No isfinite function found, please report!") 1.174 + ENDIF() 1.175 + ADD_DEFINITIONS(-Disfinite=_finite) 1.176 + ELSE() 1.177 + ADD_DEFINITIONS(-Disfinite=finite) 1.178 + ENDIF() 1.179 +ENDIF() 1.180 + 1.181 +CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN) 1.182 +IF(NOT HAVE_ISNAN) 1.183 + CHECK_FUNCTION_EXISTS(_isnan HAVE__ISNAN) 1.184 + IF(NOT HAVE__ISNAN) 1.185 + MESSAGE(FATAL_ERROR "No isnan function found, please report!") 1.186 + ENDIF() 1.187 + 1.188 + ADD_DEFINITIONS(-Disnan=_isnan) 1.189 +ENDIF() 1.190 + 1.191 + 1.192 +# Check for the dlopen API (for dynamicly loading backend libs) 1.193 +IF(DLOPEN) 1.194 + CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) 1.195 + IF(HAVE_DLFCN_H) 1.196 + CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL) 1.197 + IF(HAVE_LIBDL) 1.198 + SET(EXTRA_LIBS dl ${EXTRA_LIBS}) 1.199 + ENDIF() 1.200 + ENDIF() 1.201 +ENDIF() 1.202 + 1.203 +# Check if we have Windows headers 1.204 +CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H -D_WIN32_WINNT=0x0500) 1.205 +IF(NOT HAVE_WINDOWS_H) 1.206 + CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) 1.207 + IF(NOT HAVE_GETTIMEOFDAY) 1.208 + MESSAGE(FATAL_ERROR "No timing function found!") 1.209 + ENDIF() 1.210 + 1.211 + CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP) 1.212 + IF(NOT HAVE_NANOSLEEP) 1.213 + MESSAGE(FATAL_ERROR "No sleep function found!") 1.214 + ENDIF() 1.215 + 1.216 + CHECK_C_COMPILER_FLAG(-pthread HAVE_PTHREAD) 1.217 + IF(HAVE_PTHREAD) 1.218 + ADD_DEFINITIONS(-pthread) 1.219 + SET(EXTRA_LIBS ${EXTRA_LIBS} -pthread) 1.220 + ENDIF() 1.221 + 1.222 + # We need pthreads outside of Windows 1.223 + CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) 1.224 + IF(NOT HAVE_PTHREAD_H) 1.225 + MESSAGE(FATAL_ERROR "PThreads is required for non-Windows builds!") 1.226 + ENDIF() 1.227 + # Some systems need pthread_np.h to get recursive mutexes 1.228 + CHECK_INCLUDE_FILES("pthread.h;pthread_np.h" HAVE_PTHREAD_NP_H) 1.229 + 1.230 + # _GNU_SOURCE is needed on some systems for extra attributes, and 1.231 + # _REENTRANT is needed for libc thread-safety 1.232 + ADD_DEFINITIONS(-D_GNU_SOURCE=1) 1.233 + CHECK_LIBRARY_EXISTS(pthread pthread_create "" HAVE_LIBPTHREAD) 1.234 + IF(HAVE_LIBPTHREAD) 1.235 + SET(EXTRA_LIBS pthread ${EXTRA_LIBS}) 1.236 + ENDIF() 1.237 + 1.238 + CHECK_LIBRARY_EXISTS(pthread pthread_setschedparam "" HAVE_PTHREAD_SETSCHEDPARAM) 1.239 + 1.240 + CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT) 1.241 + IF(HAVE_LIBRT) 1.242 + SET(EXTRA_LIBS rt ${EXTRA_LIBS}) 1.243 + ENDIF() 1.244 +ENDIF() 1.245 + 1.246 +# Check for a 64-bit type 1.247 +CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) 1.248 +IF(NOT HAVE_STDINT_H) 1.249 + IF(HAVE_WINDOWS_H) 1.250 + CHECK_C_SOURCE_COMPILES("\#define _WIN32_WINNT 0x0500 1.251 + \#include <windows.h> 1.252 + __int64 foo; 1.253 + int main() {return 0;}" HAVE___INT64) 1.254 + ENDIF() 1.255 + IF(NOT HAVE___INT64) 1.256 + IF(NOT SIZEOF_LONG MATCHES "8") 1.257 + IF(NOT SIZEOF_LONG_LONG MATCHES "8") 1.258 + MESSAGE(FATAL_ERROR "No 64-bit types found, please report!") 1.259 + ENDIF() 1.260 + ENDIF() 1.261 + ENDIF() 1.262 +ENDIF() 1.263 + 1.264 +# Windows needs winmm for timeGetTime, even if the backend is disabled 1.265 +CHECK_SHARED_FUNCTION_EXISTS(timeGetTime "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM) 1.266 +IF(HAVE_LIBWINMM) 1.267 + SET(EXTRA_LIBS winmm ${EXTRA_LIBS}) 1.268 + SET(PKG_CONFIG_LIBS ${PKG_CONFIG_LIBS} -lwinmm) 1.269 +ENDIF() 1.270 + 1.271 + 1.272 +SET(OPENAL_OBJS OpenAL32/alAuxEffectSlot.c 1.273 + OpenAL32/alBuffer.c 1.274 + OpenAL32/alEffect.c 1.275 + OpenAL32/alError.c 1.276 + OpenAL32/alExtension.c 1.277 + OpenAL32/alFilter.c 1.278 + OpenAL32/alListener.c 1.279 + OpenAL32/alSource.c 1.280 + OpenAL32/alState.c 1.281 + OpenAL32/alThunk.c 1.282 +) 1.283 +SET(ALC_OBJS Alc/ALc.c 1.284 + Alc/ALu.c 1.285 + Alc/alcConfig.c 1.286 + Alc/alcDedicated.c 1.287 + Alc/alcEcho.c 1.288 + Alc/alcModulator.c 1.289 + Alc/alcReverb.c 1.290 + Alc/alcRing.c 1.291 + Alc/alcThread.c 1.292 + Alc/bs2b.c 1.293 + Alc/helpers.c 1.294 + Alc/hrtf.c 1.295 + Alc/mixer.c 1.296 + Alc/panning.c 1.297 + # Default backends, always available 1.298 + Alc/backends/loopback.c 1.299 + Alc/backends/null.c 1.300 + # RLM: add record device 1.301 + Alc/backends/record.c 1.302 +) 1.303 + 1.304 +SET(BACKENDS "") 1.305 +SET(HAVE_ALSA 0) 1.306 +SET(HAVE_OSS 0) 1.307 +SET(HAVE_SOLARIS 0) 1.308 +SET(HAVE_SNDIO 0) 1.309 +SET(HAVE_DSOUND 0) 1.310 +SET(HAVE_WINMM 0) 1.311 +SET(HAVE_PORTAUDIO 0) 1.312 +SET(HAVE_PULSEAUDIO 0) 1.313 +SET(HAVE_COREAUDIO 0) 1.314 +SET(HAVE_OPENSL 0) 1.315 +SET(HAVE_WAVE 0) 1.316 + 1.317 + 1.318 +# Check for MMDevApi backend 1.319 +IF(HAVE_WINDOWS_H) 1.320 + IF(MMDEVAPI) 1.321 + CHECK_INCLUDE_FILE(mmdeviceapi.h HAVE_MMDEVICEAPI_H) 1.322 + IF(HAVE_MMDEVICEAPI_H) 1.323 + SET(HAVE_MMDEVAPI 1) 1.324 + SET(ALC_OBJS ${ALC_OBJS} Alc/backends/mmdevapi.c) 1.325 + 1.326 + SET(BACKENDS "${BACKENDS} MMDevApi,") 1.327 + ENDIF() 1.328 + ENDIF() 1.329 +ENDIF() 1.330 +IF(REQUIRE_MMDEVAPI AND NOT HAVE_MMDEVAPI) 1.331 + MESSAGE(FATAL_ERROR "Failed to enabled required MMDevApi backend") 1.332 +ENDIF() 1.333 + 1.334 + 1.335 +IF(HAVE_WINDOWS_H) 1.336 + IF(WINMM) 1.337 + CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0500) 1.338 + IF(HAVE_MMSYSTEM_H AND HAVE_LIBWINMM) 1.339 + SET(HAVE_WINMM 1) 1.340 + SET(ALC_OBJS ${ALC_OBJS} Alc/backends/winmm.c) 1.341 + SET(BACKENDS "${BACKENDS} WinMM,") 1.342 + ENDIF() 1.343 + ENDIF() 1.344 +ENDIF() 1.345 +IF(REQUIRE_WINMM AND NOT HAVE_WINMM) 1.346 + MESSAGE(FATAL_ERROR "Failed to enable required WinMM backend") 1.347 +ENDIF() 1.348 + 1.349 +# Optionally enable the Wave Writer backend 1.350 +IF(WAVE) 1.351 + SET(HAVE_WAVE 1) 1.352 + SET(ALC_OBJS ${ALC_OBJS} Alc/backends/wave.c) 1.353 + SET(BACKENDS "${BACKENDS} WaveFile,") 1.354 +ENDIF() 1.355 + 1.356 + 1.357 +# RLM: enable the record backend 1.358 +SET(ALC_OBJS ${ALC_OBJS} Alc/backends/record.c) 1.359 +SET(BACKENDS "${BACKENDS} Record,") 1.360 + 1.361 + 1.362 +# This is always available 1.363 +SET(BACKENDS "${BACKENDS} Null") 1.364 + 1.365 +# Needed for openal.pc.in 1.366 +SET(prefix ${CMAKE_INSTALL_PREFIX}) 1.367 +SET(exec_prefix "\${prefix}") 1.368 +SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") 1.369 +SET(bindir "\${exec_prefix}/bin") 1.370 +SET(includedir "\${prefix}/include") 1.371 +SET(PACKAGE_VERSION "${LIB_VERSION}") 1.372 + 1.373 +# End configuration 1.374 +CONFIGURE_FILE( 1.375 + "${OpenAL_SOURCE_DIR}/config.h.in" 1.376 + "${OpenAL_BINARY_DIR}/config.h") 1.377 +CONFIGURE_FILE( 1.378 + "${OpenAL_SOURCE_DIR}/openal.pc.in" 1.379 + "${OpenAL_BINARY_DIR}/openal.pc" 1.380 + @ONLY) 1.381 + 1.382 + 1.383 +# RLM link jni the dumb way for now: 1.384 +INCLUDE_DIRECTORIES("/usr/lib/jvm/java-6-sun-1.6.0.20/include/") 1.385 +INCLUDE_DIRECTORIES("/usr/lib/jvm/java-6-sun-1.6.0.20/include/linux") 1.386 + 1.387 + 1.388 +# Build a library 1.389 +ADD_LIBRARY(${LIBNAME} SHARED ${OPENAL_OBJS} ${ALC_OBJS}) 1.390 +SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES DEFINE_SYMBOL AL_BUILD_LIBRARY 1.391 + COMPILE_FLAGS -DAL_ALEXT_PROTOTYPES 1.392 + VERSION ${LIB_VERSION}.0 1.393 + SOVERSION ${LIB_MAJOR_VERSION}) 1.394 + 1.395 + 1.396 +TARGET_LINK_LIBRARIES(${LIBNAME} ${EXTRA_LIBS}) 1.397 + 1.398 +# Add an install target here 1.399 +INSTALL(TARGETS ${LIBNAME} 1.400 + RUNTIME DESTINATION bin 1.401 + LIBRARY DESTINATION "lib${LIB_SUFFIX}" 1.402 + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" 1.403 +) 1.404 +INSTALL(FILES include/AL/al.h 1.405 + include/AL/alc.h 1.406 + include/AL/alext.h 1.407 + include/AL/efx.h 1.408 + include/AL/efx-creative.h 1.409 + DESTINATION include/AL 1.410 +) 1.411 +INSTALL(FILES "${OpenAL_BINARY_DIR}/openal.pc" 1.412 + DESTINATION "lib${LIB_SUFFIX}/pkgconfig") 1.413 + 1.414 + 1.415 +MESSAGE(STATUS "") 1.416 +MESSAGE(STATUS "Building OpenAL with support for the following backends:") 1.417 +MESSAGE(STATUS " ${BACKENDS}") 1.418 +MESSAGE(STATUS "") 1.419 + 1.420 +# Install alsoft.conf configuration file 1.421 + 1.422 +IF(UTILS) 1.423 + ADD_EXECUTABLE(openal-info utils/openal-info.c) 1.424 + TARGET_LINK_LIBRARIES(openal-info ${LIBNAME}) 1.425 + INSTALL(TARGETS openal-info 1.426 + RUNTIME DESTINATION bin 1.427 + LIBRARY DESTINATION "lib${LIB_SUFFIX}" 1.428 + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" 1.429 + ) 1.430 + MESSAGE(STATUS "Building utility programs") 1.431 + MESSAGE(STATUS "") 1.432 +ENDIF() 1.433 + 1.434 +