From: Daniel Stenberg Date: Thu, 4 Apr 2024 16:00:33 +0000 (+0200) Subject: docs/cmdline-opts: invoke managen using a relative path X-Git-Tag: curl-8_8_0~283 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bcc2e90e45ec174cdc181fea6f843edb698367ee;p=thirdparty%2Fcurl.git docs/cmdline-opts: invoke managen using a relative path ... no need to use an absolute path, that makes the build unncessarily fail if invoked using a different mount point. managen now takes options to find the input files. Update test1478 to provide the dir arguments to managen Closes #13281 --- diff --git a/docs/cmdline-opts/Makefile.am b/docs/cmdline-opts/Makefile.am index 62c776f3f5..7d62c4f456 100644 --- a/docs/cmdline-opts/Makefile.am +++ b/docs/cmdline-opts/Makefile.am @@ -36,7 +36,8 @@ GN_0 = @echo " GENERATE" $@; GN_1 = GN_ = $(GN_0) -MANAGEN=$(abs_top_srcdir)/scripts/managen +MANAGEN=$(top_srcdir)/scripts/managen +INCDIR=$(top_srcdir)/include if BUILD_DOCS CLEANFILES = $(MANPAGE) $(ASCIIPAGE) @@ -47,10 +48,10 @@ all: $(MANPAGE) $(ASCIIPAGE) endif $(MANPAGE): $(DPAGES) $(SUPPORT) mainpage.idx Makefile.inc $(MANAGEN) - $(GEN)(rm -f $(MANPAGE) && (cd $(srcdir) && @PERL@ $(MANAGEN) mainpage $(DPAGES)) > manpage.tmp.$$$$ && mv manpage.tmp.$$$$ $(MANPAGE)) + $(GEN)(rm -f $(MANPAGE) && @PERL@ $(MANAGEN) -d $(srcdir) -I $(INCDIR) mainpage $(DPAGES) > manpage.tmp.$$$$ && mv manpage.tmp.$$$$ $(MANPAGE)) $(ASCIIPAGE): $(DPAGES) $(SUPPORT) mainpage.idx Makefile.inc $(MANAGEN) - $(GEN)(rm -f $(ASCIIPAGE) && (cd $(srcdir) && @PERL@ $(MANAGEN) ascii $(DPAGES)) > asciipage.tmp.$$$$ && mv asciipage.tmp.$$$$ $(ASCIIPAGE)) + $(GEN)(rm -f $(ASCIIPAGE) && @PERL@ $(MANAGEN) -d $(srcdir) -I $(INCDIR) ascii $(DPAGES) > asciipage.tmp.$$$$ && mv asciipage.tmp.$$$$ $(ASCIIPAGE)) listhelp: $(MANAGEN) listhelp $(DPAGES) > $(top_builddir)/src/tool_listhelp.c diff --git a/scripts/managen b/scripts/managen index e5846e64b0..2c5423a6a9 100755 --- a/scripts/managen +++ b/scripts/managen @@ -59,15 +59,6 @@ my $year = strftime "%Y", @ts; my $version = "unknown"; my $globals; -open(INC, "<../../include/curl/curlver.h"); -while() { - if($_ =~ /^#define LIBCURL_VERSION \"([0-9.]*)/) { - $version = $1; - last; - } -} -close(INC); - # get the long name version, return the man page string sub manpageify { my ($k)=@_; @@ -448,10 +439,10 @@ sub render { } sub single { - my ($manpage, $f, $standalone)=@_; + my ($dir, $manpage, $f, $standalone)=@_; my $fh; - open($fh, "<:crlf", "$f") || - return 1; + open($fh, "<:crlf", "$dir/$f") || + die "could not find $dir/$f"; my $short; my $long; my $tags; @@ -781,8 +772,10 @@ sub single { } sub getshortlong { - my ($f)=@_; - open(F, "<:crlf", "$f"); + my ($dir, $f)=@_; + $f =~ s/^.*\///; + open(F, "<:crlf", "$dir/$f") || + die "could not find $dir/$f"; my $short; my $long; my $help; @@ -833,16 +826,17 @@ sub getshortlong { } sub indexoptions { - my (@files) = @_; + my ($dir, @files) = @_; foreach my $f (@files) { - getshortlong($f); + getshortlong($dir, $f); } } sub header { - my ($manpage, $f)=@_; + my ($dir, $manpage, $f)=@_; my $fh; - open($fh, "<:crlf", "$f"); + open($fh, "<:crlf", "$dir/$f") || + die "could not find $dir/$f"; my @d = render($manpage, $fh, $f, 1); close($fh); printdesc($manpage, 0, @d); @@ -952,13 +946,13 @@ sub listcats { } sub listglobals { - my (@files) = @_; + my ($dir, @files) = @_; my @globalopts; # Find all global options and output them foreach my $f (sort @files) { - open(F, "<:crlf", "$f") || - next; + open(F, "<:crlf", "$dir/$f") || + die "could not read $dir/$f"; my $long; my $start = 0; while() { @@ -999,12 +993,12 @@ sub sortnames { } sub mainpage { - my ($manpage, @files) = @_; + my ($dir, $manpage, @files) = @_; # $manpage is 1 for nroff, 0 for ASCII my $ret; my $fh; - open($fh, "<:crlf", "mainpage.idx") || - return 1; + open($fh, "<:crlf", "$dir/mainpage.idx") || + die "no $dir/mainpage.idx file"; print <
[files]\n"; + print "Usage: managen ". + "[-d dir] [files]\n"; } #------------------------------------------------------------------------ +my $dir = "."; +my $include = "../../include"; my $cmd = shift @ARGV; + + check: +if($cmd eq "-d") { + # specifies source directory + $dir = shift @ARGV; + $cmd = shift @ARGV; + goto check; +} +elsif($cmd eq "-I") { + # include path root + $include = shift @ARGV; + $cmd = shift @ARGV; + goto check; +} + my @files = @ARGV; # the rest are the files +open(INC, "<$include/curl/curlver.h"); +while() { + if($_ =~ /^#define LIBCURL_VERSION \"([0-9.]*)/) { + $version = $1; + last; + } +} +close(INC); + # learn all existing options -indexoptions(@files); +indexoptions($dir, @files); -getargs($cmd, @files); +getargs($dir, $cmd, @files); diff --git a/tests/data/test1478 b/tests/data/test1478 index c05766740b..ef7b40372e 100644 --- a/tests/data/test1478 +++ b/tests/data/test1478 @@ -19,7 +19,7 @@ src/tool_listhelp.c is in sync with docs/cmdline-opts -%SRCDIR/../scripts/managen listhelp %SRCDIR/../docs/cmdline-opts/*.md +%SRCDIR/../scripts/managen -d %SRCDIR/../docs/cmdline-opts -I %SRCDIR/../include listhelp %SRCDIR/../docs/cmdline-opts/*.md