build: allow cros-compilation on chromeOS
authorGwendal Grignou <gwendal@chromium.org>
Wed, 19 Apr 2017 23:33:48 +0000 (16:33 -0700)
committerEryu Guan <eguan@redhat.com>
Thu, 27 Apr 2017 03:30:07 +0000 (11:30 +0800)
- Request LIBTOOL to be used
- Set topbuildir based on a Makefile variable to call libtool
- Use /usr/local instead of /var for xfstest final location
- Move macros from aclocal.m4 to acinclude.m4, aclocal.m4 is autogenerated.
- Use autoconf variables @prefix@, @exec_prefix@.

The regular way of compiling xfstests - make - remains.
But it now runs autoreconf and libtoolize -i to produce a valid
configure.
Verified with 'make install --dry-run' that files are installed at the
same place.
Verified compiling in chromeOS chroot works as well.

[eguan: resolve merge conflicts and update .gitignore and remove
generated files by realclean]

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
.gitignore
Makefile
acinclude.m4 [new file with mode: 0644]
aclocal.m4 [deleted file]
configure.ac
include/builddefs.in
install-sh [deleted file]

index ded4a61..c049bef 100644 (file)
@@ -9,10 +9,23 @@
 /results
 
 # autoconf generated files
+/aclocal.m4
 /autom4te.cache
 /configure
+/config.guess
 /config.log
 /config.status
+/config.sub
+/m4/libtool.m4
+/m4/ltoptions.m4
+/m4/ltsugar.m4
+/m4/ltversion.m4
+/m4/lt~obsolete.m4
+
+# libtool
+/libtool
+/install-sh
+/ltmain.sh
 
 # build system
 /include/builddefs
index 30d8747..ebf5c03 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -41,10 +41,13 @@ endif
 
 SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz
 
-CONFIGURE = configure include/builddefs include/config.h
+CONFIGURE = configure include/builddefs include/config.h \
+           aclocal.m4 config.guess config.sub install-sh ltmain.sh \
+           m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
+           m4/lt~obsolete.m4
 LSRCFILES = configure configure.ac aclocal.m4 README VERSION
 LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
-       conftest* check.log check.time
+       conftest* check.log check.time libtool
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 LDIRT += $(SRCTAR)
@@ -76,12 +79,13 @@ clean:  # if configure hasn't run, nothing to clean
 endif
 
 configure: configure.ac
-       autoheader
-       autoconf
+       autoreconf --include=m4
+       libtoolize -i
 
 include/builddefs include/config.h: configure
        ./configure \
