linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] kernel-shark: Make some top level "make" changes
@ 2019-06-17 22:31 Steven Rostedt
  2019-06-17 22:31 ` [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh Steven Rostedt
  2019-06-17 22:31 ` [PATCH 2/2] kernel-shark: Add make BUILD_TYPE=X gui to change how the gui is made Steven Rostedt
  0 siblings, 2 replies; 5+ messages in thread
From: Steven Rostedt @ 2019-06-17 22:31 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Yordan Karadzhov, Troy Engel

This is built on top of the three patches from Yordan that can be
found here:

  https://patchwork.kernel.org/project/linux-trace-devel/list/?series=132531

It makes "make clean" remove cmake generated files (my build failed
and I couldn't figure out why. "make clean" should allow builds to
build again when CMake files change).

I also adde a "make BUILD_TYPE=foo" to pass to the cmake command to
change the CMAKE_BUILD_TYPE to allow an easy build by the package
maintainers to change how KernelShark is built.

Steven Rostedt (VMware) (2):
      kernel-shark: Have "make clean" run cmake-clean.sh
      kernel-shark: Add 'make BUILD_TYPE=X gui' to change how the gui is made

----
 Makefile                    |  6 +++++-
 kernel-shark/CMakeLists.txt |  2 +-
 kernel-shark/README         | 23 +++++++++++++++++------
 3 files changed, 23 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh
  2019-06-17 22:31 [PATCH 0/2] kernel-shark: Make some top level "make" changes Steven Rostedt
