bug-gnulib
[Top][All Lists]
Advanced

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

Re: Gnulib-related problems building Bison from git


From: Akim Demaille
Subject: Re: Gnulib-related problems building Bison from git
Date: Mon, 4 Jul 2022 07:58:18 +0200

Hi,

Since Bison was moved to use gnulib's support for --automake-subdir, the 
configuration fails for people who don't have libtextstyle installed.  Or 
distcheck fails when libtextstyle is not installed in a default include path.

This is because --automake-subdir is built (apparently) for projects that use a 
single Makefile for the sources, but another for the tests.  This is not the 
case of Bison, where we have a single Makefile for the whole project.

In <https://lists.gnu.org/r/bug-gnulib/2022-01/msg00156.html> I had asked what 
was the preferred fix.  Below, I chose to add another option, 
--automake-subdir-test to signal cases such as Bison's.

If this is validated, I'll complete it with the doc parts.

Cheers!

commit b781a18296d4d5df0325f6618d296b8bac6e6b17
Author: Akim Demaille <akim.demaille@gmail.com>
Date:   Mon Jul 4 07:18:07 2022 +0200

    gnulib-tool: add support for --automake-subdir-test
    
    <https://lists.gnu.org/r/bug-gnulib/2022-01/msg00111.html>
    * gnulib-tool (main): Handle --automake-subdir-test.
    (func_emit_shellvars_init, func_emit_lib_Makefile_am): Use
    $sourcebase when handling tests and --automake-subdir-test is
    given.
    (func_append_actionarg): Support --automake-subdir-test.

diff --git a/ChangeLog b/ChangeLog
index 2daa6d8c81..ddb8c8523e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2022-07-04  Akim Demaille  <akim@lrde.epita.fr>
+
+       gnulib-tool: add support for --automake-subdir-test
+       <https://lists.gnu.org/r/bug-gnulib/2022-01/msg00111.html>
+       * gnulib-tool (main): Handle --automake-subdir-test.
+       (func_emit_shellvars_init, func_emit_lib_Makefile_am): Use
+       $sourcebase when handling tests and --automake-subdir-test is
+       given.
+       (func_append_actionarg): Support --automake-subdir-test.
+
 2022-06-12  Paul Eggert  <eggert@cs.ucla.edu>
 
        fchmodat: port better to MS-Windows etc.
diff --git a/gnulib-tool b/gnulib-tool
index 5993143f3c..0ba6951cd7 100755
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -311,6 +311,8 @@ Options for --import, --add/remove-import:
       --automake-subdir     Specify that the makefile in the source-base
                             directory be generated in such a way that it can
                             be 'include'd from the toplevel Makefile.am.
+      --automake-subdir-test
+                            Likewise, but for the test directory.
       --macro-prefix=PREFIX  Specify the prefix of the macros 'gl_EARLY' and
                             'gl_INIT'. Default is 'gl'.
       --po-domain=NAME      Specify the prefix of the i18n domain. Usually use
@@ -1118,7 +1120,8 @@ func_determine_path_separator
 # - gnu_make        true if --gnu-make was given, false otherwise
 # - makefile_name   from --makefile-name
 # - tests_makefile_name  from --tests-makefile-name
-# - automake_subdir  true if --automake-subdir was given, false otherwise
+# - automake_subdir       true if --automake-subdir was given, false otherwise
+# - automake_subdir_test  true if --automake-subdir-test was given, false 
otherwise
 # - libtool         true if --libtool was given, false if --no-libtool was
 #                   given, blank otherwise
 # - macro_prefix    from --macro-prefix
@@ -1167,6 +1170,7 @@ func_determine_path_separator
   makefile_name=
   tests_makefile_name=
   automake_subdir=false
+  automake_subdir_test=false
   libtool=
   macro_prefix=
   po_domain=
@@ -1414,6 +1418,9 @@ func_determine_path_separator
       --automake-subdir )
         automake_subdir=true
         shift ;;
+      --automake-subdir-test )
+        automake_subdir_test=true
+        shift ;;
       --libtool )
         libtool=true
         shift ;;
@@ -1527,6 +1534,7 @@ func_determine_path_separator
        || test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests" 
\
        || test -n "$avoidlist" || test -n "$lgpl" || test -n "$makefile_name" \
        || test -n "$tests_makefile_name" || test "$automake_subdir" != false \
+       || test "$automake_subdir_test" != false \
        || test -n "$macro_prefix" || test -n "$po_domain" \
        || test -n "$witness_c_macro" || test -n "$vc_files"; then
       echo "gnulib-tool: invalid options for 'update' mode" 1>&2
@@ -1617,8 +1625,8 @@ func_determine_path_separator
       func_fatal_error "minimum supported autoconf version is 2.64. Try adding 
AC_PREREQ([$DEFAULT_AUTOCONF_MINVERSION]) to your configure.ac." ;;
   esac
 
-  # Determine whether --automake-subdir is supported.
-  if $automake_subdir; then
+  # Determine whether --automake-subdir/--automake-subdir-test are supported.
+  if $automake_subdir || $automake_subdir_test; then
     found_subdir_objects=false
     if test -n "$configure_ac"; then
       my_sed_traces='
@@ -1644,7 +1652,7 @@ func_determine_path_separator
       done
     fi
     if ! $found_subdir_objects; then
-      func_fatal_error "Option --automake-subdir is only supported if the 
definition of AUTOMAKE_OPTIONS in Makefile.am contains 'subdir-objects'."
+      func_fatal_error "Option --automake-subdir/--automake-subdir-test are 
only supported if the definition of AUTOMAKE_OPTIONS in Makefile.am contains 
'subdir-objects'."
     fi
   fi
 
@@ -4518,7 +4526,9 @@ func_emit_initmacro_end ()
   echo "      sed_dirname4='s,\\(.\\)/[^/]*\$,\\1,'"
   echo "      sed_basename1='s,.*/,,'"
   echo "changequote([, ])dnl"
-  if $automake_subdir && ! "$2" && test -n "$sourcebase" && test "$sourcebase" 
!= '.'; then
+  if (($2 && $automake_subdir_test) || (! $2 && $automake_subdir)) \
+     && test -n "$sourcebase" \
+     && test "$sourcebase" != '.'; then
     subdir="$sourcebase/"
   else
     subdir=
@@ -4584,12 +4594,15 @@ func_emit_initmacro_done ()
 #                            false otherwise
 # - base             base directory, relative to the top-level directory
 # - automake_subdir  true if --automake-subdir was given, false otherwise
+# - automake_subdir_test  true if --automake-subdir-test was given, false 
otherwise
 func_emit_shellvars_init ()
 {
   # Define the base directory, relative to the top-level directory.
   echo "  gl_source_base='$2'"
   # Define the prefix for the file name of generated files.
-  if $automake_subdir && ! $1; then
+  if $1 && $automake_subdir_test; then
+    echo "  gl_source_base_prefix='\$(top_build_prefix)$sourcebase/'"
+  elif ! $1 && $automake_subdir; then
     echo "  gl_source_base_prefix='\$(top_build_prefix)$2/'"
   else
     echo "  gl_source_base_prefix="
@@ -5586,6 +5599,9 @@ s,^\(.................................................[^ 
]*\) *,
   if $automake_subdir; then
     func_append_actionarg "--automake-subdir"
   fi
+  if $automake_subdir_test; then
+    func_append_actionarg "--automake-subdir-test"
+  fi
   if test "$cond_dependencies" = true; then
     func_append_actionarg "--conditional-dependencies"
   else




reply via email to

[Prev in Thread] Current Thread [Next in Thread]