This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
[PATCH] config: Add libelf and libdw pkg-config files.
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Mon, 04 Jan 2016 21:57:02 +0100
- Subject: [PATCH] config: Add libelf and libdw pkg-config files.
There were some requests for pkg-config files, so this adds them for
libelf and libdw. Since I don't have much experience with pkg-config
files I would like it if someone could double check this produces
the correct .pc files.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
---
ChangeLog | 5 +++++
config/ChangeLog | 10 ++++++++++
config/Makefile.am | 6 +++++-
config/elfutils.spec.in | 2 ++
config/libdw.pc.in | 22 ++++++++++++++++++++++
config/libelf.pc.in | 14 ++++++++++++++
configure.ac | 12 ++++++++++--
7 files changed, 68 insertions(+), 3 deletions(-)
create mode 100644 config/libdw.pc.in
create mode 100644 config/libelf.pc.in
diff --git a/ChangeLog b/ChangeLog
index bbe0b8c..49b1527 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-04 Mark Wielaard <mjw@redhat.com>
+
+ * configure.ac: Add BZ2_LIBS and LIBLZMA substitutions.
+ Add config/libelf.pc and config/libdw.pc config files.
+
2015-10-16 Mark Wielaard <mjw@redhat.com>
* configure.ac: Make zlib mandatory.
diff --git a/config/ChangeLog b/config/ChangeLog
index 428162f..baa4303 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,13 @@
+2016-01-04 Mark Wielaard <mjw@redhat.com>
+
+ * libelf.pc.in: New file.
+ * libdw.pc.in: Likewise.
+ * Makefile.am (EXTRA_DIST): Add libelf.pc.in and libdw.pc.in.
+ (pkgconfigdir): New variable.
+ (pkgconfigdir_DATA): Likewise.
+ * elfutils.spec.in (files devel): Add libdw.pc.
+ (files libelf-devel): Add libelf.pc.
+
2015-10-15 Mark Wielaard <mjw@redhat.com>
* elfutils.spec.in: Update for 0.164.
diff --git a/config/Makefile.am b/config/Makefile.am
index 23f7b65..66012d0 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
## Configure input file for elfutils.
##
-## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015 Red Hat, Inc.
+## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015, 2016 Red Hat, Inc.
## This file is part of elfutils.
##
## This file is free software; you can redistribute it and/or modify
@@ -29,6 +29,10 @@
## not, see <http://www.gnu.org/licenses/>.
##
EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf
+ libelf.pc.in libdw.pc.in
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libelf.pc libdw.pc
if MAINTAINER_MODE
$(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index b718f06..40b08bf 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -197,6 +197,7 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libebl.a
#%{_libdir}/libasm.so
%{_libdir}/libdw.so
+%{_libdir}/pkgconfig/libdw.pc
%files devel-static
%{_libdir}/libdw.a
@@ -215,6 +216,7 @@ rm -rf ${RPM_BUILD_ROOT}
%{_includedir}/nlist.h
%{_includedir}/elfutils/version.h
%{_libdir}/libelf.so
+%{_libdir}/pkgconfig/libelf.pc
%files libelf-devel-static
%{_libdir}/libelf.a
diff --git a/config/libdw.pc.in b/config/libdw.pc.in
new file mode 100644
index 0000000..b7dc002
--- /dev/null
+++ b/config/libdw.pc.in
@@ -0,0 +1,22 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libdw
+Description: elfutils library for DWARF data and ELF file or process inspection
+Version: @VERSION@
+URL: https://fedorahosted.org/elfutils/
+
+Libs: -L${libdir} -ldw
+Cflags: -I${includedir}
+
+# We need the exact matching elfutils libelf version since internal data
+# structures are used.
+Requires: libelf = @VERSION@
+
+# We support various compressed ELF images, but don't export any of the
+# data structures or functions. zlib (gz) is always required, bzip2 (bz2)
+# and lzma (xz) are optional. But bzip2 doesn't have a pkg-config file.
+Requires.private: zlib @LIBLZMA@
+Libs.private: @BZ2_LIB@
diff --git a/config/libelf.pc.in b/config/libelf.pc.in
new file mode 100644
index 0000000..1fc7e4c
--- /dev/null
+++ b/config/libelf.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libelf
+Description: elfutils libelf library to read and write ELF files
+Version: @VERSION@
+URL: https://fedorahosted.org/elfutils/
+
+Libs: -L${libdir} -lelf
+Cflags: -I${includedir}
+
+Requires.private: zlib
diff --git a/configure.ac b/configure.ac
index e010754..bc50e31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
dnl Configure input file for elfutils. -*-autoconf-*-
dnl
-dnl Copyright (C) 1996-2015 Red Hat, Inc.
+dnl Copyright (C) 1996-2016 Red Hat, Inc.
dnl
dnl This file is part of elfutils.
dnl
@@ -22,7 +22,7 @@ AC_INIT([elfutils],[0.164],[https://bugzilla.redhat.com/],[elfutils])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_FILES([config/Makefile])
-AC_COPYRIGHT([Copyright (C) 1996-2015 Red Hat, Inc.])
+AC_COPYRIGHT([Copyright (C) 1996-2016 Red Hat, Inc.])
AC_PREREQ(2.63) dnl Minimum Autoconf version required.
dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
@@ -252,7 +252,12 @@ dnl conditional and config.h USE_BZLIB/USE_LZMALIB #define.
save_LIBS="$LIBS"
LIBS=
eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2)
+# We need this since bzip2 doesn't have a pkgconfig file.
+BZ2_LIB="$LIBS"
+AC_SUBST([BZ2_LIB])
eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)])
+AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""])
+AC_SUBST([LIBLZMA])
zip_LIBS="$LIBS"
LIBS="$save_LIBS"
AC_SUBST([zip_LIBS])
@@ -352,6 +357,9 @@ dnl Test suite.
AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see.
AC_CONFIG_FILES([tests/Makefile])
+dnl pkgconfig files
+AC_CONFIG_FILES([config/libelf.pc config/libdw.pc])
+
# Get the definitions necessary to create the Makefiles in the po
# subdirectories. This is a small subset of the gettext rules.
AC_SUBST(USE_NLS, yes)
--
1.8.3.1