diff mbox series

kernel-shark: remove hardcoded /usr/local install prefix

Message ID 20190329140514.1373-2-tstoyanov@vmware.com (mailing list archive)
State Superseded
Headers show
Series kernel-shark: remove hardcoded /usr/local install prefix | expand

Commit Message

Tzvetomir Stoyanov March 29, 2019, 2:05 p.m. UTC
Installation prefix of kernelshark should not be hardcoded, it should be
configurable at build time. As kernelshark and trace-cmd are built together,
they should share the same installation prefix. The patch removes hardcoded
/usr/local prefix from kernelshark make files and replaces it with the one,
specified in the top Makefile.

Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
---
 Makefile                                                 | 2 +-
 kernel-shark/CMakeLists.txt                              | 9 ++++++++-
 kernel-shark/build/cmake_clean.sh                        | 1 +
 kernel-shark/build/ks.desktop.cmake                      | 2 +-
 .../org.freedesktop.kshark-record.policy.cmake}          | 2 +-
 kernel-shark/src/CMakeLists.txt                          | 6 +++---
 kernel-shark/src/plugins/CMakeLists.txt                  | 2 +-
 7 files changed, 16 insertions(+), 8 deletions(-)
 rename kernel-shark/{org.freedesktop.kshark-record.policy => build/org.freedesktop.kshark-record.policy.cmake} (86%)

Comments

Yordan Karadzhov March 29, 2019, 2:45 p.m. UTC | #1
On 29.03.19 г. 16:05 ч., Tzvetomir Stoyanov wrote:
> Installation prefix of kernelshark should not be hardcoded, it should be
> configurable at build time. As kernelshark and trace-cmd are built together,
> they should share the same installation prefix. The patch removes hardcoded
> /usr/local prefix from kernelshark make files and replaces it with the one,
> specified in the top Makefile.
> 

Maybe you need to add a comment explaning that, one has to run

kernel-shark/build/cmake_clean.sh

after applying the patch

Also please update the kernel-shark/README file describing the 
-D_INSTALL_PREFIX cmake option



> Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
> ---
>   Makefile                                                 | 2 +-
>   kernel-shark/CMakeLists.txt                              | 9 ++++++++-
>   kernel-shark/build/cmake_clean.sh                        | 1 +
>   kernel-shark/build/ks.desktop.cmake                      | 2 +-
>   .../org.freedesktop.kshark-record.policy.cmake}          | 2 +-
>   kernel-shark/src/CMakeLists.txt                          | 6 +++---
>   kernel-shark/src/plugins/CMakeLists.txt                  | 2 +-
>   7 files changed, 16 insertions(+), 8 deletions(-)
>   rename kernel-shark/{org.freedesktop.kshark-record.policy => build/org.freedesktop.kshark-record.policy.cmake} (86%)
> 
> diff --git a/Makefile b/Makefile
> index b780718..0b08e53 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -254,7 +254,7 @@ all_cmd: $(CMD_TARGETS)
>   CMAKE_COMMAND = /usr/bin/cmake
>   
>   $(kshark-dir)/build/Makefile: $(kshark-dir)/CMakeLists.txt
> -	$(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) ..
> +	$(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) -D_INSTALL_PREFIX=$(prefix) ..
>   

  trailing whitespace here


Reviewed-by: Yordan Karadzhov <ykaradzhov@vmware.com>
Tested-by: Yordan Karadzhov <ykaradzhov@vmware.com>

