diff -rupN portmidi.old/CMakeLists.txt portmidi/CMakeLists.txt --- portmidi.old/CMakeLists.txt 2009-10-19 15:36:57.000000000 -0400 +++ portmidi/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500 @@ -8,6 +8,7 @@ if(UNIX) # allow user to set Release or Debug set(CMAKE_BUILD_TYPE Release CACHE STRING "Semicolon-separate list of supported configuration types") + set(PROJECT_BINARY_DIR ${CMAKE_SOURCE_DIR}/build) # set default directories but don't override cached values... set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_BUILD_TYPE} CACHE STRING "libraries go here") diff -rupN portmidi.old/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt --- portmidi.old/pm_common/CMakeLists.txt 2009-10-19 14:41:21.000000000 -0400 +++ portmidi/pm_common/CMakeLists.txt 2009-11-27 20:33:36.000000000 -0500 @@ -65,15 +65,12 @@ if(UNIX) # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation # because JAVA_INCLUDE_PATH2 is pretty obscure) - set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN} - CACHE STRING "where to find Java SDK include directory") - set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux) - # libjvm.so is found relative to JAVA_INCLUDE_PATH: - set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so) + set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}) + set(LINUXSRC pmlinuxalsa pmlinux finddefault) prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) - list(APPEND LIBSRC ../porttime/ptlinux) + set(LIBPTSRC ../porttime/ptlinux) set(PM_NEEDED_LIBS pthread asound) endif(APPLE) @@ -98,29 +95,29 @@ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${J # this completes the list of library sources by adding shared code list(APPEND LIBSRC pmutil portmidi) -# now add the shared files to make the complete list of library sources -add_library(portmidi-static ${LIBSRC}) -set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s") -target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) +add_library(porttime-dynamic SHARED ${LIBPTSRC}) +set_target_properties(porttime-dynamic PROPERTIES SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "porttime") +target_link_libraries(porttime-dynamic pthread) add_library(portmidi-dynamic SHARED ${LIBSRC}) -set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi") -target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS}) - +add_dependencies(portmidi-dynamic porttime-dynamic) +set_target_properties(portmidi-dynamic PROPERTIES LINK_FLAGS "-L../build/Release" SOVERSION 0 VERSION 0.${VERSION} OUTPUT_NAME "portmidi") +target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS} porttime) # define the jni library include_directories(${JAVA_INCLUDE_PATHS}) set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c) add_library(pmjni SHARED ${JNISRC}) -target_link_libraries(pmjni ${JNI_EXTRA_LIBS}) -set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") +add_dependencies(pmjni porttime-dynamic) +target_link_libraries(pmjni ${JNI_EXTRA_LIBS} porttime) +set_target_properties(pmjni PROPERTIES LINK_FLAGS "-L../build/Release" EXECUTABLE_EXTENSION "jnilib") # install the libraries (Linux only) if(UNIX AND NOT APPLE) - INSTALL(TARGETS portmidi-static portmidi-dynamic pmjni - LIBRARY DESTINATION /usr/local/lib - ARCHIVE DESTINATION /usr/local/lib) + INSTALL(TARGETS porttime-dynamic portmidi-dynamic pmjni + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) INSTALL(FILES portmidi.h ../porttime/porttime.h - DESTINATION /usr/local/include) + DESTINATION ${INCLUDE_INSTALL_DIR}) endif(UNIX AND NOT APPLE) diff -rupN portmidi.old/pm_java/CMakeLists.txt portmidi/pm_java/CMakeLists.txt --- portmidi.old/pm_java/CMakeLists.txt 2009-10-14 14:04:06.000000000 -0400 +++ portmidi/pm_java/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500 @@ -39,9 +39,9 @@ if(UNIX) # install the libraries (Linux only) INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar - DESTINATION /usr/share/java) + DESTINATION ${SHARE_INSTALL_PREFIX}/java) INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults - DESTINATION /usr/local/bin) + DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) endif(APPLE) endif(UNIX) # In windows, use pm_java/make.bat diff -rupN portmidi.old/pm_test/CMakeLists.txt portmidi/pm_test/CMakeLists.txt --- portmidi.old/pm_test/CMakeLists.txt 2009-10-19 14:41:21.000000000 -0400 +++ portmidi/pm_test/CMakeLists.txt 2009-11-27 20:20:22.000000000 -0500 @@ -8,7 +8,8 @@ endif(APPLE) macro(make_a_test name) add_executable(${name} ${name}.c) - target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS}) + set_target_properties(${name} PROPERTIES LINK_FLAGS "-L${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}") + target_link_libraries(${name} portmidi-dynamic ${PM_NEEDED_LIBS}) endmacro(make_a_test) make_a_test(test)