Currently on Unix there are "lib*.5.0.0.dylib" (Apple) or "lib*.so.5.0.0" (Linux) shared libraries created where "*" stands for "hostemu", "orxncurses", "rexx", "rexxapi", "rexxutil", "rxmath", "rxregexp", "rxsock", "rxunixsys".
In addition there are symbolic links created in the form of "lib*.dylib" or "lib*.so" pointing to the "5.0.0" shared libraries. An example with "hostemu" shared libraries would be: Apple: libhostemu.dylib -> libhostemu.5.0.0.dylib Linux: libhostemu.so -> libhostemu.so.5.0.0 If running executables that got linked to earlier versions of ooRexx (e.g. ooRexx 2, ooRexx 3 or ooRexx 4) then such executables would not be able to run, unless there are also symbolic links created that carry the version information "2", "3" or "4", like: Apple: libhostemu2.dylib -> libhostemu.so libhostemu3.dylib -> libhostemu.so libhostemu4.dylib -> libhostemu.so Linux: libhostemu2.so -> libhostemu.so libhostemu3.so -> libhostemu.so libhostemu4.so -> libhostemu.so <https://sourceforge.net/p/oorexx/bugs/1421/> points at this situation. --- Now, as everyone is quite busy with different tasks I tried to start to figure out how to change the CMakeList file such that it would create these symbolic links and install them. Not having knowledge about CMake this has turned out to be a very time consuming task, where information is missing that would allow me to conclude the experiment. After many hours, I have become able to create the symbolic links in the ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}, but have not been able to get these newly added files to copy to the lib-directory at install time ("make install" or while creating the rpm or deb packages where the shared libraries need to get copied to the packager's temporary subdirectories). So any help or advice would be appreciated that would allow me to proceed, such that in the end I could supply a patch for the project that creates these symbolic links! --- Here a few questions: * why are the shared libraries created in the BINARY_DIR as in line # as o set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) o on Apple there is an individual change to that value, such that a "lib" directory gets used to place the shared libraries to * how would one cause all shared files in ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} to be copied at installation time ("make install") to the installation's target library directory? o Tried it to no avail with (at build time INSTALL_LIB_DIR points to the standard installation location like "/usr/lib"): install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir ${INSTALL_LIB_DIR} create_symlink ${targetName} ${linkName})") hence looking for alternatives. o is there a means to inform CMake which library files need to be taken from the CMAKE_LIBRARY_OUTPUT_DIRECTORY and be put into the appropriate library directory while installing (and uninstalling)? ---rony
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel