diff options
author | Bruno Haible <bruno@clisp.org> | 2021-12-21 09:59:17 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2021-12-21 09:59:17 +0100 |
commit | 83a0d5891db50c00e283e70df694b6003b1f485d (patch) | |
tree | 0ab4aea2af4f9e6bd08d18426945a42b07bb7264 /gnulib-tool | |
parent | f8eed11b15e9141d061900e4068ea1f3ba9b63f6 (diff) | |
download | gnulib-83a0d5891db50c00e283e70df694b6003b1f485d.tar.gz |
Optimize redundant 'mkdir -p .' invocations.
Reported by Paul Eggert.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Eliminate @NMD@ tokens.
* modules/alloca-opt (Makefile.am): Prefix the "$(MKDIR_P) '%reldir%'"
line with @NMD@.
* modules/argz (Makefile.am): Likewise.
* modules/assert-h (Makefile.am): Likewise.
* modules/byteswap (Makefile.am): Likewise.
* modules/configmake (Makefile.am): Likewise.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/execinfo (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/fnmatch-h (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/glob-h (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/ieee754-h (Makefile.am): Likewise.
* modules/inttypes-incomplete (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/libtextstyle-optional (Makefile.am): Likewise.
* modules/limits-h (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/malloc-h (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/monetary (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/openmp-init (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/posix-shell (Makefile.am): Likewise.
* modules/pthread-h (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/signal-h (Makefile.am): Likewise.
* modules/sigsegv (Makefile.am): Likewise.
* modules/snippet/link-warning (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdalign (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stdbool (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/stdnoreturn (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/threads-h (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/uchar (Makefile.am): Likewise.
* modules/unicase/base (Makefile.am): Likewise.
* modules/uniconv/base (Makefile.am): Likewise.
* modules/unictype/base (Makefile.am): Likewise.
* modules/unigbrk/base (Makefile.am): Likewise.
* modules/unilbrk/base (Makefile.am): Likewise.
* modules/uniname/base (Makefile.am): Likewise.
* modules/uninorm/base (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/unistdio/base (Makefile.am): Likewise.
* modules/unistr/base (Makefile.am): Likewise.
* modules/unitypes (Makefile.am): Likewise.
* modules/uniwbrk/base (Makefile.am): Likewise.
* modules/uniwidth/base (Makefile.am): Likewise.
* modules/utime-h (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
Diffstat (limited to 'gnulib-tool')
-rwxr-xr-x | gnulib-tool | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gnulib-tool b/gnulib-tool index 678d334250..2870c2984a 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -3692,6 +3692,7 @@ func_update_file () # - auxdir directory relative to destdir where to place build aux files # - gnu_make true if --gnu-make was given, false otherwise # - makefile_name from --makefile-name +# - automake_subdir true if --automake-subdir was given, false otherwise # - libtool true if libtool will be used, false or blank otherwise # - macro_prefix prefix of gl_LIBOBJS macros to use # - module_indicator_prefix prefix of GNULIB_<modulename> variables to use @@ -3725,6 +3726,13 @@ func_emit_lib_Makefile_am () perhapsLT= sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' fi + # Replace NMD, so as to remove redundant "$(MKDIR_P) '.'" invocations. + # The logic is similar to how we define gl_source_base_prefix. + if $automake_subdir; then + sed_eliminate_NMD='s/@NMD@//' + else + sed_eliminate_NMD='/@NMD@/d' + fi if $for_test; then # When creating a package for testing: Attempt to provoke failures, # especially link errors, already during "make" rather than during @@ -3735,8 +3743,9 @@ func_emit_lib_Makefile_am () sed_transform_check_PROGRAMS="$sed_noop" fi echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!" - $gnu_make || - echo "## Process this file with automake to produce Makefile.in." + if ! $gnu_make; then + echo "## Process this file with automake to produce Makefile.in." + fi func_emit_copyright_notice if test -n "$actioncmd"; then printf '# Reproduce by:\n%s\n' "$actioncmd" @@ -3753,6 +3762,7 @@ func_emit_lib_Makefile_am () sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \ -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \ -e "$sed_eliminate_LDFLAGS" \ + -e "$sed_eliminate_NMD" \ -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' \ -e 's,\$(GNULIB_,$('"${module_indicator_prefix}"'_GNULIB_,' \ -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \ @@ -4097,6 +4107,9 @@ func_emit_tests_Makefile_am () perhapsLT= sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d' fi + # Replace NMD, so as to remove redundant "$(MKDIR_P) '.'" invocations. + # The logic is similar to how we define gl_source_base_prefix. + sed_eliminate_NMD='/@NMD@/d' if $for_test; then # When creating a package for testing: Attempt to provoke failures, # especially link errors, already during "make" rather than during @@ -4126,6 +4139,7 @@ func_emit_tests_Makefile_am () sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \ -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \ -e "$sed_eliminate_LDFLAGS" \ + -e "$sed_eliminate_NMD" \ -e 's,lib_\([A-Z][A-Z]*\),libtests_a_\1,g' \ -e 's,\$(GNULIB_,$('"${module_indicator_prefix}"'_GNULIB_,' \ -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \ |