diff -Naur cvode-5.1.0-orig/CMakeLists.txt cvode-5.1.0/CMakeLists.txt
--- cvode-5.1.0-orig/CMakeLists.txt	2020-01-08 20:47:01.000000000 +0300
+++ cvode-5.1.0/CMakeLists.txt	2020-03-27 10:48:57.854382400 +0300
@@ -638,12 +638,12 @@
 
   show_variable(EXAMPLES_INSTALL_PATH PATH
     "Output directory for installing example files"
-    "${CMAKE_INSTALL_PREFIX}/examples")
+    "${CMAKE_INSTALL_PREFIX}/share/sundials/examples")
 
   if(NOT EXAMPLES_INSTALL_PATH)
     print_warning("The example installation path is empty"
       "Example installation path was reset to its default value")
-    set(EXAMPLES_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/examples" CACHE STRING
+    set(EXAMPLES_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/share/sundials/examples" CACHE STRING
       "Output directory for installing example files" FORCE)
   endif()
 
diff -Naur cvode-5.1.0-orig/src/cvode/CMakeLists.txt cvode-5.1.0/src/cvode/CMakeLists.txt
--- cvode-5.1.0-orig/src/cvode/CMakeLists.txt	2020-01-08 20:47:19.000000000 +0300
+++ cvode-5.1.0/src/cvode/CMakeLists.txt	2020-03-27 10:48:58.088699000 +0300
@@ -138,7 +138,10 @@
     PROPERTIES VERSION ${cvodelib_VERSION} SOVERSION ${cvodelib_SOVERSION})
 
   # Install the CVODE library
-  install(TARGETS sundials_cvode_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_cvode_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
diff -Naur cvode-5.1.0-orig/src/nvector/cuda/CMakeLists.txt cvode-5.1.0/src/nvector/cuda/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/cuda/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/cuda/CMakeLists.txt	2020-03-27 10:48:58.317835500 +0300
@@ -60,7 +60,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nveccuda_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nveccuda_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the CUDA NVector header files
diff -Naur cvode-5.1.0-orig/src/nvector/manyvector/CMakeLists.txt cvode-5.1.0/src/nvector/manyvector/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/manyvector/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/manyvector/CMakeLists.txt	2020-03-27 10:56:10.427567600 +0300
@@ -106,7 +106,10 @@
                         SOVERSION ${nveclib_SOVERSION}
                         CLEAN_DIRECT_OUTPUT 1)
 
-  install(TARGETS sundials_nvecmanyvector_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecmanyvector_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
   # ----------------------- With MPI
   if(MPI_ENABLE AND MPI_C_FOUND)
@@ -124,7 +127,10 @@
                           SOVERSION ${nveclib_SOVERSION}
                           CLEAN_DIRECT_OUTPUT 1)
 
