From: Patrice Dumas Date: Mon, 29 Jan 2024 17:39:44 +0000 (+0100) Subject: gendocs: get only targetted manual source and includes, when possible X-Git-Tag: v1.0~480 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=73c74ba0197e6566da6882c87b1adee63e24d75c;p=gnulib.git gendocs: get only targetted manual source and includes, when possible * build-aux/gendocs.sh: if makeinfo, based on version, has the --trace-includes option, gather only the targetted manual srcfile and the included files obtained with makeinfo --trace-includes. In that case output include files to tar stdin and use -T-. Bruno Haible for the version comparison and use of tar. --- diff --git a/ChangeLog b/ChangeLog index dff23544d0..3ada614959 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2024-01-29 Patrice Dumas + + gendocs: get only targetted manual source and includes, when possible + * build-aux/gendocs.sh: if makeinfo, based on version, has the + --trace-includes option, gather only the targetted manual srcfile and + the included files obtained with makeinfo --trace-includes. In that + case output include files to tar stdin and use -T-. Bruno Haible for + the version comparison and use of tar. + 2024-01-29 Bruno Haible Port FALLTHROUGH to Mac OS X 10.9. diff --git a/build-aux/gendocs.sh b/build-aux/gendocs.sh index bdf105e02b..60447d4f5c 100755 --- a/build-aux/gendocs.sh +++ b/build-aux/gendocs.sh @@ -422,16 +422,42 @@ d=`dirname $srcfile` # file names to be put into the .tar.gz for sources. # Omit patterns that do not expand to file names. pats= - for pat in '*.texinfo' '*.texi' '*.txi' '*.eps'; do - for file in $pat; do - test "$file" = "$pat" && test ! -e "$file" || pats="$pats $pat" - break + + if case `$MAKEINFO --version | sed -e 's/^[^0-9]*//' -e 1q` in \ + [1-6]* | 7.[01]*) false;; \ + *) true;; \ + esac \ + ; then + + for pat in '*.eps'; do + for file in $pat; do + test "$file" = "$pat" && test ! -e "$file" || pats="$pats $pat" + break + done + done + + # if $MAKEINFO is recent enough, use --trace-includes on the + # $srcfile to get the included files of the targetted manual only + base=`basename "$srcfile"` + + cmd="$SETLANG $MAKEINFO $commonarg --trace-includes \"$base\"" + eval "$cmd" \ + | tar -czhf "$abs_outdir/$PACKAGE.texi.tar.gz" \ + --verbatim-files-from -T- -- "$base" $pats \ + ${source_extra+"$source_extra"} \ + && ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" + else + for pat in '*.texinfo' '*.texi' '*.txi' '*.eps'; do + for file in $pat; do + test "$file" = "$pat" && test ! -e "$file" || pats="$pats $pat" + break + done done - done - tar -czhf "$abs_outdir/$PACKAGE.texi.tar.gz" \ - -- $pats ${source_extra+"$source_extra"} && - ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" + tar -czhf "$abs_outdir/$PACKAGE.texi.tar.gz" \ + -- $pats ${source_extra+"$source_extra"} \ + && ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" + fi ) || exit texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`