Use canonical install path for binary .so libraries

Since both librellis.so and pytrellis.so are binary,
architecture-specific libraries, they belong in /usr/lib64
on 64-bit architectures.

Also, since they are not versioned, and meant for use only
by binaries shipped as part of prjtrellis, they should be
installed as private libraries into a package-specific,
/usr/lib[64]/[prj]trellis/ directory (For details, see
fedoraproject.org/wiki/Common_Rpmlint_issues#invalid-soname)
with an appropriately configured rpath.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
diff --git a/libtrellis/CMakeLists.txt b/libtrellis/CMakeLists.txt
index 4f3edb9..d95283a 100644
--- a/libtrellis/CMakeLists.txt
+++ b/libtrellis/CMakeLists.txt
@@ -108,16 +108,23 @@
 
 find_package(Boost REQUIRED COMPONENTS program_options)
 
+get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+if ("${LIB64}" STREQUAL "TRUE")
+    set(LIBDIR "lib64")
+else()
+    set(LIBDIR "lib")
+endif()
+
 function(setup_rpath name)
   if(APPLE)
     set_target_properties(${name} PROPERTIES
                           BUILD_WITH_INSTALL_RPATH ON
-                          INSTALL_RPATH "@loader_path/../lib"
+                          INSTALL_RPATH "@loader_path/../${LIBDIR}/trellis"
                           INSTALL_NAME_DIR "@rpath")
   elseif(UNIX)
     set_target_properties(${name} PROPERTIES
                           BUILD_WITH_INSTALL_RPATH ON
-                          INSTALL_RPATH "\$ORIGIN/../lib")
+                          INSTALL_RPATH "\$ORIGIN/../${LIBDIR}/trellis")
   endif()
 endfunction()
 
@@ -137,7 +144,7 @@
 setup_rpath(ecppll)
 
 if (BUILD_SHARED)
-    install(TARGETS trellis ecppack ecppll ecpunpack LIBRARY DESTINATION lib  RUNTIME DESTINATION bin)
+    install(TARGETS trellis ecppack ecppll ecpunpack LIBRARY DESTINATION ${LIBDIR}/trellis  RUNTIME DESTINATION bin)
 else()
     install(TARGETS ecppack ecpunpack ecppll RUNTIME DESTINATION bin)
 endif()
@@ -146,5 +153,5 @@
 install(DIRECTORY ../util/common DESTINATION share/trellis/util)
 install(DIRECTORY ../timing/util DESTINATION share/trellis/timing)
 if (BUILD_SHARED)
-   install(TARGETS pytrellis DESTINATION share/trellis/libtrellis)
+   install(TARGETS pytrellis DESTINATION ${LIBDIR}/trellis)
 endif()