aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2019-06-17 18:13:56 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-07-08 08:30:17 -0400
commitb9f86b16548bd57a2667c54f008246e27160a060 (patch)
tree9db3f5077fc03f1e3f86f03aab0a49c6a9e7e5d3
parent9aef575e9acdbae851227655d73dff7ba0aed45f (diff)
downloadtrace-cmd-b9f86b16548bd57a2667c54f008246e27160a060.tar.gz
kernel-shark: Add 'make BUILD_TYPE=X gui' to change how the gui is made
Add an option to the Makefile called "BUILD_TYPE" that is passed to the CMake commands to change how kernelshark is built. The current options are: make BUILD_TYPE=Debug gui - for "-g" option make BUILD_TYPE=Release gui - for "-O3" option make BUILD_TYPE=RelWithDebInfo gui - for "-g -O2" option (default) make BUILD_TYPE=MinSizeRel gui - for "-Os" option By default, BUILD_TYPE is set to RelWithDebInfo. Also change the CMakeLists.txt to use RelWithDebInfo as the default instead of just Debug. Reviewed-by: Yordan Karadzhov <ykaradzhov@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--Makefile5
-rw-r--r--kernel-shark/CMakeLists.txt2
-rw-r--r--kernel-shark/README13
3 files changed, 17 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index c9679d42..ad74a969 100644
--- a/Makefile
+++ b/Makefile
@@ -252,8 +252,11 @@ all_cmd: $(CMD_TARGETS)
CMAKE_COMMAND = /usr/bin/cmake
+# Build with "BUILD_TYPE=Release" to remove cmake debug info
+BUILD_TYPE ?= RelWithDebInfo
+
$(kshark-dir)/build/Makefile: $(kshark-dir)/CMakeLists.txt
- $(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) -D_INSTALL_PREFIX=$(prefix) ..
+ $(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -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 a0535d87..23d64499 100644
--- a/kernel-shark/CMakeLists.txt
+++ b/kernel-shark/CMakeLists.txt
@@ -37,7 +37,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pthread -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -pthread -fPIC")
if (NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug)
+ set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif (NOT CMAKE_BUILD_TYPE)
message("\n Build type: ${CMAKE_BUILD_TYPE}")
diff --git a/kernel-shark/README b/kernel-shark/README
index b133f184..7e50479f 100644
--- a/kernel-shark/README
+++ b/kernel-shark/README
@@ -51,6 +51,16 @@ changed by passing in "prefix" to the build.
2.1.1.2 Use "make clean" if you want to delete all already compiled objects.
This will also clean up all the files created by cmake.
+2.1.1.3 KernelShark has multiple build types (See section 2.1.2.3 for more
+details. By default, the build type is RelWithDebInfo, which will build
+a release candidate with debug information. To change the type, pass in
+the option BUILD_TYPE=<type> to the make process.
+
+ make BUILD_TYPE=Debug gui - for "-g" option
+ make BUILD_TYPE=Release gui - for "-O3" option
+ make BUILD_TYPE=RelWithDebInfo gui - for "-g -O2" option (default)
+ make BUILD_TYPE=MinSizeRel gui - for "-Os" option
+
2.1.2 Option 2 (expert) : standalone build of KernelShark (for hackers only)
(note, you may need to do a normal make from the toplevel git
@@ -79,9 +89,10 @@ CMAKE_XXXX_FLAGS_PACKAGE Command-Line options (see the example below).
Note that when built as a "Package" the RPATH-s of the executables are
set directly to _INSTALL_PREFIX/lib/kernelshark/
-If no build types is specified, the type will be "Debug".
+If no build types is specified, the type will be "RelWithDebInfo".
Examples:
+
cmake -D_DOXYGEN_DOC=1 -D_INSTALL_PREFIX=/usr ../
cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic" ../