bug-gnulib
[Top][All Lists]
Advanced

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

gnulib-tool: support for source files in subdirectories


From: Bruno Haible
Subject: gnulib-tool: support for source files in subdirectories
Date: Mon, 13 Nov 2006 14:34:32 +0100
User-agent: KMail/1.9.1

With this patch, gnulib-tool supports source files in subdirectories of lib/.

2006-11-12  Bruno Haible  <address@hidden>

        Finish support for source files in subdirectories.
        * gnulib-tool (func_emit_lib_Makefile_am): If some of the source files
        are in subdirectories, set uses_subdirs and add 'subdir-objects' to
        AUTOMAKE_OPTIONS.
        (func_import, func_create_testdir): Invoke AM_PROG_CC_C_O in this case.

*** gnulib-20061108/gnulib-tool.bak     2006-11-12 20:44:34.000000000 +0100
--- gnulib-20061108/gnulib-tool 2006-11-12 21:16:19.000000000 +0100
***************
*** 1131,1136 ****
--- 1131,1138 ----
  # - libtool         true if libtool will be used, false or blank otherwise
  # - macro_prefix    prefix of gl_LIBOBJS macros to use
  # - actioncmd       (optional) command that will reproduce this invocation
+ # Output:
+ # - uses_subdirs    nonempty if object files in subdirs exist
  func_emit_lib_Makefile_am ()
  {
    # When creating an includable Makefile.am snippet, augment variables with
***************
*** 1156,1166 ****
      echo "# Reproduce by: $actioncmd"
    fi
    echo
!   if test -z "$makefile_name"; then
!     echo "AUTOMAKE_OPTIONS = 1.5 gnits"
!   fi
!   echo
!   (
      for module in $modules; do
        func_verify_nontests_module
        if test -n "$module"; then
--- 1158,1165 ----
      echo "# Reproduce by: $actioncmd"
    fi
    echo
!   uses_subdirs=
!   {
      for module in $modules; do
        func_verify_nontests_module
        if test -n "$module"; then
***************
*** 1186,1194 ****
            echo
          fi
          rm -f amsnippet.tmp
        fi
      done
!   ) > allsnippets.tmp
    if grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *= *$libname\\.$libext\$" 
allsnippets.tmp > /dev/null; then
      # One of the snippets already specifies an installation location for the
      # library. Don't confuse automake by saying it should not be installed.
--- 1185,1209 ----
            echo
          fi
          rm -f amsnippet.tmp
+         # Test whether there are some source files in subdirectories.
+         for f in `func_get_filelist "$module"`; do
+           case $f in
+             lib/*/*.c) uses_subdirs=yes ;;
+           esac
+         done
        fi
      done
!   } > allsnippets.tmp
!   if test -z "$makefile_name"; then
!     # If there are source files in subdirectories, prevent collision of the
!     # object files (example: hash.c and libxml/hash.c).
!     subdir_options=
!     if test -n "$uses_subdirs"; then
!       subdir_options=' subdir-objects'
!     fi
!     echo "AUTOMAKE_OPTIONS = 1.5 gnits${subdir_options}"
!   fi
!   echo
    if grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *= *$libname\\.$libext\$" 
allsnippets.tmp > /dev/null; then
      # One of the snippets already specifies an installation location for the
      # library. Don't confuse automake by saying it should not be installed.
***************
*** 1966,1971 ****
--- 1981,1989 ----
      echo "  m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
      echo "  m4_pattern_allow([^gl_LTLIBOBJS\$])dnl a variable"
      echo "  AC_REQUIRE([AC_PROG_RANLIB])"
+     if test -n "$uses_subdirs"; then
+       echo "  AC_REQUIRE([AM_PROG_CC_C_O])"
+     fi
      if grep AC_GNU_SOURCE "$destdir"/$m4base/*.m4 >/dev/null 2>/dev/null; then
        echo "  AC_REQUIRE([AC_GNU_SOURCE])"
      fi
***************
*** 2396,2401 ****
--- 2414,2423 ----
     echo
     echo "AC_PROG_RANLIB"
     echo
+    if test -n "$uses_subdirs"; then
+      echo "AM_PROG_CC_C_O"
+      echo
+    fi
     if grep AC_GNU_SOURCE "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then
       echo "AC_GNU_SOURCE"
       echo




reply via email to

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