diff --git a/Modules/FindOpenAL.cmake b/Modules/FindOpenAL.cmake index c52b02746..24f3641eb 100644 --- a/Modules/FindOpenAL.cmake +++ b/Modules/FindOpenAL.cmake @@ -38,9 +38,10 @@ IF(${OPENAL_INCLUDE_DIR} MATCHES ".framework") SET (OPENAL_LIBRARY "-framework OpenAL" CACHE STRING "OpenAL framework for OSX") ELSE(${OPENAL_INCLUDE_DIR} MATCHES ".framework") FIND_LIBRARY(OPENAL_LIBRARY - NAMES openal al + NAMES openal al OpenAL32 PATHS $ENV{OPENALDIR}/lib + $ENV{OPENALDIR}/libs /usr/lib /usr/local/lib /sw/lib diff --git a/Modules/FindSDL.cmake b/Modules/FindSDL.cmake index 24a7214c4..9eef31c65 100644 --- a/Modules/FindSDL.cmake +++ b/Modules/FindSDL.cmake @@ -73,7 +73,7 @@ ELSE(${SDL_INCLUDE_DIR} MATCHES ".framework") # seem to provide SDLmain for compatibility even though they don't # necessarily need it. FIND_LIBRARY(SDLMAIN_LIBRARY - NAMES SDLmain + NAMES SDLmain SDLmain-1.1 PATHS $ENV{SDLDIR}/lib /usr/lib diff --git a/Modules/FindSDL_image.cmake b/Modules/FindSDL_image.cmake index 2ee3360f8..cd428c55c 100644 --- a/Modules/FindSDL_image.cmake +++ b/Modules/FindSDL_image.cmake @@ -19,6 +19,7 @@ FIND_PATH(SDLIMAGE_INCLUDE_DIR SDL_image.h ~/Library/Frameworks/SDL_image.framework/Headers /Library/Frameworks/SDL_image.framework/Headers $ENV{SDLDIR}/include + $ENV{SDLIMAGEDIR}/include /usr/include/SDL /usr/include/SDL12 /usr/include/SDL11 @@ -40,6 +41,7 @@ ELSE(${SDLIMAGE_INCLUDE_DIR} MATCHES ".framework") NAMES SDL_image PATHS $ENV{SDLDIR}/lib + $ENV{SDLIMAGEDIR}/lib /usr/lib /usr/local/lib /sw/lib diff --git a/Modules/FindSDL_mixer.cmake b/Modules/FindSDL_mixer.cmake index f792e4183..e1715af86 100644 --- a/Modules/FindSDL_mixer.cmake +++ b/Modules/FindSDL_mixer.cmake @@ -19,6 +19,7 @@ FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h ~/Library/Frameworks/SDL_mixer.framework/Headers /Library/Frameworks/SDL_mixer.framework/Headers $ENV{SDLDIR}/include + $ENV{SDLMIXERDIR}/include /usr/include/SDL /usr/include/SDL12 /usr/include/SDL11 @@ -40,6 +41,7 @@ ELSE(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework") NAMES SDL_mixer PATHS $ENV{SDLDIR}/lib + $ENV{SDLMIXERDIR}/lib /usr/lib /usr/local/lib /sw/lib diff --git a/Modules/FindSDL_net.cmake b/Modules/FindSDL_net.cmake index e17cb7244..dce301f9f 100644 --- a/Modules/FindSDL_net.cmake +++ b/Modules/FindSDL_net.cmake @@ -19,6 +19,7 @@ FIND_PATH(SDLNET_INCLUDE_DIR SDL_net.h ~/Library/Frameworks/SDL_net.framework/Headers /Library/Frameworks/SDL_net.framework/Headers $ENV{SDLDIR}/include + $ENV{SDLNETDIR}/include /usr/include/SDL /usr/include/SDL12 /usr/include/SDL11 @@ -40,6 +41,7 @@ ELSE(${SDLNET_INCLUDE_DIR} MATCHES ".framework") NAMES SDL_net PATHS $ENV{SDLDIR}/lib + $ENV{SDLNET}/lib /usr/lib /usr/local/lib /sw/lib diff --git a/Modules/FindSDL_sound.cmake b/Modules/FindSDL_sound.cmake new file mode 100644 index 000000000..2b5e84516 --- /dev/null +++ b/Modules/FindSDL_sound.cmake @@ -0,0 +1,402 @@ +# Locates the SDL_sound library + +# This module depends on SDL being found and +# must be called AFTER FindSDL.cmake is called. + +# This module defines +# SDL_SOUND_INCLUDE_DIR, where to find SDL_sound.h +# SDL_SOUND_FOUND, if false, do not try to link to SDL +# SDL_SOUND_LIBRARIES, this contains the list of libraries that you need to link against +# +# This module also defines (but you shouldn't need to use directly) +# SDL_SOUND_LIBRARY, the name of just the SDL_sound library you would link against. +# And might define the following as needed +# MIKMOD_LIBRARY +# MODPLUG_LIBRARY +# OGG_LIBRARY +# VORBIS_LIBRARY +# SMPEG_LIBRARY +# FLAC_LIBRARY +# SPEEX_LIBRARY +# +# Typically, you should not use these variables directly, and you should use +# SDL_SOUND_LIBRARIES which contains SDL_SOUND_LIBRARY and the other audio libraries +# (if needed) to successfully compile on your system . +# +# Created by Eric Wing. +# This module is a bit more complicated than the other FindSDL* family modules. +# The reason is that SDL_sound can be compiled in a large variety of different ways +# which are independent of platform. SDL_sound may dynamically link against other 3rd +# party libraries to get additional codec support, such as Ogg Vorbis, SMPEG, ModPlug, +# MikMod, FLAC, Speex, and potentially others. Some platforms or compilers seem to +# require that dependent libraries of libraries you use must also be explicitly +# linked against in order to successfully compile. SDL_sound does not currently +# have any system in place to know how it was compiled. +# So this CMake module does the hard work in trying to discover which 3rd party +# libraries are required for building. +# This module uses a brute force approach to create a test program that uses SDL_sound, +# and then tries to build it. If the build fails, it parses the error output for +# known symbol names to figure out which libraries are needed. +# +# Responds to the $SDLDIR and $SDLSOUNDDIR environmental variable that would +# correspond to the ./configure --prefix=$SDLDIR used in building SDL. +# +# On OSX, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# SDL_LIBRARY to override this selection. +# + +# Find SDL_sound.h +FIND_PATH(SDL_SOUND_INCLUDE_DIR SDL_sound.h + ~/Library/Frameworks/SDL_sound.framework/Headers + /Library/Frameworks/SDL_sound.framework/Headers + $ENV{SDLDIR}/include + $ENV{SDLSOUNDDIR}/include + /usr/include/SDL + /usr/include/SDL12 + /usr/include/SDL11 + /usr/include + /usr/local/include/SDL + /usr/local/include/SDL12 + /usr/local/include/SDL11 + /usr/local/include + /sw/include + ) +# Find the SDL_sound library +IF(${SDL_SOUND_INCLUDE_DIR} MATCHES ".framework") + SET (SDL_SOUND_LIBRARY "-framework SDL_sound" CACHE STRING "SDL_sound framework for OSX") +ELSE(${SDL_SOUND_INCLUDE_DIR} MATCHES ".framework") + FIND_LIBRARY(SDL_SOUND_LIBRARY + NAMES SDL_sound + PATHS + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) +ENDIF(${SDL_SOUND_INCLUDE_DIR} MATCHES ".framework") + +SET(SDL_SOUND_FOUND "NO") +IF(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY) + + # CMake is giving me problems using TRY_COMPILE with the CMAKE_FLAGS + # for the :STRING syntax if I have multiple values contained in a + # single variable. This is a problem for the SDL_LIBRARY variable + # because it does just that. When I feed this variable to the command, + # only the first value gets the appropriate modifier (e.g. -I) and + # the rest get dropped. + # To get multiple single variables to work, I must separate them with a "\;" + # I could go back and modify the FindSDL.cmake module, but that's kind of painful. + # The solution would be to try something like: + # SET(SDL_TRY_COMPILE_LIBRARY_LIST "${SDL_TRY_COMPILE_LIBRARY_LIST}\;${CMAKE_THREAD_LIBS_INIT}") + # Instead, it was suggested on the mailing list to write a temporary CMakeLists.txt + # with a temporary test project and invoke that with TRY_COMPILE. + # See message thread "Figuring out dependencies for a library in order to build" + # 2005-07-16 + # TRY_COMPILE( + # MY_RESULT + # ${CMAKE_BINARY_DIR} + # ${PROJECT_SOURCE_DIR}/DetermineSoundLibs.c + # CMAKE_FLAGS + # -DINCLUDE_DIRECTORIES:STRING=${SDL_INCLUDE_DIR}\;${SDL_SOUND_INCLUDE_DIR} + # -DLINK_LIBRARIES:STRING=${SDL_SOUND_LIBRARY}\;${SDL_LIBRARY} + # OUTPUT_VARIABLE MY_OUTPUT + # ) + + # To minimize external dependencies, create a sdlsound test program + # which will be used to figure out if additional link dependencies are + # required for the link phase. + FILE(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/DetermineSoundLibs.c + "#include \"SDL_sound.h\" + #include \"SDL.h\" + int main(int argc, char* argv[]) + { + Sound_AudioInfo desired; + Sound_Sample* sample; + + SDL_Init(0); + Sound_Init(); + + /* This doesn't actually have to work, but Init() is a no-op + * for some of the decoders, so this should force more symbols + * to be pulled in. + */ + sample = Sound_NewSampleFromFile(argv[1], &desired, 4096); + + Sound_Quit(); + SDL_Quit(); + return 0; + }" + ) + + + # Write the CMakeLists.txt and test project + # Weird, this is still sketchy. If I don't quote the variables + # in the TARGET_LINK_LIBRARIES, I seem to loose everything + # in the SDL_LIBRARY string after the "-framework". + # But if I quote the stuff in INCLUDE_DIRECTORIES, it doesn't work. + FILE(WRITE ${PROJECT_BINARY_DIR}/CMakeTmp/CMakeLists.txt + "PROJECT(DetermineSoundLibs) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR} ${SDL_SOUND_INCLUDE_DIR}) + ADD_EXECUTABLE(DetermineSoundLibs DetermineSoundLibs.c) + TARGET_LINK_LIBRARIES(DetermineSoundLibs \"${SDL_SOUND_LIBRARY} ${SDL_LIBRARY}\")" + ) + + TRY_COMPILE( + MY_RESULT + ${PROJECT_BINARY_DIR}/CMakeTmp + ${PROJECT_BINARY_DIR}/CMakeTmp + DetermineSoundLibs + OUTPUT_VARIABLE MY_OUTPUT + ) + + #MESSAGE("${MY_RESULT}") + #MESSAGE(${MY_OUTPUT}) + + IF(NOT MY_RESULT) + + # I expect that MPGLIB, VOC, WAV, AIFF, and SHN are compiled in statically. + # I think Timidity is also compiled in statically. + # I've never had to explcitly link against Quicktime, so I'll skip that for now. + + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARY}) + + # Find MikMod + IF("${MY_OUTPUT}" MATCHES "MikMod_") + FIND_FILE(TEMP_SDLSOUND_FIND_MIKMOD_FRAMEWORK + libmikmod-coreaudio + ~/Library/Frameworks/libmikmod-coreaudio.framework + /Library/Frameworks/libmikmod-coreaudio.framework + ) + IF(TEMP_SDLSOUND_FIND_MIKMOD_FRAMEWORK) + SET(MIKMOD_LIBRARY "-framework libmikmod-coreaudio" CACHE STRING "MikMod framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_MIKMOD_FRAMEWORK) + FIND_LIBRARY(MIKMOD_LIBRARY + NAMES mikmod + PATHS + $ENV{MIKMODDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_MIKMOD_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_MIKMOD_FRAMEWORK "" CACHE INTERNAL "") + IF(MIKMOD_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MIKMOD_LIBRARY}) + ENDIF(MIKMOD_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "MikMod_") + + # Find ModPlug + IF("${MY_OUTPUT}" MATCHES "MODPLUG_") + FIND_FILE(TEMP_SDLSOUND_FIND_MODPLUG_FRAMEWORK + libmikmod-coreaudio + ~/Library/Frameworks/modplug.framework + /Library/Frameworks/modplug.framework + ) + IF(TEMP_SDLSOUND_FIND_MODPLUG_FRAMEWORK) + SET(MIKMOD_LIBRARY "-framework modplug" CACHE STRING "MODPLUG framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_MODPLUG_FRAMEWORK) + FIND_LIBRARY(MODPLUG_LIBRARY + NAMES modplug + PATHS + $ENV{MODPLUGDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_MODPLUG_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_MODPLUG_FRAMEWORK "" CACHE INTERNAL "") + IF(MODPLUG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${MODPLUG_LIBRARY}) + ENDIF(MODPLUG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "MODPLUG_") + + + # Find Ogg and Vorbis + IF("${MY_OUTPUT}" MATCHES "ov_") + FIND_FILE(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK + Vorbis + ~/Library/Frameworks/Vorbis.framework + /Library/Frameworks/Vorbis.framework + ) + IF(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK) + SET(VORBIS_LIBRARY "-framework Vorbis" CACHE STRING "Vorbis framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK) + FIND_LIBRARY(VORBIS_LIBRARY + NAMES vorbis Vorbis VORBIS + PATHS + $ENV{OGGDIR}/lib + $ENV{VORBISDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_VORBIS_FRAMEWORK "" CACHE INTERNAL "") + IF(VORBIS_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${VORBIS_LIBRARY}) + ENDIF(VORBIS_LIBRARY) + + FIND_FILE(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK + Ogg + ~/Library/Frameworks/Ogg.framework + /Library/Frameworks/Ogg.framework + ) + IF(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + SET(OGG_LIBRARY "-framework Ogg" CACHE STRING "Ogg framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + FIND_LIBRARY(OGG_LIBRARY + NAMES ogg Ogg OGG + PATHS + $ENV{OGGDIR}/lib + $ENV{VORBISDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK "" CACHE INTERNAL "") + IF(OGG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY}) + ENDIF(OGG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "ov_") + + + # Find SMPEG + IF("${MY_OUTPUT}" MATCHES "SMPEG_") + FIND_FILE(TEMP_SDLSOUND_FIND_SMPEG_FRAMEWORK + SMPEG + ~/Library/Frameworks/smpeg.framework + /Library/Frameworks/smpeg.framework + ) + IF(TEMP_SDLSOUND_FIND_SMPEG_FRAMEWORK) + SET(SMPEG_LIBRARY "-framework smpeg" CACHE STRING "SMPEG framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_SMPEG_FRAMEWORK) + FIND_LIBRARY(SMPEG_LIBRARY + NAMES smpeg SMPEG Smpeg SMpeg + PATHS + $ENV{SMPEGDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_SMPEG_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_SMPEG_FRAMEWORK "" CACHE INTERNAL "") + IF(SMPEG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SMPEG_LIBRARY}) + ENDIF(SMPEG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "SMPEG_") + + + # Find FLAC + IF("${MY_OUTPUT}" MATCHES "FLAC_") + FIND_FILE(TEMP_SDLSOUND_FIND_FLAC_FRAMEWORK + FLAC + ~/Library/Frameworks/FLAC.framework + /Library/Frameworks/FLAC.framework + ) + IF(TEMP_SDLSOUND_FIND_FLAC_FRAMEWORK) + SET(FLAC_LIBRARY "-framework FLAC" CACHE STRING "FLAC framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_FLAC_FRAMEWORK) + FIND_LIBRARY(FLAC_LIBRARY + NAMES flac FLAC + PATHS + $ENV{FLACDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_FLAC_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_FLAC_FRAMEWORK "" CACHE INTERNAL "") + IF(FLAC_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${FLAC_LIBRARY}) + ENDIF(FLAC_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "FLAC_") + + + # Hmmm...Speex seems to depend on Ogg. This might be a problem if + # the TRY_COMPILE attempt gets blocked at SPEEX before it can pull + # in the Ogg symbols. I'm not sure if I should duplicate the ogg stuff + # above for here or if two ogg entries will screw up things. + IF("${MY_OUTPUT}" MATCHES "speex_") + FIND_FILE(TEMP_SDLSOUND_FIND_SPEEX_FRAMEWORK + speex + ~/Library/Frameworks/speex.framework + /Library/Frameworks/speex.framework + ) + IF(TEMP_SDLSOUND_FIND_SPEEX_FRAMEWORK) + SET(FLAC_LIBRARY "-framework speex" CACHE STRING "SPEEX framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_SPEEX_FRAMEWORK) + FIND_LIBRARY(SPEEX_LIBRARY + NAMES speex SPEEX + PATHS + $ENV{SPEEXDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_SPEEX_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_SPEEX_FRAMEWORK "" CACHE INTERNAL "") + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${SPEEX_LIBRARY}) + + # Find OGG (needed for Speex) + FIND_FILE(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK + Ogg + ~/Library/Frameworks/Ogg.framework + /Library/Frameworks/Ogg.framework + ) + IF(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + SET(OGG_LIBRARY "-framework Ogg" CACHE STRING "Ogg framework for OSX") + ELSE(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + FIND_LIBRARY(OGG_LIBRARY + NAMES ogg Ogg OGG + PATHS + $ENV{OGGDIR}/lib + $ENV{VORBISDIR}/lib + $ENV{SPEEXDIR}/lib + $ENV{SDLDIR}/lib + $ENV{SDLSOUNDDIR}/lib + /usr/lib + /usr/local/lib + /sw/lib + ) + ENDIF(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK) + # Clear the temp variable so nobody can see it + SET(TEMP_SDLSOUND_FIND_OGG_FRAMEWORK "" CACHE INTERNAL "") + IF(OGG_LIBRARY) + SET(SDL_SOUND_LIBRARIES_TMP ${SDL_SOUND_LIBRARIES_TMP} ${OGG_LIBRARY}) + ENDIF(OGG_LIBRARY) + ENDIF("${MY_OUTPUT}" MATCHES "speex_") + + + + ELSE(NOT MY_RESULT) + SET(SDL_SOUND_LIBRARIES ${SDL_SOUND_LIBRARY} CACHE STRING "SDL_sound and dependent libraries") + ENDIF(NOT MY_RESULT) + + SET(SDL_SOUND_LIBRARIES ${SDL_SOUND_LIBRARIES_TMP} CACHE STRING "SDL_sound and dependent libraries") + SET(SDL_SOUND_FOUND "YES") + ENDIF(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY) diff --git a/Modules/FindSDL_ttf.cmake b/Modules/FindSDL_ttf.cmake index 7dea03382..52d52b196 100644 --- a/Modules/FindSDL_ttf.cmake +++ b/Modules/FindSDL_ttf.cmake @@ -19,6 +19,7 @@ FIND_PATH(SDLTTF_INCLUDE_DIR SDL_ttf.h ~/Library/Frameworks/SDL_ttf.framework/Headers /Library/Frameworks/SDL_ttf.framework/Headers $ENV{SDLDIR}/include + $ENV{SDLTTFDIR}/include /usr/include/SDL /usr/include/SDL12 /usr/include/SDL11 @@ -40,6 +41,7 @@ ELSE(${SDLTTF_INCLUDE_DIR} MATCHES ".framework") NAMES SDL_ttf PATHS $ENV{SDLDIR}/lib + $ENV{SDLTTFDIR}/lib /usr/lib /usr/local/lib /sw/lib