From 71811ed07a228fd8abe2deeff0281f33aaa8b455 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 13 Nov 2006 12:33:43 +0000 Subject: [PATCH] Finish support for source files in subdirectories. --- ChangeLog | 8 ++++++++ gnulib-tool | 36 +++++++++++++++++++++++++++++------- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index cee682d42..d427ff8e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-11-12 Bruno Haible + 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. + +2006-11-12 Bruno Haible + * gnulib-tool (func_get_automake_snippet): Synthesize also an EXTRA_lib_SOURCES augmentation. (func_emit_lib_Makefile_am): Initialize EXTRA_lib..._SOURCES to empty. diff --git a/gnulib-tool b/gnulib-tool index 3c337e17c..e965ac2c5 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -22,7 +22,7 @@ progname=$0 package=gnulib -cvsdatestamp='$Date: 2006-11-13 12:33:07 $' +cvsdatestamp='$Date: 2006-11-13 12:33:43 $' last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'` version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'` nl=' @@ -1131,6 +1131,8 @@ func_modules_to_filelist () # - 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,11 +1158,8 @@ func_emit_lib_Makefile_am () echo "# Reproduce by: $actioncmd" fi echo - if test -z "$makefile_name"; then - echo "AUTOMAKE_OPTIONS = 1.5 gnits" - fi - echo - ( + uses_subdirs= + { for module in $modules; do func_verify_nontests_module if test -n "$module"; then @@ -1186,9 +1185,25 @@ func_emit_lib_Makefile_am () 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 + } > 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,6 +1981,9 @@ func_import () 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 @@ -2392,6 +2410,10 @@ func_create_testdir () 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 -- 2.11.0