@ 2019-06-17 22:31 ` Steven Rostedt
  2019-06-18 10:54   ` Yordan Karadzhov (VMware)
  2019-06-17 22:31 ` [PATCH 2/2] kernel-shark: Add make BUILD_TYPE=X gui to change how the gui is made Steven Rostedt
  1 sibling, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2019-06-17 22:31 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Yordan Karadzhov, Troy Engel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

A make clean should clean up the cmake files as well.

Update the kernel-shark/README to reflect some of the changes that
have been made, and options done by the "make" command line.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 Makefile            |  1 +
 kernel-shark/README | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 693f33b69b4e..c9679d42fdbd 100644
--- a/Makefile
+++ b/Makefile
@@ -357,6 +357,7 @@ clean:
 	$(MAKE) -C $(src)/python clean
 	$(MAKE) -C $(src)/tracecmd clean
 	if [ -f $(kshark-dir)/build/Makefile ]; then $(MAKE) -C $(kshark-dir)/build clean; fi
+	cd $(kshark-dir)/build; ./cmake_clean.sh
 
 
 ##### PYTHON STUFF #####
diff --git a/kernel-shark/README b/kernel-shark/README
index 75a0dd08dcac..4fb13698261b 100644
--- a/kernel-shark/README
+++ b/kernel-shark/README
@@ -31,6 +31,11 @@ Building:
 the original trace-cmd end traceevent libraries.
 
 2. Do:
+    make gui
+
+This will perform the following, in case you want to do it directly
+yourself:
+
     cd kernel-shark/build
     cmake ../
     make
@@ -39,7 +44,11 @@ the original trace-cmd end traceevent libraries.
 as a CMake Command-Line option.
 
 2.1.2 By default, installation prefix is "/usr/local". It can be changed using
--D_INSTALL_PREFIX= as a CMake Command-Line option.
+-D_INSTALL_PREFIX= as a CMake Command-Line option. Which can also be
+done by passing in "prefix=" to the make command line.
+
+  make prefix=/my/local/dir gui
+
 
 2.1.3 In addition to the standard CMake build types (Debug, Release,
 RelWithDebInfo, MinSizeRel) KernelShark supports a "Package" build type.
@@ -57,10 +66,8 @@ Examples:
 
     cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic"  ../
 
-2.2.1 Use "make clean" if you want to delete all already compiled objects.
-
-2.2.2 Use the script "cmake_clean.sh" if you want to delete all already
-compiled objects and all files generated by CMake.
+2.2 Use "make clean" if you want to delete all already compiled objects
+and all files generated by CMake.
 
 3. After building the code "kernel-shark/lib" will contain all libraries
 and "kernel-shark/bin" will contain all executables.
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] kernel-shark: Add make BUILD_TYPE=X gui to change how the gui is made
  2019-06-17 22:31 [PATCH 0/2] kernel-shark: Make some top level "make" changes Steven Rostedt
  2019-06-17 22:31 ` [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh Steven Rostedt
@ 2019-06-17 22:31 ` Steven Rostedt
  1 sibling, 0 replies; 5+ messages in thread
From: Steven Rostedt @ 2019-06-17 22:31 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Yordan Karadzhov, Troy Engel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Add a option to the Makefile called "BUILD_TYPE" that is passed to the CMake
commonds 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.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 Makefile                    | 5 ++++-
 kernel-shark/CMakeLists.txt | 2 +-
 kernel-shark/README         | 6 +++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index c9679d42fdbd..ad74a969249f 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 d932c396e4a6..58a3c3b84309 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 4fb13698261b..15d6fbab36fd 100644
--- a/kernel-shark/README
+++ b/kernel-shark/README
@@ -59,9 +59,13 @@ 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:
+    make BUILD_TYPE=Release
+
+  or directly with cmake in the kernel-shark/build directory:
+
     cmake -D_DOXYGEN_DOC=1 -D_INSTALL_PREFIX=/usr ../
 
     cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic"  ../
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh
  2019-06-17 22:31 ` [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh Steven Rostedt
@ 2019-06-18 10:54   ` Yordan Karadzhov (VMware)
  2019-06-18 12:58     ` Steven Rostedt
  0 siblings, 1 reply; 5+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-06-18 10:54 UTC (permalink / raw)
  To: Steven Rostedt, linux-trace-devel; +Cc: Troy Engel



On 18.06.19 г. 1:31 ч., Steven Rostedt wrote:
> From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
> 
> A make clean should clean up the cmake files as well.
> 
> Update the kernel-shark/README to reflect some of the changes that
> have been made, and options done by the "make" command line.
> 
> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
>   Makefile            |  1 +
>   kernel-shark/README | 17 ++++++++++++-----
>   2 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 693f33b69b4e..c9679d42fdbd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -357,6 +357,7 @@ clean:
>   	$(MAKE) -C $(src)/python clean
>   	$(MAKE) -C $(src)/tracecmd clean
>   	if [ -f $(kshark-dir)/build/Makefile ]; then $(MAKE) -C $(kshark-dir)/build clean; fi
> +	cd $(kshark-dir)/build; ./cmake_clean.sh
>   
>   
>   ##### PYTHON STUFF #####
> diff --git a/kernel-shark/README b/kernel-shark/README
> index 75a0dd08dcac..4fb13698261b 100644
> --- a/kernel-shark/README
> +++ b/kernel-shark/README
> @@ -31,6 +31,11 @@ Building:
>   the original trace-cmd end traceevent libraries.
>   
>   2. Do:
> +    make gui
> +
> +This will perform the following, in case you want to do it directly
> +yourself:
> +
>       cd kernel-shark/build
>       cmake ../
>       make
> @@ -39,7 +44,11 @@ the original trace-cmd end traceevent libraries.
>   as a CMake Command-Line option.
>   

I agree with all functional changes in those patches. However, the 
README file becomes a bit ambiguous.

I would prefer having something like this

2. Building KernelShark:
2.1 Option 1 : build KernelShark as part of trace-cmd

      make gui
      All explanations for this build option are following
      ...

2.2 Option 2 : standalone build of KernelShark (for hackers only)

      cd kernel-shark/build
      cmake ../
      make
      All explanations for this build option are following ...
      ...

Note that in Option 1

  make clean

  is equivalent to

  make clean
  ./cmake_clean.sh

in Option 2.

Thanks!
Yordan

>   2.1.2 By default, installation prefix is "/usr/local". It can be changed using
> --D_INSTALL_PREFIX= as a CMake Command-Line option.
> +-D_INSTALL_PREFIX= as a CMake Command-Line option. Which can also be
> +done by passing in "prefix=" to the make command line.
> +
> +  make prefix=/my/local/dir gui
> +
>   
>   2.1.3 In addition to the standard CMake build types (Debug, Release,
>   RelWithDebInfo, MinSizeRel) KernelShark supports a "Package" build type.
> @@ -57,10 +66,8 @@ Examples:
>   
>       cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic"  ../
>   
> -2.2.1 Use "make clean" if you want to delete all already compiled objects.
> -
> -2.2.2 Use the script "cmake_clean.sh" if you want to delete all already
> -compiled objects and all files generated by CMake.
> +2.2 Use "make clean" if you want to delete all already compiled objects
> +and all files generated by CMake.
>   
>   3. After building the code "kernel-shark/lib" will contain all libraries
>   and "kernel-shark/bin" will contain all executables.
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh
  2019-06-18 10:54   ` Yordan Karadzhov (VMware)
@ 2019-06-18 12:58     ` Steven Rostedt
  0 siblings, 0 replies; 5+ messages in thread
From: Steven Rostedt @ 2019-06-18 12:58 UTC (permalink / raw)
  To: Yordan Karadzhov (VMware); +Cc: linux-trace-devel, Troy Engel

On Tue, 18 Jun 2019 13:54:30 +0300
"Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote:

> I agree with all functional changes in those patches. However, the 
> README file becomes a bit ambiguous.

Heh, I wrote that at the last minute and was a bit tired. I was hoping
for a better write up from someone ;-)

> 
> I would prefer having something like this
> 
> 2. Building KernelShark:
> 2.1 Option 1 : build KernelShark as part of trace-cmd
> 
>       make gui
>       All explanations for this build option are following
>       ...
> 
> 2.2 Option 2 : standalone build of KernelShark (for hackers only)
> 
>       cd kernel-shark/build
>       cmake ../
>       make
>       All explanations for this build option are following ...
>       ...
> 
> Note that in Option 1
> 
>   make clean
> 
>   is equivalent to
> 
>   make clean
>   ./cmake_clean.sh
> 
> in Option 2.

Makes sense.

Thanks!

-- Steve

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-18 12:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-17 22:31 [PATCH 0/2] kernel-shark: Make some top level "make" changes Steven Rostedt
2019-06-17 22:31 ` [PATCH 1/2] kernel-shark: Have "make clean" run cmake-clean.sh Steven Rostedt
2019-06-18 10:54   ` Yordan Karadzhov (VMware)
2019-06-18 12:58     ` Steven Rostedt
2019-06-17 22:31 ` [PATCH 2/2] kernel-shark: Add make BUILD_TYPE=X gui to change how the gui is made Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).