From c3f8dc2a48e0c310abb7b58019fbcf944fa2697c Mon Sep 17 00:00:00 2001 From: Turbo Fredriksson Date: Sat, 7 Jun 2014 01:23:22 +0200 Subject: [PATCH] Add a pkgconfig file Providing a pkg-config file makes is easy for 3rd party applications to link against the libzfs libraries. It also allows the libzfs developers to modify the list of required libraries and cflags without breaking existing applications. The following example illustrates how pkg-config can be used: cc `pkg-config --cflags --libs libzfs` -o myapp myapp.c /* * myapp.c */ void main() { libzfs_handle_t *hdl; hdl = libzfs_init(); if (hdl) libzfs_fini(hdl); } Signed-off-by: Turbo Fredriksson Signed-off-by: Brian Behlendorf Closes: #585 --- configure.ac | 2 ++ lib/libzfs/.gitignore | 2 ++ lib/libzfs/Makefile.am | 4 ++++ lib/libzfs/libzfs.pc.in | 12 ++++++++++++ lib/libzfs/libzfs_core.pc.in | 11 +++++++++++ rpm/generic/zfs.spec.in | 2 ++ 6 files changed, 33 insertions(+) create mode 100644 lib/libzfs/.gitignore create mode 100644 lib/libzfs/libzfs.pc.in create mode 100644 lib/libzfs/libzfs_core.pc.in diff --git a/configure.ac b/configure.ac index ffa01194a6..bad15bd16e 100644 --- a/configure.ac +++ b/configure.ac @@ -90,6 +90,8 @@ AC_CONFIG_FILES([ lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile + lib/libzfs/libzfs.pc + lib/libzfs/libzfs_core.pc lib/libzfs/Makefile lib/libzfs_core/Makefile lib/libshare/Makefile diff --git a/lib/libzfs/.gitignore b/lib/libzfs/.gitignore new file mode 100644 index 0000000000..d719bc1ad9 --- /dev/null +++ b/lib/libzfs/.gitignore @@ -0,0 +1,2 @@ +/libzfs.pc +/libzfs_core.pc diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am index 8b1f517828..c66285e249 100644 --- a/lib/libzfs/Makefile.am +++ b/lib/libzfs/Makefile.am @@ -1,5 +1,9 @@ include $(top_srcdir)/config/Rules.am +libzfs_pcdir = $(datarootdir)/pkgconfig +libzfs_pc_DATA = $(top_srcdir)/lib/libzfs/libzfs.pc $(top_srcdir)/lib/libzfs/libzfs_core.pc +EXTRA_DIST = $(top_srcdir)/lib/libzfs/libzfs.pc $(top_srcdir)/lib/libzfs/libzfs_core.pc + DEFAULT_INCLUDES += \ -I$(top_srcdir)/include \ -I$(top_srcdir)/lib/libspl/include diff --git a/lib/libzfs/libzfs.pc.in b/lib/libzfs/libzfs.pc.in new file mode 100644 index 0000000000..0e83f7a64b --- /dev/null +++ b/lib/libzfs/libzfs.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libzfs +Description: LibZFS library +Version: @VERSION@ +URL: http://zfsonlinux.org +Requires: libzfs_core +Cflags: -I${includedir}/libzfs -I${includedir}/libspl +Libs: -L${libdir} -lzfs diff --git a/lib/libzfs/libzfs_core.pc.in b/lib/libzfs/libzfs_core.pc.in new file mode 100644 index 0000000000..2b6a86bfa4 --- /dev/null +++ b/lib/libzfs/libzfs_core.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libzfs_core +Description: LibZFS core library +Version: @VERSION@ +URL: http://zfsonlinux.org +Cflags: -I${includedir}/libzfs -I${includedir}/libspl +Libs: -L${libdir} -lzfs_core diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in index b0917176dd..c173b2c6e2 100644 --- a/rpm/generic/zfs.spec.in +++ b/rpm/generic/zfs.spec.in @@ -280,6 +280,8 @@ exit 0 %{_libdir}/libzfs*.so.* %files -n libzfs2-devel +%{_datadir}/pkgconfig/libzfs.pc +%{_datadir}/pkgconfig/libzfs_core.pc %{_libdir}/*.so %{_includedir}/* %doc AUTHORS COPYRIGHT DISCLAIMER