-    install(TARGETS sundials_nvecmpimanyvector_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_nvecmpimanyvector_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif()
 
 endif(BUILD_SHARED_LIBS)
diff -Naur cvode-5.1.0-orig/src/nvector/manyvector/fmod/CMakeLists.txt cvode-5.1.0/src/nvector/manyvector/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/manyvector/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/manyvector/fmod/CMakeLists.txt	2020-03-27 10:48:58.769275200 +0300
@@ -63,7 +63,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fnvecmanyvector_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fnvecmanyvector_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
   # ----------------------- With MPI
   if(MPI_ENABLE AND MPI_C_FOUND)
@@ -73,7 +76,10 @@
     set_target_properties(sundials_fnvecmpimanyvector_mod_shared PROPERTIES
                           OUTPUT_NAME sundials_fnvecmpimanyvector_mod
                           CLEAN_DIRECT_OUTPUT 1)
-    install(TARGETS sundials_fnvecmpimanyvector_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecmpimanyvector_mod_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif()
 endif(BUILD_SHARED_LIBS)
 
diff -Naur cvode-5.1.0-orig/src/nvector/mpiplusx/CMakeLists.txt cvode-5.1.0/src/nvector/mpiplusx/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/mpiplusx/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/mpiplusx/CMakeLists.txt	2020-03-27 10:48:59.003625600 +0300
@@ -88,7 +88,10 @@
                         SOVERSION ${nveclib_SOVERSION}
                         CLEAN_DIRECT_OUTPUT 1)
 
-  install(TARGETS sundials_nvecmpiplusx_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecmpiplusx_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECMPIPLUSX header files
diff -Naur cvode-5.1.0-orig/src/nvector/mpiplusx/fmod/CMakeLists.txt cvode-5.1.0/src/nvector/mpiplusx/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/mpiplusx/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/mpiplusx/fmod/CMakeLists.txt	2020-03-27 10:48:59.234246900 +0300
@@ -50,7 +50,10 @@
     set_target_properties(sundials_fnvecmpiplusx_mod_shared PROPERTIES
                           OUTPUT_NAME sundials_fnvecmpiplusx_mod
                           CLEAN_DIRECT_OUTPUT 1)
-    install(TARGETS sundials_fnvecmpiplusx_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecmpiplusx_mod_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif()
 endif(BUILD_SHARED_LIBS)
 
diff -Naur cvode-5.1.0-orig/src/nvector/openmp/CMakeLists.txt cvode-5.1.0/src/nvector/openmp/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/openmp/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/openmp/CMakeLists.txt	2020-03-27 10:48:59.453476400 +0300
@@ -75,7 +75,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecopenmp CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecopenmp_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecopenmp_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecopenmp_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECOPENMP header files
@@ -102,7 +105,10 @@
       PROPERTIES OUTPUT_NAME sundials_fnvecopenmp CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fnvecopenmp_shared
       PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-    install(TARGETS sundials_fnvecopenmp_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecopenmp_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
diff -Naur cvode-5.1.0-orig/src/nvector/openmp/fmod/CMakeLists.txt cvode-5.1.0/src/nvector/openmp/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/openmp/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/openmp/fmod/CMakeLists.txt	2020-03-27 10:48:59.687823100 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fnvecopenmp_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fnvecopenmp_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fnvecopenmp_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fnvecopenmp_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added NVECTOR_OPENMP F2003 interface")
diff -Naur cvode-5.1.0-orig/src/nvector/openmpdev/CMakeLists.txt cvode-5.1.0/src/nvector/openmpdev/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/openmpdev/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/openmpdev/CMakeLists.txt	2020-03-27 10:48:59.922137800 +0300
@@ -69,7 +69,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecopenmpdev CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecopenmpdev_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecopenmpdev_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecopenmpdev_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif()
 
diff -Naur cvode-5.1.0-orig/src/nvector/parallel/CMakeLists.txt cvode-5.1.0/src/nvector/parallel/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/parallel/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/parallel/CMakeLists.txt	2020-03-27 10:49:00.140837500 +0300
@@ -77,7 +77,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecparallel CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecparallel_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecparallel_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecparallel_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECPARALLEL header files
@@ -104,7 +107,10 @@
       PROPERTIES OUTPUT_NAME sundials_fnvecparallel CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fnvecparallel_shared
       PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-    install(TARGETS sundials_fnvecparallel_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecparallel_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif()
diff -Naur cvode-5.1.0-orig/src/nvector/parallel/fmod/CMakeLists.txt cvode-5.1.0/src/nvector/parallel/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/parallel/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/parallel/fmod/CMakeLists.txt	2020-03-27 10:49:00.375121800 +0300
@@ -51,7 +51,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fnvecparallel_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fnvecparallel_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added NVECTOR_PARALLEL F2003 interface")
diff -Naur cvode-5.1.0-orig/src/nvector/parhyp/CMakeLists.txt cvode-5.1.0/src/nvector/parhyp/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/parhyp/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/parhyp/CMakeLists.txt	2020-03-27 10:49:00.593844000 +0300
@@ -76,7 +76,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecparhyp CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecparhyp_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecparhyp_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecparhyp_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECPARHYP header files
diff -Naur cvode-5.1.0-orig/src/nvector/petsc/CMakeLists.txt cvode-5.1.0/src/nvector/petsc/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/petsc/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/petsc/CMakeLists.txt	2020-03-27 10:49:00.821365500 +0300
@@ -71,7 +71,10 @@
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
 
-  install(TARGETS sundials_nvecpetsc_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecpetsc_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECPARHYP header files
diff -Naur cvode-5.1.0-orig/src/nvector/pthreads/CMakeLists.txt cvode-5.1.0/src/nvector/pthreads/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/pthreads/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/pthreads/CMakeLists.txt	2020-03-27 10:49:01.040063700 +0300
@@ -76,7 +76,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecpthreads CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecpthreads_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecpthreads_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecpthreads_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECPTHREADS header files
@@ -103,7 +106,10 @@
       PROPERTIES OUTPUT_NAME sundials_fnvecpthreads CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fnvecpthreads_shared
       PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-    install(TARGETS sundials_fnvecpthreads_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecpthreads_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
 
diff -Naur cvode-5.1.0-orig/src/nvector/raja/CMakeLists.txt cvode-5.1.0/src/nvector/raja/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/raja/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/raja/CMakeLists.txt	2020-03-27 10:49:01.258766800 +0300
@@ -68,7 +68,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nveccudaraja_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nveccudaraja_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECRAJA header files
diff -Naur cvode-5.1.0-orig/src/nvector/serial/CMakeLists.txt cvode-5.1.0/src/nvector/serial/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/serial/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/serial/CMakeLists.txt	2020-03-27 10:49:01.477451600 +0300
@@ -69,7 +69,10 @@
     PROPERTIES OUTPUT_NAME sundials_nvecserial CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_nvecserial_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_nvecserial_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvecserial_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECSERIAL header files
@@ -96,7 +99,10 @@
       PROPERTIES OUTPUT_NAME sundials_fnvecserial CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fnvecserial_shared
       PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-    install(TARGETS sundials_fnvecserial_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fnvecserial_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
diff -Naur cvode-5.1.0-orig/src/nvector/serial/fmod/CMakeLists.txt cvode-5.1.0/src/nvector/serial/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/serial/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/serial/fmod/CMakeLists.txt	2020-03-27 10:49:01.680526400 +0300
@@ -35,7 +35,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fnvecserial_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fnvecserial_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added NVECTOR_SERIAL F2003 interface")
diff -Naur cvode-5.1.0-orig/src/nvector/trilinos/CMakeLists.txt cvode-5.1.0/src/nvector/trilinos/CMakeLists.txt
--- cvode-5.1.0-orig/src/nvector/trilinos/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/nvector/trilinos/CMakeLists.txt	2020-03-27 10:49:01.899219600 +0300
@@ -81,7 +81,10 @@
                         VERSION ${nveclib_VERSION}
                         SOVERSION ${nveclib_SOVERSION})
 
-  install(TARGETS sundials_nvectrilinos_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_nvectrilinos_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the NVECTRILINOS header files
diff -Naur cvode-5.1.0-orig/src/sunlinsol/band/CMakeLists.txt cvode-5.1.0/src/sunlinsol/band/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/band/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/band/CMakeLists.txt	2020-03-27 10:49:02.117914700 +0300
@@ -79,7 +79,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolband_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -127,7 +129,9 @@
       sundials_fsunmatrixband_shared
       sundials_sunlinsolband_shared)
     install(TARGETS sundials_fsunlinsolband_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/band/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/band/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/band/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/band/fmod/CMakeLists.txt	2020-03-27 10:49:02.320989700 +0300
@@ -37,7 +37,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolband_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolband_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolband_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolband_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_BAND F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/cusolversp/CMakeLists.txt cvode-5.1.0/src/sunlinsol/cusolversp/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/cusolversp/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/cusolversp/CMakeLists.txt	2020-03-27 10:49:02.539684100 +0300
@@ -61,7 +61,10 @@
                         CLEAN_DIRECT_OUTPUT 1
                         VERSION ${sunlinsollib_VERSION}
                         SOVERSION ${sunlinsollib_SOVERSION})
-  install(TARGETS sundials_sunlinsolcusolversp_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunlinsolcusolversp_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the CUDA NVector header files
diff -Naur cvode-5.1.0-orig/src/sunlinsol/dense/CMakeLists.txt cvode-5.1.0/src/sunlinsol/dense/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/dense/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/dense/CMakeLists.txt	2020-03-27 10:56:37.649407300 +0300
@@ -79,7 +79,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsoldense_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -127,7 +129,9 @@
       sundials_fsunmatrixdense_shared
       sundials_sunlinsoldense_shared)
     install(TARGETS sundials_fsunlinsoldense_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/dense/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/dense/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/dense/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/dense/fmod/CMakeLists.txt	2020-03-27 10:49:02.992668500 +0300
@@ -37,7 +37,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsoldense_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsoldense_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsoldense_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsoldense_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_DENSE F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/klu/CMakeLists.txt cvode-5.1.0/src/sunlinsol/klu/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/klu/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/klu/CMakeLists.txt	2020-03-27 10:49:03.221212500 +0300
@@ -79,7 +79,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolklu_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -127,7 +129,9 @@
       sundials_fsunmatrixsparse_shared
       sundials_sunlinsolklu_shared)
     install(TARGETS sundials_fsunlinsolklu_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/klu/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/klu/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/klu/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/klu/fmod/CMakeLists.txt	2020-03-27 10:49:03.424320100 +0300
@@ -37,7 +37,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolklu_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolklu_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolklu_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolklu_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_KLU F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/lapackband/CMakeLists.txt cvode-5.1.0/src/sunlinsol/lapackband/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/lapackband/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/lapackband/CMakeLists.txt	2020-03-27 10:49:03.658632900 +0300
@@ -75,7 +75,9 @@
     PUBLIC sundials_sunmatrixband_shared ${LAPACK_LIBRARIES})
 
   install(TARGETS sundials_sunlinsollapackband_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -123,7 +125,9 @@
       sundials_fsunmatrixband_shared
       sundials_sunlinsollapackband_shared)
     install(TARGETS sundials_fsunlinsollapackband_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/lapackdense/CMakeLists.txt cvode-5.1.0/src/sunlinsol/lapackdense/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/lapackdense/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/lapackdense/CMakeLists.txt	2020-03-27 10:49:03.892947600 +0300
@@ -78,7 +78,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsollapackdense_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -126,7 +128,9 @@
       sundials_fsunmatrixdense_shared
       sundials_sunlinsollapackdense_shared)
     install(TARGETS sundials_fsunlinsollapackdense_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/pcg/CMakeLists.txt cvode-5.1.0/src/sunlinsol/pcg/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/pcg/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/pcg/CMakeLists.txt	2020-03-27 10:49:04.122961500 +0300
@@ -83,7 +83,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolpcg_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -129,7 +131,9 @@
       sundials_fnvecserial_shared
       sundials_sunlinsolpcg_shared)
     install(TARGETS sundials_fsunlinsolpcg_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/pcg/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/pcg/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/pcg/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/pcg/fmod/CMakeLists.txt	2020-03-27 10:49:04.341686100 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolpcg_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolpcg_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolpcg_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolpcg_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_PCG F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spbcgs/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spbcgs/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spbcgs/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spbcgs/CMakeLists.txt	2020-03-27 10:49:04.560379800 +0300
@@ -83,7 +83,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolspbcgs_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -129,7 +131,9 @@
       sundials_fnvecserial_shared
       sundials_sunlinsolspbcgs_shared)
     install(TARGETS sundials_fsunlinsolspbcgs_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spbcgs/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spbcgs/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spbcgs/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spbcgs/fmod/CMakeLists.txt	2020-03-27 10:49:04.763455200 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolspbcgs_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolspbcgs_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolspbcgs_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolspbcgs_mod_share
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_SPBCGS F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spfgmr/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spfgmr/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spfgmr/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spfgmr/CMakeLists.txt	2020-03-27 10:49:04.997743000 +0300
@@ -83,7 +83,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolspfgmr_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -129,7 +131,9 @@
       sundials_fnvecserial_shared
       sundials_sunlinsolspfgmr_shared)
     install(TARGETS sundials_fsunlinsolspfgmr_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spfgmr/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spfgmr/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spfgmr/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spfgmr/fmod/CMakeLists.txt	2020-03-27 10:49:05.216472200 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolspfgmr_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolspfgmr_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolspfgmr_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolspfgmr_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_SPFGMR F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spgmr/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spgmr/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spgmr/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spgmr/CMakeLists.txt	2020-03-27 10:49:05.442161800 +0300
@@ -83,7 +83,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolspgmr_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -129,7 +131,9 @@
       sundials_fnvecserial_shared
       sundials_sunlinsolspgmr_shared)
     install(TARGETS sundials_fsunlinsolspgmr_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/spgmr/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/spgmr/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/spgmr/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/spgmr/fmod/CMakeLists.txt	2020-03-27 10:49:05.676479300 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolspgmr_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolspgmr_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolspgmr_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolspgmr_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_SPGMR F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/sptfqmr/CMakeLists.txt cvode-5.1.0/src/sunlinsol/sptfqmr/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/sptfqmr/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/sptfqmr/CMakeLists.txt	2020-03-27 10:49:05.906836200 +0300
@@ -83,7 +83,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolsptfqmr_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
@@ -129,7 +131,9 @@
       sundials_fnvecserial_shared
       sundials_sunlinsolsptfqmr_shared)
     install(TARGETS sundials_fsunlinsolsptfqmr_shared
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
   #
diff -Naur cvode-5.1.0-orig/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt cvode-5.1.0/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt	2020-03-27 10:49:06.125561600 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunlinsolsptfqmr_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunlinsolsptfqmr_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunlinsolsptfqmr_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunlinsolsptfqmr_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNLINSOL_SPTFQMR F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunlinsol/superludist/CMakeLists.txt cvode-5.1.0/src/sunlinsol/superludist/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/superludist/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/superludist/CMakeLists.txt	2020-03-27 10:49:06.328639100 +0300
@@ -92,7 +92,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolsuperludist_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
diff -Naur cvode-5.1.0-orig/src/sunlinsol/superlumt/CMakeLists.txt cvode-5.1.0/src/sunlinsol/superlumt/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunlinsol/superlumt/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunlinsol/superlumt/CMakeLists.txt	2020-03-27 10:49:06.547331900 +0300
@@ -96,7 +96,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunlinsolsuperlumt_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 
 endif(BUILD_SHARED_LIBS)
 
diff -Naur cvode-5.1.0-orig/src/sunmatrix/band/CMakeLists.txt cvode-5.1.0/src/sunmatrix/band/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/band/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/band/CMakeLists.txt	2020-03-27 10:49:06.766023500 +0300
@@ -70,7 +70,10 @@
     PROPERTIES OUTPUT_NAME sundials_sunmatrixband CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_sunmatrixband_shared
     PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-  install(TARGETS sundials_sunmatrixband_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunmatrixband_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the SUNMATRIXBAND header files
@@ -97,7 +100,10 @@
       PROPERTIES OUTPUT_NAME sundials_fsunmatrixband CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fsunmatrixband_shared
       PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-    install(TARGETS sundials_fsunmatrixband_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fsunmatrixband_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
diff -Naur cvode-5.1.0-orig/src/sunmatrix/band/fmod/CMakeLists.txt cvode-5.1.0/src/sunmatrix/band/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/band/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/band/fmod/CMakeLists.txt	2020-03-27 10:49:07.187798400 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunmatrixband_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunmatrixband_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunmatrixband_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunmatrixband_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNMATRIX_BAND F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunmatrix/dense/CMakeLists.txt cvode-5.1.0/src/sunmatrix/dense/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/dense/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/dense/CMakeLists.txt	2020-03-27 10:49:07.609570200 +0300
@@ -71,7 +71,10 @@
     PROPERTIES OUTPUT_NAME sundials_sunmatrixdense CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_sunmatrixdense_shared
     PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-  install(TARGETS sundials_sunmatrixdense_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunmatrixdense_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the SUNMATRIXDENSE header files
@@ -98,7 +101,10 @@
       PROPERTIES OUTPUT_NAME sundials_fsunmatrixdense CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fsunmatrixdense_shared
       PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-    install(TARGETS sundials_fsunmatrixdense_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fsunmatrixdense_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
diff -Naur cvode-5.1.0-orig/src/sunmatrix/dense/fmod/CMakeLists.txt cvode-5.1.0/src/sunmatrix/dense/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/dense/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/dense/fmod/CMakeLists.txt	2020-03-27 10:49:07.828262000 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunmatrixdense_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunmatrixdense_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunmatrixdense_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunmatrixdense_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNMATRIX_DENSE F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunmatrix/slunrloc/CMakeLists.txt cvode-5.1.0/src/sunmatrix/slunrloc/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/slunrloc/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/slunrloc/CMakeLists.txt	2020-03-27 10:49:08.046926800 +0300
@@ -89,7 +89,9 @@
     PUBLIC -DBUILD_SUNDIALS_LIBRARY)
 
   install(TARGETS sundials_sunmatrixslunrloc_shared
-    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the sunmatrixslunrloc header files
diff -Naur cvode-5.1.0-orig/src/sunmatrix/sparse/CMakeLists.txt cvode-5.1.0/src/sunmatrix/sparse/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/sparse/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/sparse/CMakeLists.txt	2020-03-27 10:49:08.275679600 +0300
@@ -70,7 +70,10 @@
     PROPERTIES OUTPUT_NAME sundials_sunmatrixsparse CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_sunmatrixsparse_shared
     PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-  install(TARGETS sundials_sunmatrixsparse_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunmatrixsparse_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 # Install the SUNMATRIXSPARSE header files
@@ -97,7 +100,10 @@
       PROPERTIES OUTPUT_NAME sundials_fsunmatrixsparse CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fsunmatrixsparse_shared
       PROPERTIES VERSION ${sunmatrixlib_VERSION} SOVERSION ${sunmatrixlib_SOVERSION})
-    install(TARGETS sundials_fsunmatrixsparse_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fsunmatrixsparse_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif(BUILD_SHARED_LIBS)
 
 endif(F77_INTERFACE_ENABLE AND F77_FOUND)
diff -Naur cvode-5.1.0-orig/src/sunmatrix/sparse/fmod/CMakeLists.txt cvode-5.1.0/src/sunmatrix/sparse/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunmatrix/sparse/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunmatrix/sparse/fmod/CMakeLists.txt	2020-03-27 10:49:08.495513300 +0300
@@ -35,7 +35,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunmatrixsparse_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunmatrixsparse_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunmatrixsparse_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunmatrixsparse_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNMATRIX_SPARSE F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunnonlinsol/fixedpoint/CMakeLists.txt cvode-5.1.0/src/sunnonlinsol/fixedpoint/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunnonlinsol/fixedpoint/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunnonlinsol/fixedpoint/CMakeLists.txt	2020-03-27 10:49:08.729857400 +0300
@@ -70,7 +70,10 @@
     PROPERTIES OUTPUT_NAME sundials_sunnonlinsolfixedpoint CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_sunnonlinsolfixedpoint_shared
     PROPERTIES VERSION ${sunnonlinsollib_VERSION} SOVERSION ${sunnonlinsollib_SOVERSION})
-  install(TARGETS sundials_sunnonlinsolfixedpoint_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunnonlinsolfixedpoint_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
 
 # Install the header files
@@ -99,7 +102,10 @@
       PROPERTIES OUTPUT_NAME sundials_fsunnonlinsolfixedpoint CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fsunnonlinsolfixedpoint_shared
       PROPERTIES VERSION ${sunnonlinsollib_VERSION} SOVERSION ${sunnonlinsollib_SOVERSION})
-    install(TARGETS sundials_fsunnonlinsolfixedpoint_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fsunnonlinsolfixedpoint_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif()
 
 endif()
diff -Naur cvode-5.1.0-orig/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt cvode-5.1.0/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt	2020-03-27 10:49:08.942625600 +0300
@@ -36,7 +36,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunnonlinsolfixedpoint_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunnonlinsolfixedpoint_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunnonlinsolfixedpoint_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunnonlinsolfixedpoint_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNNONLINSOL_FIXEDPOINT F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunnonlinsol/newton/CMakeLists.txt cvode-5.1.0/src/sunnonlinsol/newton/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunnonlinsol/newton/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunnonlinsol/newton/CMakeLists.txt	2020-03-27 10:49:09.161318800 +0300
@@ -70,7 +70,10 @@
     PROPERTIES OUTPUT_NAME sundials_sunnonlinsolnewton CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_sunnonlinsolnewton_shared
     PROPERTIES VERSION ${sunnonlinsollib_VERSION} SOVERSION ${sunnonlinsollib_SOVERSION})
-  install(TARGETS sundials_sunnonlinsolnewton_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunnonlinsolnewton_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
 
 # Install the header files
@@ -100,7 +103,10 @@
       PROPERTIES OUTPUT_NAME sundials_fsunnonlinsolnewton CLEAN_DIRECT_OUTPUT 1)
     set_target_properties(sundials_fsunnonlinsolnewton_shared
       PROPERTIES VERSION ${sunnonlinsollib_VERSION} SOVERSION ${sunnonlinsollib_SOVERSION})
-    install(TARGETS sundials_fsunnonlinsolnewton_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    install(TARGETS sundials_fsunnonlinsolnewton_shared
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   endif()
 
 endif()
diff -Naur cvode-5.1.0-orig/src/sunnonlinsol/newton/fmod/CMakeLists.txt cvode-5.1.0/src/sunnonlinsol/newton/fmod/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunnonlinsol/newton/fmod/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunnonlinsol/newton/fmod/CMakeLists.txt	2020-03-27 10:49:09.395634700 +0300
@@ -36,7 +36,10 @@
     PROPERTIES OUTPUT_NAME sundials_fsunnonlinsolnewton_mod CLEAN_DIRECT_OUTPUT 1)
   set_target_properties(sundials_fsunnonlinsolnewton_mod_shared
     PROPERTIES VERSION ${nveclib_VERSION} SOVERSION ${nveclib_SOVERSION})
-  install(TARGETS sundials_fsunnonlinsolnewton_mod_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_fsunnonlinsolnewton_mod_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif(BUILD_SHARED_LIBS)
 
 message(STATUS "Added SUNNONLINSOL_NEWTON F2003 interface")
diff -Naur cvode-5.1.0-orig/src/sunnonlinsol/petscsnes/CMakeLists.txt cvode-5.1.0/src/sunnonlinsol/petscsnes/CMakeLists.txt
--- cvode-5.1.0-orig/src/sunnonlinsol/petscsnes/CMakeLists.txt	2020-01-08 20:47:03.000000000 +0300
+++ cvode-5.1.0/src/sunnonlinsol/petscsnes/CMakeLists.txt	2020-03-27 10:49:09.625643800 +0300
@@ -70,7 +70,10 @@
                         VERSION ${sunnonlinsollib_VERSION}
                         SOVERSION ${sunnonlinsollib_SOVERSION})
 
-  install(TARGETS sundials_sunnonlinsolpetscsnes_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  install(TARGETS sundials_sunnonlinsolpetscsnes_shared
+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
 
 # Install the header files
