summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2019-05-25 09:58:29 +0100
committerJens Axboe <axboe@kernel.dk>2019-05-25 06:36:21 -0600
commit1b049c1265977ba13f20797848859a46ade1b75b (patch)
tree7d56e53bd013d95acdf27643c82643185dc1ba43
parentd672969583c3226828392771b4a949452c9ef578 (diff)
downloadliburing-1b049c1265977ba13f20797848859a46ade1b75b.tar.gz
liburing-1b049c1265977ba13f20797848859a46ade1b75b.tar.bz2
pkgconfig: install a liburing.pc file
pkg-config (https://pkgconfig.freedesktop.org/) makes it easier to build applications that have library dependencies. Libraries ship .pc files containing the compiler and linker flags needed to build successfully. This saves applications from hardcoding these details into their build scripts, especially when these details can change between operating systems or distributions. To build a liburing application: gcc $(pkg-config --cflags --libs liburing) -o myapp myapp.c Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--.gitignore2
-rw-r--r--Makefile13
-rw-r--r--liburing.pc.in12
3 files changed, 25 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index e292825..08ba0e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,5 @@
config-host.h
config-host.mak
config.log
+
+liburing.pc
diff --git a/Makefile b/Makefile
index d42dd45..6755713 100644
--- a/Makefile
+++ b/Makefile
@@ -33,13 +33,22 @@ ifneq ($(MAKECMDGOALS),clean)
include config-host.mak
endif
-install:
+%.pc: %.pc.in
+ sed -e "s%@prefix@%$(prefix)%g" \
+ -e "s%@libdir@%$(libdir)%g" \
+ -e "s%@includedir@%$(includedir)%g" \
+ -e "s%@NAME@%$(NAME)%g" \
+ -e "s%@VERSION@%$(VERSION)%g" \
+ $< >$@
+
+install: $(NAME).pc
@$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) includedir=$(DESTDIR)$(includedir) libdir=$(DESTDIR)$(libdir)
+ $(INSTALL) -D -m 644 $(NAME).pc $(DESTDIR)$(libdir)/pkgconfig/$(NAME).pc
$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man2
$(INSTALL) -m 644 man/*.2 $(DESTDIR)$(mandir)/man2
clean:
- @rm -f config-host.mak config-host.h cscope.out
+ @rm -f config-host.mak config-host.h cscope.out $(NAME).pc
@$(MAKE) -C src clean
@$(MAKE) -C test clean
@$(MAKE) -C examples clean
diff --git a/liburing.pc.in b/liburing.pc.in
new file mode 100644
index 0000000..e621939
--- /dev/null
+++ b/liburing.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=${prefix}
+libdir=@libdir@
+includedir=@includedir@
+
+Name: @NAME@
+Version: @VERSION@
+Description: io_uring library
+URL: http://git.kernel.dk/cgit/liburing/
+
+Libs: -L${libdir} -luring
+Cflags: -I${includedir}