aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTzvetomir Stoyanov <tstoyanov@vmware.com>2019-03-29 17:03:19 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-04-02 19:33:13 -0400
commitb9db93c51a4f21df7c01077bf3151944d104ee1b (patch)
tree9b0f2673989f9cc21c975e965af34d9212ca0e46
parent5276e834fa5eb3bc7f4b2e92114a151a2a1efdc6 (diff)
downloadtrace-cmd-b9db93c51a4f21df7c01077bf3151944d104ee1b.tar.gz
kernel-shark: Remove hardcoded /usr/local install prefix
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. Note: after applying the patch, kernel-shark/build/cmake_clean.sh should be run, to ensure that cmake cache is cleared. Link: http://lore.kernel.org/linux-trace-devel/20190329150319.7176-1-tstoyanov@vmware.com Reviewed-by: Yordan Karadzhov <ykaradzhov@vmware.com> Tested-by: Yordan Karadzhov <ykaradzhov@vmware.com> Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--Makefile2
-rw-r--r--kernel-shark/CMakeLists.txt9
-rw-r--r--kernel-shark/README5
-rwxr-xr-xkernel-shark/build/cmake_clean.sh1
-rw-r--r--kernel-shark/build/ks.desktop.cmake2
-rw-r--r--kernel-shark/build/org.freedesktop.kshark-record.policy.cmake (renamed from kernel-shark/org.freedesktop.kshark-record.policy)2
-rw-r--r--kernel-shark/src/CMakeLists.txt6
-rw-r--r--kernel-shark/src/plugins/CMakeLists.txt2
8 files changed, 20 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index b7807181..cde45f83 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 20ced146..10cb696b 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/README b/kernel-shark/README
index efc67481..379c3901 100644
--- a/kernel-shark/README
+++ b/kernel-shark/README
@@ -41,8 +41,11 @@ as a CMake Command-Line option.
2.1.2 In order to generates complete debug information to be used by GDB add
-D_DEBUG=1 as a CMake Command-Line option.
+2.1.3 By default, installation prefix is "/usr/local". It can be changed using
+-D_INSTALL_PREFIX= as a CMake Command-Line option.
+
Example:
- cmake -D_DOXYGEN_DOC=1 -D_DEBUG=1 ../
+ cmake -D_DOXYGEN_DOC=1 -D_DEBUG=1 -D_INSTALL_PREFIX=/usr ../
2.2.1 Use "make clean" if you want to delete all already compiled objects.
diff --git a/kernel-shark/build/cmake_clean.sh b/kernel-shark/build/cmake_clean.sh
index ea04dc08..2e7c8f94 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 0b947f15..e7aee156 100644
--- a/kernel-shark/build/ks.desktop.cmake
+++ b/kernel-shark/build/ks.desktop.cmake
@@ -4,6 +4,6 @@ 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
Terminal=false
diff --git a/kernel-shark/org.freedesktop.kshark-record.policy b/kernel-shark/build/org.freedesktop.kshark-record.policy.cmake
index dc738172..988db782 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 1e0a794b..b7dbd7e6 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 853214eb..60982757 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)