From patchwork Sat May 25 08:58:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 10960683 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5C7CF933 for ; Sat, 25 May 2019 09:06:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4D65128A2D for ; Sat, 25 May 2019 09:06:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 411FE28A7D; Sat, 25 May 2019 09:06:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7B7B28A2D for ; Sat, 25 May 2019 09:06:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726464AbfEYJGt (ORCPT ); Sat, 25 May 2019 05:06:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41668 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726376AbfEYJGt (ORCPT ); Sat, 25 May 2019 05:06:49 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 016033086262; Sat, 25 May 2019 09:06:49 +0000 (UTC) Received: from localhost (ovpn-116-47.ams2.redhat.com [10.36.116.47]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4D59F6269F; Sat, 25 May 2019 09:06:46 +0000 (UTC) From: Stefan Hajnoczi To: Jens Axboe Cc: linux-block@vger.kernel.org, Aarushi Mehta , Julia Suvorova , Stefan Hajnoczi Subject: [PATCH liburing 1/2] pkgconfig: install a liburing.pc file Date: Sat, 25 May 2019 09:58:29 +0100 Message-Id: <20190525085830.31577-2-stefanha@redhat.com> In-Reply-To: <20190525085830.31577-1-stefanha@redhat.com> References: <20190525085830.31577-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Sat, 25 May 2019 09:06:49 +0000 (UTC) Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- Makefile | 13 +++++++++++-- .gitignore | 2 ++ liburing.pc.in | 12 ++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 liburing.pc.in 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/.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/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} From patchwork Sat May 25 08:58:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 10960685 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E9AD014B6 for ; Sat, 25 May 2019 09:06:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D980B28A2D for ; Sat, 25 May 2019 09:06:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CDD3028A7D; Sat, 25 May 2019 09:06:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 768A028A2D for ; Sat, 25 May 2019 09:06:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726497AbfEYJGv (ORCPT ); Sat, 25 May 2019 05:06:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49894 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726376AbfEYJGu (ORCPT ); Sat, 25 May 2019 05:06:50 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 846DF3083392; Sat, 25 May 2019 09:06:50 +0000 (UTC) Received: from localhost (ovpn-116-47.ams2.redhat.com [10.36.116.47]) by smtp.corp.redhat.com (Postfix) with ESMTP id 192545C206; Sat, 25 May 2019 09:06:49 +0000 (UTC) From: Stefan Hajnoczi To: Jens Axboe Cc: linux-block@vger.kernel.org, Aarushi Mehta , Julia Suvorova , Stefan Hajnoczi Subject: [PATCH liburing 2/2] configure: move directory options to ./configure Date: Sat, 25 May 2019 09:58:30 +0100 Message-Id: <20190525085830.31577-3-stefanha@redhat.com> In-Reply-To: <20190525085830.31577-1-stefanha@redhat.com> References: <20190525085830.31577-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Sat, 25 May 2019 09:06:50 +0000 (UTC) Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP libdir is hardcoded to ${prefix}/lib in Makefile. Fedora x86_64 uses /usr/lib64 and this means libaries will be installed in the wrong place. This patch moves prefix, includedir, libdir, and mandir into ./configure for easier customization. To build and install on Fedora x86_64: # ./configure --libdir=/usr/lib64 # make && make install Signed-off-by: Stefan Hajnoczi --- configure | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- Makefile | 4 ---- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/configure b/configure index ef71a14..19c2b54 100755 --- a/configure +++ b/configure @@ -10,6 +10,10 @@ else fi cc=gcc +prefix=/usr +includedir="$prefix/include" +libdir="$prefix/lib" +mandir="$prefix/man" TMPC="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.c" TMPC2="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}-2.c" @@ -98,11 +102,60 @@ has() { type "$1" >/dev/null 2>&1 } +output_mak() { + echo "$1=$2" >> $config_host_mak +} + output_sym() { - echo "$1=y" >> $config_host_mak + output_mak "$1" "y" echo "#define $1" >> $config_host_h } +print_and_output_mak() { + print_config "$1" "$2" + output_mak "$1" "$2" +} + +for opt do + optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)') + case "$opt" in + --help|-h) show_help=yes + ;; + --prefix=*) prefix="$optarg" + ;; + --includedir=*) includedir="$optarg" + ;; + --libdir=*) libdir="$optarg" + ;; + --mandir=*) mandir="$optarg" + ;; + *) + echo "ERROR: unkown option $opt" + echo "Try '$0 --help' for more information" + exit 1 + ;; + esac +done + +if test "$show_help" = "yes"; then +cat <&/dev/null` && echo "rpmbuild" || echo "rpm") INSTALL=install -prefix ?= /usr -includedir=$(prefix)/include -libdir=$(prefix)/lib -mandir=$(prefix)/man default: all