-                --libexecdir=/usr/lib
+                --libexecdir=/usr/lib \
+                --exec_prefix=/var/lib
 
 aclocal.m4::
        aclocal --acdir=`pwd`/m4 --output=$@
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644 (file)
index 0000000..a605c01
--- /dev/null
@@ -0,0 +1,45 @@
+dnl Copyright (C) 2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_FIEMAP_H],
+  [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=true ], [ have_fiemap=false ])
+    AC_SUBST(have_fiemap)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_PRCTL_H],
+  [ AC_CHECK_HEADERS([sys/prctl.h], [ have_prctl=true ], [ have_prctl=false ])
+    AC_SUBST(have_prctl)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_FS_H],
+  [ AC_CHECK_HEADER([linux/fs.h])
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE],
+  [ AC_MSG_CHECKING([for fallocate])
+    AC_TRY_LINK([
+#define _GNU_SOURCE
+#define _FILE_OFFSET_BITS 64
+#include <fcntl.h>
+#include <linux/falloc.h> ],
+      [ fallocate(0, 0, 0, 0); ],
+      [ have_fallocate=true; AC_MSG_RESULT(yes) ],
+      [ have_fallocate=false; AC_MSG_RESULT(no) ])
+    AC_SUBST(have_fallocate)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_OPEN_BY_HANDLE_AT],
+  [ AC_MSG_CHECKING([for open_by_handle_at])
+    AC_TRY_LINK([
+#define _GNU_SOURCE
+#include <fcntl.h>
+      ],
+      [
+          struct file_handle fh;
+          open_by_handle_at(0, &fh, 0);
+      ],
+      [ have_open_by_handle_at=true; AC_MSG_RESULT(yes) ],
+      [ have_open_by_handle_at=false; AC_MSG_RESULT(no) ])
+    AC_SUBST(have_open_by_handle_at)
+  ])
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644 (file)
index 829fa10..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_FIEMAP_H],
-  [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=true ], [ have_fiemap=false ])
-    AC_SUBST(have_fiemap)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_PRCTL_H],
-  [ AC_CHECK_HEADERS([sys/prctl.h], [ have_prctl=true ], [ have_prctl=false ])
-    AC_SUBST(have_prctl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_FS_H],
-  [ AC_CHECK_HEADER([linux/fs.h])
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE],
-  [ AC_MSG_CHECKING([for fallocate])
-    AC_TRY_LINK([
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
-#include <fcntl.h>
-#include <linux/falloc.h> ],
-      [ fallocate(0, 0, 0, 0); ],
-      [ have_fallocate=true; AC_MSG_RESULT(yes) ],
-      [ have_fallocate=false; AC_MSG_RESULT(no) ])
-    AC_SUBST(have_fallocate)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_OPEN_BY_HANDLE_AT],
-  [ AC_MSG_CHECKING([for open_by_handle_at])
-    AC_TRY_LINK([
-#define _GNU_SOURCE
-#include <fcntl.h>
-      ],
-      [
-          struct file_handle fh;
-          open_by_handle_at(0, &fh, 0);
-      ],
-      [ have_open_by_handle_at=true; AC_MSG_RESULT(yes) ],
-      [ have_open_by_handle_at=false; AC_MSG_RESULT(no) ])
-    AC_SUBST(have_open_by_handle_at)
-  ])
-m4_include([m4/multilib.m4])
-m4_include([m4/package_acldev.m4])
-m4_include([m4/package_aiodev.m4])
-m4_include([m4/package_attrdev.m4])
-m4_include([m4/package_dmapidev.m4])
-m4_include([m4/package_gdbmdev.m4])
-m4_include([m4/package_globals.m4])
-m4_include([m4/package_ssldev.m4])
-m4_include([m4/package_utilies.m4])
-m4_include([m4/package_uuiddev.m4])
-m4_include([m4/package_xfslibs.m4])
index 1285bf4..5ddaadc 100644 (file)
@@ -1,5 +1,6 @@
 AC_INIT([xfstests], [1.1.1])
-AC_PREREQ(2.50)
+AC_CONFIG_MACRO_DIR([m4])
+LT_INIT
 AC_CONFIG_SRCDIR([src/xfsctl.c])
 AC_PACKAGE_GLOBALS(xfstests)
 AC_PACKAGE_UTILITIES(xfstests)
index 2725037..952a3e0 100644 (file)
@@ -7,6 +7,8 @@
 ifndef _BUILDDEFS_INCLUDED_
 _BUILDDEFS_INCLUDED_ = 1
 
+top_builddir=$(TOPDIR)
+
 DEBUG = @debug_build@
 OPTIMIZER = @opt_build@
 MALLOCLIB = @malloc_lib@
@@ -24,6 +26,7 @@ LIBUUID = @libuuid@
 LIBHANDLE = @libhdl@
 LIBDM = @libdm@
 LIBTEST = $(TOPDIR)/lib/libtest.la
+prefix = @prefix@
 
 PKG_NAME        = @pkg_name@
 PKG_USER        = @pkg_user@
@@ -32,10 +35,8 @@ PKG_RELEASE     = @pkg_release@
 PKG_VERSION     = @pkg_version@
 PKG_PLATFORM    = @pkg_platform@
 PKG_DISTRIBUTION= @pkg_distribution@
-PKG_SBIN_DIR    = @sbindir@
-# A bit of a hack; by rights only state should probably go here
-# But for now ...
-PKG_LIB_DIR     = /var/lib/@pkg_name@
+PKG_LIB_DIR     = $(DESTDIR)@exec_prefix@/@pkg_name@
+
 
 CC              = @cc@
 AWK             = @awk@
diff --git a/install-sh b/install-sh
deleted file mode 100755 (executable)
index 58e7b58..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-#! /bin/bash
-#
-# Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it would be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write the Free Software Foundation,
-# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#
-#
-# This script emulates bsd install and also recognises
-# two environment variables, with the following semantics :-
-#
-# $DIST_MANIFEST - if set, the name of the file to append manifest
-#                  information in the following format:
-#                  File     :  f mode owner group src target
-#                  Directory:  d mode owner group target
-#                  Symlink  :  l linkval target
-#
-# $DIST_ROOT     - if set, prepend to target
-#
-# The sematics of all combinations of these two variables
-# are as follows:
-#
-# $DIST_MANIFEST?  $DIST_ROOT? |   Copy?  Append Manifest?
-# -----------------------------+--------------------------
-#       not set       not set  |    yes        no
-#       not set       set      |    yes        no
-#       set           not set  |    no         yes
-#       set           set      |    yes        yes
-#
-_usage() {
-    echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
-    echo "or     $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
-    echo "or     $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
-    echo "or     $prog -S file target  (creates \"target\" symlink)"
-    echo ""
-    echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
-    echo "behaviour of this command - see comments in the script."
-    echo "The -D flag is only available for the second usage, and causes"
-    echo "the target directory to be created before installing the file."
-    echo ""
-    exit 1
-}
-
-_chown ()
-{
-    _st=255
-    if [ $# -eq 3 ] ; then
-       chown $1:$2 $3
-       _st=$?
-       if [ $_st -ne 0 ] ; then
-           if [ $REAL_UID != '0' ] ; then
-               if [ ! -f $DIST_ROOT/.chown.quite ] ; then
-                   echo '==============================================='
-                   echo Ownership of files under ${DIST_ROOT:-/}
-                   echo cannot be changed
-                   echo '==============================================='
-                   if [ -n "$DIST_ROOT" ] ; then
-                       touch $DIST_ROOT/.chown.quite
-                   fi
-               fi
-              _st=0
-           fi     
-       fi
-    fi
-
-    return $_st
-}
-
-
-_manifest ()
-{ 
-    echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
-}
-
-prog=`basename $0`
-HERE=`pwd`
-dflag=false
-Dflag=false
-Sflag=false
-DIRMODE=755
-FILEMODE=644
-OWNER=`id -u`
-GROUP=`id -g`
-REAL_UID=$OWNER
-
-# default is to install and don't append manifest
-INSTALL=true
-MANIFEST=:
-
-: ${DIST_ROOT:=${DESTDIR}}
-
-[ -n "$DIST_MANIFEST" -a -z "$DIST_ROOT" ] && INSTALL=false
-[ -n "$DIST_MANIFEST" ] && MANIFEST="_manifest"
-
-[ $# -eq 0 ] && _usage
-
-if $INSTALL
-then
-    CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
-else
-    CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
-fi
-
-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
-
-while getopts "Dcm:d:S:o:g:" c $*
-do
-   case $c in
-   c)
-       ;;
-   g)
-       GROUP=$OPTARG
-       ;;
-   o)
-       OWNER=$OPTARG
-       ;;
-   m)
-       DIRMODE=`expr $OPTARG`
-       FILEMODE=$DIRMODE
-       ;;
-   D) 
-       Dflag=true
-       ;;
-   S) 
-       symlink=$OPTARG
-       Sflag=true
-       ;;
-   d) 
-       dir=$DIST_ROOT/$OPTARG
-       dflag=true
-       ;;
-   *)
-       _usage
-       ;;
-   esac
-done
-
-shift `expr $OPTIND - 1`
-
-status=0
-if $dflag
-then
-    #
-    # first usage
-    #
-    $MKDIR -p $dir 
-    status=$?
-    if [ $status -eq 0 ]
-    then
-       $CHMOD $DIRMODE $dir
-       status=$?
-    fi
-    if [ $status -eq 0 ]
-    then
-       $CHOWN $OWNER $GROUP $dir
-       status=$?
-    fi
-    $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
-elif $Sflag
-then
-    #
-    # fourth usage (symlink)
-    #
-    if [ $# -ne 1 ]
-    then
-       _usage
-    else
-       target=$DIST_ROOT/$1
-    fi
-    $LN -s -f $symlink $target
-    status=$?
-    $MANIFEST l $symlink ${target#$DIST_ROOT} 
-else
-    list=""
-    dir=""
-    if [ $# -eq 2 ]
-    then
-       #
-       # second usage
-       #
-       f=$1
-       dir=$DIST_ROOT/$2
-       if $Dflag
-       then
-           mkdir -p `dirname $dir`
-       fi
-       $CP $f $dir
-       status=$?
-       if [ $status -eq 0 ]
-       then 
-           if [ -f $dir/$f ]
-           then
-               $CHMOD $FILEMODE $dir/$f
-               status=$?
-               if [ $status -eq 0 ]
-               then
-                   $CHOWN $OWNER $GROUP $dir/$f
-                   status=$?
-               fi
-               $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
-           else
-               $CHMOD $FILEMODE $dir
-               status=$?
-               if [ $status -eq 0 ]
-               then
-                   $CHOWN $OWNER $GROUP $dir
-                   status=$?
-               fi
-               $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
-           fi
-       fi
-    else
-       #
-       # third usage
-       #
-       n=1
-       while [ $# -gt 0 ]
-       do
-           if [ $# -gt 1 ]
-           then
-               list="$list $1"
-           else
-               dir=$DIST_ROOT/$1
-           fi
-           shift
-       done
-
-       # echo DIR=$dir list=\"$list\"
-       for f in $list
-       do
-           $CP $f $dir
-           status=$?
-           if [ $status -eq 0 ]
-           then
-               $CHMOD $FILEMODE $dir/$f
-               status=$?
-               if [ $status -eq 0 ]
-               then
-                   $CHOWN $OWNER $GROUP $dir/$f
-                   status=$?
-               fi
-               $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
-           fi
-           [ $status -ne 0 ] && break
-       done
-    fi
-fi
-
-exit $status