progname=$0
package=gnulib
-cvsdatestamp='$Date: 2005-09-19 15:32:51 $'
+cvsdatestamp='$Date: 2005-09-19 15:33:19 $'
last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
# - libname library name
# - libtool true if libtool will be used, blank otherwise
# - sourcebase relative directory containing lib source code
+# - m4base relative directory containing autoconf macros
+# - testsbase relative directory containing unit test code
func_emit_tests_Makefile_am ()
{
if test -n "$libtool"; then
else
libext=a
fi
+ testsbase_inverse=`echo "$testsbase" | sed -e 's,/$,,' | sed -e 's,[^/][^/]*,..,g'`
echo "## Process this file with automake to produce Makefile.in."
echo "# Copyright (C) 2004-2005 Free Software Foundation, Inc."
echo "#"
# Generate dependencies here, since it eases the debugging of test failures.
echo "AUTOMAKE_OPTIONS = 1.5 foreign"
echo
- echo "ACLOCAL_AMFLAGS = -I ../m4"
+ echo "ACLOCAL_AMFLAGS = -I ${testsbase_inverse}/${m4base}"
echo
echo "TESTS ="
echo "noinst_PROGRAMS ="
echo
echo "AM_CPPFLAGS = \\"
echo " -I. -I\$(srcdir) \\"
- echo " -I.. -I\$(srcdir)/.. \\"
- echo " -I../${sourcebase-lib} -I\$(srcdir)/../${sourcebase-lib}"
+ echo " -I${testsbase_inverse} -I\$(srcdir)/${testsbase_inverse} \\"
+ echo " -I${testsbase_inverse}/${sourcebase-lib} -I\$(srcdir)/${testsbase_inverse}/${sourcebase-lib}"
echo
- echo "LDADD = ../${sourcebase-lib}/${libname}.${libext}"
+ echo "LDADD = ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}"
echo
for module in $modules; do
func_verify_tests_module
# - libname library name
# - sourcebase directory relative to destdir where to place source code
# - m4base directory relative to destdir where to place *.m4 macros
+# - testsbase directory relative to destdir where to place unit test code
# - auxdir directory relative to destdir where to place build aux files
+# - inctests true if --with-tests was given, blank otherwise
# - avoidlist list of modules to avoid, from --avoid
# - lgpl true if library's license shall be LGPL, blank otherwise
# - libtool true if libtool will be used, blank otherwise
cached_avoidlist=
cached_sourcebase=
cached_m4base=
+ cached_testsbase=
cached_libname=
cached_lgpl=
cached_libtool=
/gl_M4_BASE(/ {
s,^.*gl_M4_BASE([[ ]*\([^])]*\).*$,cached_m4base="\1",p
}
+ /gl_TESTS_BASE(/ {
+ s,^.*gl_TESTS_BASE([[ ]*\([^])]*\).*$,cached_testsbase="\1",p
+ }
/gl_LIB(/ {
s,^.*gl_LIB([[ ]*\([^])]*\).*$,cached_libname="\1",p
}
func_fatal_error "missing --source-base option"
fi
fi
+ # The testsbase defaults to the cached one.
+ if test -z "$testsbase"; then
+ testsbase="$cached_testsbase"
+ if test -z "$testsbase"; then
+ func_fatal_error "missing --tests-base option"
+ fi
+ fi
# The libname defaults to the cached one.
if test -z "$supplied_libname"; then
libname="$cached_libname"
echo "Create directory $destdir/$m4base"
fi
fi
+ if test -n "$inctests"; then
+ if test ! -d "$destdir/$testsbase"; then
+ if $doit; then
+ echo "Creating directory $destdir/$testsbase"
+ mkdir "$destdir/$testsbase" || func_fatal_error "failed"
+ else
+ echo "Create directory $destdir/$testsbase"
+ fi
+ fi
+ fi
if test ! -d "$destdir/$auxdir"; then
if $doit; then
echo "Creating directory $destdir/$auxdir"
echo "gl_AVOID([$avoidlist])"
echo "gl_SOURCE_BASE([$sourcebase])"
echo "gl_M4_BASE([$m4base])"
+ echo "gl_TESTS_BASE([$testsbase])"
echo "gl_LIB([$libname])"
test -z "$lgpl" || echo "gl_LGPL"
test -z "$libtool" || echo "gl_LIBTOOL"
fi
fi
+ if test -n "$inctests"; then
+ # Create tests/Makefile.am.
+ func_emit_tests_Makefile_am > "$destdir"/$testsbase/Makefile.am.tmp
+ if test -f "$destdir"/$testsbase/Makefile.am; then
+ if cmp "$destdir"/$testsbase/Makefile.am "$destdir"/$testsbase/Makefile.am.tmp > /dev/null; then
+ rm -f "$destdir"/$testsbase/Makefile.am.tmp
+ else
+ if $doit; then
+ echo "Updating $testsbase/Makefile.am (backup in $testsbase/Makefile.am~)"
+ mv -f "$destdir"/$testsbase/Makefile.am "$destdir"/$testsbase/Makefile.am~
+ mv -f "$destdir"/$testsbase/Makefile.am.tmp "$destdir"/$testsbase/Makefile.am
+ else
+ echo "Update $testsbase/Makefile.am (backup in $testsbase/Makefile.am~)"
+ rm -f "$destdir"/$testsbase/Makefile.am.tmp
+ fi
+ fi
+ else
+ if $doit; then
+ echo "Creating $testsbase/Makefile.am"
+ mv -f "$destdir"/$testsbase/Makefile.am.tmp "$destdir"/$testsbase/Makefile.am
+ else
+ echo "Create $testsbase/Makefile.am"
+ rm -f "$destdir"/$testsbase/Makefile.am.tmp
+ fi
+ fi
+ fi
+
echo "Finished."
echo
echo "You may need to add #include directives for the following .h files."
echo
echo "Don't forget to"
echo " - add \"$sourcebase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"
+ if test -n "$inctests"; then
+ echo " - add \"$testsbase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"
+ fi
sourcebase_dir=`echo "$sourcebase" | sed -n -e 's,/[^/]*$,/,p'`
sourcebase_base=`basename "$sourcebase"`
echo " - mention \"${sourcebase_base}\" in SUBDIRS in ${sourcebase_dir}Makefile.am,"
+ if test -n "$inctests"; then
+ testsbase_dir=`echo "$testsbase" | sed -n -e 's,/[^/]*$,/,p'`
+ testsbase_base=`basename "$testsbase"`
+ echo " - mention \"${testsbase_base}\" in SUBDIRS in ${testsbase_dir}Makefile.am,"
+ fi
echo " - mention \"-I ${m4base}\" in ACLOCAL_AMFLAGS in Makefile.am,"
echo " - invoke ${macro_prefix}_EARLY in $configure_ac, right after AC_PROG_CC,"
echo " - invoke ${macro_prefix}_INIT in $configure_ac."
test -d "$testdir/tests" || mkdir "$testdir/tests"
# Create tests/Makefile.am.
sourcebase=lib
+ m4base=m4
+ testsbase=tests
func_emit_tests_Makefile_am > "$testdir/tests/Makefile.am"
# Create tests/configure.ac.
(echo "# Process this file with autoconf to produce a configure script."