[DTrace-devel] [PATCH 6/9] build: add a pkg-config file for dtrace consumers: use it

Nick Alcock nick.alcock at oracle.com
Fri May 31 18:59:25 UTC 2024


This lets you relocate the include path anywhere you like: users of
<dtrace.h> et al should invoke $(pkg-config --cflags dtrace) and
$(pkg-config --libs dtrace) to get the dtrace consumer header directory and
-ldtrace invocation for linking.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
---
 runtest.sh       |  2 +-
 uts/Build        | 10 ++++++----
 uts/dtrace.pc.in |  8 ++++++++
 3 files changed, 15 insertions(+), 5 deletions(-)
 create mode 100644 uts/dtrace.pc.in

diff --git a/runtest.sh b/runtest.sh
index cc9703e12c161..817f4a90487d9 100755
--- a/runtest.sh
+++ b/runtest.sh
@@ -579,7 +579,7 @@ else
     dtrace="/usr/sbin/dtrace"
     test_libdir="installed"
     test_ldflags=""
-    test_cppflags="-DARCH_$arch $(pkg-config --cflags dtrace_sdt)"
+    test_cppflags="-DARCH_$arch $(pkg-config --cflags dtrace_sdt) $(pkg-config --cflags dtrace)"
 
     if [[ ! -x $dtrace ]]; then
         echo "$dtrace not available." >&2
diff --git a/uts/Build b/uts/Build
index feafa21369f2e..7948e9f2d084b 100644
--- a/uts/Build
+++ b/uts/Build
@@ -22,7 +22,7 @@ PROBE_HEADERS_INSTALL := common/sys/sdt.h \
 
 # The pkg-config files undergo a few translations with sed before installation.
 
-SHARE_PKG_CONFIG_INSTALL := dtrace_sdt.pc
+SHARE_PKG_CONFIG_INSTALL := dtrace.pc dtrace_sdt.pc
 
 install::
 	mkdir -p $(INSTINCLUDEDIR)/sys
@@ -34,7 +34,9 @@ install::
 	mkdir -p $(INSTPKGCONFIGDIR)
 	$(call describe-install-target,$(INSTPKGCONFIGDIR),$(SHARE_PKG_CONFIG_INSTALL))
 	for name in $(SHARE_PKG_CONFIG_INSTALL); do \
-		cd $(uts_DIR) && \
-		    sed 's, at SDTINCLUDEDIR@,$(SDTINCLUDEDIR),g; s, at VERSION@,$(VERSION),g' < \
-			$${name}.in > $(INSTPKGCONFIGDIR)/$$name; \
+		(cd $(uts_DIR) && \
+		    sed -e 's, at SDTINCLUDEDIR@,$(SDTINCLUDEDIR),g;' \
+			-e 's, at INCLUDEDIR@,$(INCLUDEDIR),g;' \
+			-e 's, at VERSION@,$(VERSION),g' < \
+			$${name}.in > $(INSTPKGCONFIGDIR)/$$name;) \
 	done
diff --git a/uts/dtrace.pc.in b/uts/dtrace.pc.in
new file mode 100644
index 0000000000000..58aa46fc75c9d
--- /dev/null
+++ b/uts/dtrace.pc.in
@@ -0,0 +1,8 @@
+includedir = @INCLUDEDIR@
+libdir = @LIBDIR@
+
+Name: DTrace
+Description: DTrace consumer headers
+Version: @VERSION@
+Cflags: -I${includedir}
+Libs: -L${libdir} -ldtrace
-- 
2.45.1.275.g567cb0950c




More information about the DTrace-devel mailing list