>   gui: force $(CMD_TARGETS) $(kshark-dir)/build/Makefile
>   	$(Q)$(MAKE) $(S) -C $(kshark-dir)/build
> diff --git a/kernel-shark/CMakeLists.txt b/kernel-shark/CMakeLists.txt
> index 20ced14..10cb696 100644
> --- a/kernel-shark/CMakeLists.txt
> +++ b/kernel-shark/CMakeLists.txt
> @@ -40,6 +40,10 @@ set(EXECUTABLE_OUTPUT_PATH "${KS_DIR}/bin")
>   set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -Wall -g -pthread")
>   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -std=c++11 -pthread")
>   
> +if(NOT _INSTALL_PREFIX)
> +	set(_INSTALL_PREFIX "/usr/local")
> +endif()
> +
>   if (NOT _DEBUG)
>   
>   	set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -O2")
> @@ -47,7 +51,7 @@ if (NOT _DEBUG)
>   
>   endif (NOT _DEBUG)
>   
> -SET(CMAKE_INSTALL_RPATH "/usr/local/lib/kshark/")
> +SET(CMAKE_INSTALL_RPATH "${_INSTALL_PREFIX}/lib/kshark/")
>   SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
>   
>   include_directories(${KS_DIR}/src/
> @@ -82,4 +86,7 @@ endif ()
>   configure_file( ${KS_DIR}/build/ks.desktop.cmake
>                   ${KS_DIR}/kernelshark.desktop)
>   
> +configure_file( ${KS_DIR}/build/org.freedesktop.kshark-record.policy.cmake
> +                ${KS_DIR}/org.freedesktop.kshark-record.policy)
> +
>   message("")
> diff --git a/kernel-shark/build/cmake_clean.sh b/kernel-shark/build/cmake_clean.sh
> index ea04dc0..2e7c8f9 100755
> --- a/kernel-shark/build/cmake_clean.sh
> +++ b/kernel-shark/build/cmake_clean.sh
> @@ -7,6 +7,7 @@ rm -rf src/
>   rm -rf examples/
>   rm -f ../lib/*
>   rm ../kernelshark.desktop
> +rm ../org.freedesktop.kshark-record.policy
>   rm -f ../src/KsCmakeDef.hpp
>   rm -f CMakeDoxyfile.in
>   rm -f CMakeDoxygenDefaults.cmake
> diff --git a/kernel-shark/build/ks.desktop.cmake b/kernel-shark/build/ks.desktop.cmake
> index f1951f0..10e3610 100644
> --- a/kernel-shark/build/ks.desktop.cmake
> +++ b/kernel-shark/build/ks.desktop.cmake
> @@ -4,7 +4,7 @@ Type=Application
>   Name=Kernel Shark
>   GenericName=Kernel Shark
>   Comment=
> -Exec=/usr/local/bin/kernelshark
> +Exec=@_INSTALL_PREFIX@/bin/kernelshark
>   Icon=@KS_DIR@/icons/ksharkicon.png
>   Categories=System;
>   Terminal=false
> diff --git a/kernel-shark/org.freedesktop.kshark-record.policy b/kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
> similarity index 86%
> rename from kernel-shark/org.freedesktop.kshark-record.policy
> rename to kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
> index dc73817..988db78 100644
> --- a/kernel-shark/org.freedesktop.kshark-record.policy
> +++ b/kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
> @@ -11,7 +11,7 @@
>         <allow_inactive>auth_admin</allow_inactive>
>         <allow_active>auth_admin</allow_active>
>       </defaults>
> -    <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/kshark-record</annotate>
> +    <annotate key="org.freedesktop.policykit.exec.path">@_INSTALL_PREFIX@/bin/kshark-record</annotate>
>       <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
>     </action>
>   
> diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt
> index 1e0a794..b7dbd7e 100644
> --- a/kernel-shark/src/CMakeLists.txt
> +++ b/kernel-shark/src/CMakeLists.txt
> @@ -78,8 +78,8 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
>       target_link_libraries(kshark-record kshark-gui)
>   
>       install(TARGETS kernelshark kshark-record kshark kshark-plot kshark-gui
> -            RUNTIME DESTINATION /usr/local/bin/
> -            LIBRARY DESTINATION /usr/local/lib/kshark/)
> +            RUNTIME DESTINATION ${_INSTALL_PREFIX}/bin/
> +            LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/)
>   
>       install(FILES "${KS_DIR}/kernelshark.desktop"
>               DESTINATION /usr/share/applications/)
> @@ -88,7 +88,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
>               DESTINATION /usr/share/polkit-1/actions/)
>   
>       install(PROGRAMS "${KS_DIR}/bin/kshark-su-record"
> -            DESTINATION /usr/local/bin/)
> +            DESTINATION ${_INSTALL_PREFIX}/bin/)
>   
>   endif (Qt5Widgets_FOUND AND Qt5Network_FOUND)
>   
> diff --git a/kernel-shark/src/plugins/CMakeLists.txt b/kernel-shark/src/plugins/CMakeLists.txt
> index 853214e..6098275 100644
> --- a/kernel-shark/src/plugins/CMakeLists.txt
> +++ b/kernel-shark/src/plugins/CMakeLists.txt
> @@ -29,6 +29,6 @@ BUILD_PLUGIN(NAME missed_events
>   list(APPEND PLUGIN_LIST "missed_events default") # This plugin will be loaded by default
>   
>   install(TARGETS sched_events missed_events
> -        LIBRARY DESTINATION /usr/local/lib/kshark/)
> +        LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/)
>   
>   set(PLUGINS ${PLUGIN_LIST} PARENT_SCOPE)
>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index b780718..0b08e53 100644
--- a/Makefile
+++ b/Makefile
@@ -254,7 +254,7 @@  all_cmd: $(CMD_TARGETS)
 CMAKE_COMMAND = /usr/bin/cmake
 
 $(kshark-dir)/build/Makefile: $(kshark-dir)/CMakeLists.txt
-	$(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) ..
+	$(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) -D_INSTALL_PREFIX=$(prefix) .. 
 
 gui: force $(CMD_TARGETS) $(kshark-dir)/build/Makefile
 	$(Q)$(MAKE) $(S) -C $(kshark-dir)/build
diff --git a/kernel-shark/CMakeLists.txt b/kernel-shark/CMakeLists.txt
index 20ced14..10cb696 100644
--- a/kernel-shark/CMakeLists.txt
+++ b/kernel-shark/CMakeLists.txt
@@ -40,6 +40,10 @@  set(EXECUTABLE_OUTPUT_PATH "${KS_DIR}/bin")
 set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -Wall -g -pthread")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -std=c++11 -pthread")
 
+if(NOT _INSTALL_PREFIX)
+	set(_INSTALL_PREFIX "/usr/local")
+endif()
+
 if (NOT _DEBUG)
 
 	set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -O2")
@@ -47,7 +51,7 @@  if (NOT _DEBUG)
 
 endif (NOT _DEBUG)
 
-SET(CMAKE_INSTALL_RPATH "/usr/local/lib/kshark/")
+SET(CMAKE_INSTALL_RPATH "${_INSTALL_PREFIX}/lib/kshark/")
 SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
 
 include_directories(${KS_DIR}/src/
@@ -82,4 +86,7 @@  endif ()
 configure_file( ${KS_DIR}/build/ks.desktop.cmake
                 ${KS_DIR}/kernelshark.desktop)
 
+configure_file( ${KS_DIR}/build/org.freedesktop.kshark-record.policy.cmake
+                ${KS_DIR}/org.freedesktop.kshark-record.policy)
+
 message("")
diff --git a/kernel-shark/build/cmake_clean.sh b/kernel-shark/build/cmake_clean.sh
index ea04dc0..2e7c8f9 100755
--- a/kernel-shark/build/cmake_clean.sh
+++ b/kernel-shark/build/cmake_clean.sh
@@ -7,6 +7,7 @@  rm -rf src/
 rm -rf examples/
 rm -f ../lib/*
 rm ../kernelshark.desktop
+rm ../org.freedesktop.kshark-record.policy
 rm -f ../src/KsCmakeDef.hpp
 rm -f CMakeDoxyfile.in
 rm -f CMakeDoxygenDefaults.cmake
diff --git a/kernel-shark/build/ks.desktop.cmake b/kernel-shark/build/ks.desktop.cmake
index f1951f0..10e3610 100644
--- a/kernel-shark/build/ks.desktop.cmake
+++ b/kernel-shark/build/ks.desktop.cmake
@@ -4,7 +4,7 @@  Type=Application
 Name=Kernel Shark
 GenericName=Kernel Shark
 Comment=
-Exec=/usr/local/bin/kernelshark
+Exec=@_INSTALL_PREFIX@/bin/kernelshark
 Icon=@KS_DIR@/icons/ksharkicon.png
 Categories=System;
 Terminal=false
diff --git a/kernel-shark/org.freedesktop.kshark-record.policy b/kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
similarity index 86%
rename from kernel-shark/org.freedesktop.kshark-record.policy
rename to kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
index dc73817..988db78 100644
--- a/kernel-shark/org.freedesktop.kshark-record.policy
+++ b/kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
@@ -11,7 +11,7 @@ 
       <allow_inactive>auth_admin</allow_inactive>
       <allow_active>auth_admin</allow_active>
     </defaults>
-    <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/kshark-record</annotate>
+    <annotate key="org.freedesktop.policykit.exec.path">@_INSTALL_PREFIX@/bin/kshark-record</annotate>
     <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
   </action>
 
diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt
index 1e0a794..b7dbd7e 100644
--- a/kernel-shark/src/CMakeLists.txt
+++ b/kernel-shark/src/CMakeLists.txt
@@ -78,8 +78,8 @@  if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
     target_link_libraries(kshark-record kshark-gui)
 
     install(TARGETS kernelshark kshark-record kshark kshark-plot kshark-gui
-            RUNTIME DESTINATION /usr/local/bin/
-            LIBRARY DESTINATION /usr/local/lib/kshark/)
+            RUNTIME DESTINATION ${_INSTALL_PREFIX}/bin/
+            LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/)
 
     install(FILES "${KS_DIR}/kernelshark.desktop"
             DESTINATION /usr/share/applications/)
@@ -88,7 +88,7 @@  if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
             DESTINATION /usr/share/polkit-1/actions/)
 
     install(PROGRAMS "${KS_DIR}/bin/kshark-su-record"
-            DESTINATION /usr/local/bin/)
+            DESTINATION ${_INSTALL_PREFIX}/bin/)
 
 endif (Qt5Widgets_FOUND AND Qt5Network_FOUND)
 
diff --git a/kernel-shark/src/plugins/CMakeLists.txt b/kernel-shark/src/plugins/CMakeLists.txt
index 853214e..6098275 100644
--- a/kernel-shark/src/plugins/CMakeLists.txt
+++ b/kernel-shark/src/plugins/CMakeLists.txt
@@ -29,6 +29,6 @@  BUILD_PLUGIN(NAME missed_events
 list(APPEND PLUGIN_LIST "missed_events default") # This plugin will be loaded by default
 
 install(TARGETS sched_events missed_events
-        LIBRARY DESTINATION /usr/local/lib/kshark/)
+        LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/)
 
 set(PLUGINS ${PLUGIN_LIST} PARENT_SCOPE)