From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Tzvetomir Stoyanov <tstoyanov@vmware.com>
Subject: [PATCH 2/9] tools/lib/traceevent: Added support for pkg-config
Date: Fri, 30 Nov 2018 10:44:05 -0500 [thread overview]
Message-ID: <20181130154647.022471992@goodmis.org> (raw)
In-Reply-To: 20181130154403.150474900@goodmis.org
From: Tzvetomir Stoyanov <tstoyanov@vmware.com>
This patch implements integration with pkg-config framework.
pkg-config can be used by the library users to determine
required CFLAGS and LDFLAGS in order to use the library
Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
tools/lib/traceevent/Makefile | 26 ++++++++++++++++---
.../lib/traceevent/libtraceevent.pc.template | 10 +++++++
2 files changed, 33 insertions(+), 3 deletions(-)
create mode 100644 tools/lib/traceevent/libtraceevent.pc.template
diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile
index 0b4e833088a4..adb16f845ab3 100644
--- a/tools/lib/traceevent/Makefile
+++ b/tools/lib/traceevent/Makefile
@@ -25,6 +25,7 @@ endef
$(call allow-override,CC,$(CROSS_COMPILE)gcc)
$(call allow-override,AR,$(CROSS_COMPILE)ar)
$(call allow-override,NM,$(CROSS_COMPILE)nm)
+$(call allow-override,PKG_CONFIG,pkg-config)
EXT = -std=gnu99
INSTALL = install
@@ -47,6 +48,8 @@ prefix ?= /usr/local
libdir = $(prefix)/$(libdir_relative)
man_dir = $(prefix)/share/man
man_dir_SQ = '$(subst ','\'',$(man_dir))'
+pkgconfig_dir ?= $(word 1,$(shell $(PKG_CONFIG) \
+ --variable pc_path pkg-config | tr ":" " "))
export man_dir man_dir_SQ INSTALL
export DESTDIR DESTDIR_SQ
@@ -270,7 +273,19 @@ define do_generate_dynamic_list_file
fi
endef
-install_lib: all_cmd install_plugins
+PKG_CONFIG_FILE = libtraceevent.pc
+define do_install_pkgconfig_file
+ if [ -n "${pkgconfig_dir}" ]; then \
+ cp -f ${PKG_CONFIG_FILE}.template ${PKG_CONFIG_FILE}; \
+ sed -i "s|INSTALL_PREFIX|${1}|g" ${PKG_CONFIG_FILE}; \
+ sed -i "s|LIB_VERSION|${EVENT_PARSE_VERSION}|g" ${PKG_CONFIG_FILE}; \
+ $(call do_install,$(PKG_CONFIG_FILE),$(pkgconfig_dir),644); \
+ else \
+ (echo Failed to locate pkg-config directory) 1>&2; \
+ fi
+endef
+
+install_lib: all_cmd install_plugins install_pkgconfig
$(call QUIET_INSTALL, $(LIB_TARGET)) \
$(call do_install_mkdir,$(libdir_SQ)); \
cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -279,6 +294,10 @@ install_plugins: $(PLUGINS)
$(call QUIET_INSTALL, trace_plugins) \
$(call do_install_plugins, $(PLUGINS))
+install_pkgconfig:
+ $(call QUIET_INSTALL, $(PKG_CONFIG_FILE)) \
+ $(call do_install_pkgconfig_file,$(prefix))
+
install_headers:
$(call QUIET_INSTALL, headers) \
$(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \
@@ -289,8 +308,9 @@ install: install_lib
clean:
$(call QUIET_CLEAN, libtraceevent) \
- $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd \
- $(RM) TRACEEVENT-CFLAGS tags TAGS
+ $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd; \
+ $(RM) TRACEEVENT-CFLAGS tags TAGS; \
+ $(RM) $(PKG_CONFIG_FILE)
PHONY += force plugins
force:
diff --git a/tools/lib/traceevent/libtraceevent.pc.template b/tools/lib/traceevent/libtraceevent.pc.template
new file mode 100644
index 000000000000..42e4d6cb6b9e
--- /dev/null
+++ b/tools/lib/traceevent/libtraceevent.pc.template
@@ -0,0 +1,10 @@
+prefix=INSTALL_PREFIX
+libdir=${prefix}/lib64
+includedir=${prefix}/include/traceevent
+
+Name: libtraceevent
+URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
+Description: Linux kernel trace event library
+Version: LIB_VERSION
+Cflags: -I${includedir}
+Libs: -L${libdir} -ltraceevent
--
2.19.1
next prev parent reply other threads:[~2018-11-30 15:47 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-30 15:44 [PATCH 0/9] tools/lib/traceevent: More udpates to make libtraceevent into a library Steven Rostedt
2018-11-30 15:44 ` [PATCH 1/9] tools/lib/traceevent: Implemented new API tep_get_ref() Steven Rostedt
2018-12-14 20:34 ` [tip:perf/core] tools lib traceevent: Implement " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:01 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` Steven Rostedt [this message]
2018-12-04 7:32 ` [PATCH 2/9] tools/lib/traceevent: Added support for pkg-config Namhyung Kim
2018-12-04 8:51 ` Tzvetomir Stoyanov
2018-12-04 17:27 ` Steven Rostedt
2018-12-14 20:34 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:01 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file Steven Rostedt
2018-12-04 7:47 ` Namhyung Kim
2018-12-04 19:41 ` Steven Rostedt
2018-12-05 12:25 ` Jiri Olsa
2018-12-05 17:03 ` Steven Rostedt
2018-12-05 17:22 ` Jiri Olsa
2018-12-14 20:35 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:02 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 4/9] tools/lib/traceevent, tools/perf: Rename struct tep_event_format to struct tep_event Steven Rostedt
2018-12-14 20:36 ` [tip:perf/core] tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event' tip-bot for Tzvetomir Stoyanov
2018-12-18 14:02 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 5/9] tools/lib/traceevent: Rename tep_free_format() to tep_free_event() Steven Rostedt
2018-12-14 20:36 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:03 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 6/9] tools/perf: traceevent API cleanup, remove __tep_data2host*() Steven Rostedt
2018-12-14 20:37 ` [tip:perf/core] perf tools: " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:04 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup Steven Rostedt
2018-11-30 19:18 ` Arnaldo Carvalho de Melo
2018-11-30 19:37 ` Steven Rostedt
2018-11-30 19:55 ` Arnaldo Carvalho de Melo
2018-11-30 19:57 ` Steven Rostedt
2018-11-30 20:09 ` Steven Rostedt
2018-11-30 20:16 ` Arnaldo Carvalho de Melo
2018-12-03 10:42 ` Arnaldo Carvalho de Melo
2018-12-14 20:37 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-18 14:04 ` tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 8/9] tools/lib/traceevent: Introduce new libtracevent API: tep_override_comm() Steven Rostedt
2019-01-08 13:35 ` Arnaldo Carvalho de Melo
2019-01-09 7:12 ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-11-30 15:44 ` [PATCH 9/9] tools/lib/traceevent: Add sanity check to is_timestamp_in_us() Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181130154647.022471992@goodmis.org \
--to=rostedt@goodmis.org \
--cc=acme@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=tstoyanov@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.