[PATCH liburing 2/2] configure: move directory options to ./configure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <stefanha@xxxxxxxxxx>
---
 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 <<EOF
+
+Usage: configure [options]
+Options: [defaults in brackets after descriptions]
+  --help                   print this message
+  --prefix=PATH            install in PATH [$prefix]
+  --includedir=PATH        install headers in PATH [$includedir]
+  --libdir=PATH            install libraries in PATH [$libdir]
+  --mandir=PATH            install man pages in PATH [$mandir]
+EOF
+exit 0
+fi
+
+print_and_output_mak "prefix" "$prefix"
+print_and_output_mak "includedir" "$includedir"
+print_and_output_mak "libdir" "$libdir"
+print_and_output_mak "mandir" "$mandir"
+
 ##########################################
 # check for __kernel_rwf_t
 __kernel_rwf_t="no"
diff --git a/Makefile b/Makefile
index 6755713..ea639d6 100644
--- a/Makefile
+++ b/Makefile
@@ -5,10 +5,6 @@ TAG = $(NAME)-$(VERSION)
 RPMBUILD=$(shell `which rpmbuild >&/dev/null` && echo "rpmbuild" || echo "rpm")
 
 INSTALL=install
-prefix ?= /usr
-includedir=$(prefix)/include
-libdir=$(prefix)/lib
-mandir=$(prefix)/man
 
 default: all
 
-- 
2.21.0




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux