build: allow cros-compilation on chromeOS

- 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>
This commit is contained in:
Gwendal Grignou
2017-04-19 16:33:48 -07:00
committed by Eryu Guan
parent 9518ef6402
commit 5d20084fef
6 changed files with 33 additions and 293 deletions
+13
View 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
+9 -5
View File
@@ -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=$@
+4 -24
View File
@@ -1,16 +1,7 @@
# 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.
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)
@@ -52,14 +43,3 @@ AC_DEFUN([AC_PACKAGE_WANT_OPEN_BY_HANDLE_AT],
[ 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])
+2 -1
View 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)
+5 -4
View 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@
-259
View File
@@ -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