URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Subversion Repositories open8_urisc
[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [libiberty/] [gather-docs] - Rev 165
Go to most recent revision | Compare with Previous | Blame | View Log
#!/usr/bin/perl# -*- perl -*-# Copyright (C) 2001, 2009, 2011# Free Software Foundation## This file is part of the libiberty library.# Libiberty is free software; you can redistribute it and/or# modify it under the terms of the GNU Library General Public# License as published by the Free Software Foundation; either# version 2 of the License, or (at your option) any later version.## Libiberty is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# Library General Public License for more details.## You should have received a copy of the GNU Library General Public# License along with libiberty; see the file COPYING.LIB. If not,# write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,# Boston, MA 02110-1301, USA.## Originally written by DJ Delorie <dj@redhat.com># This program looks for texinfo snippets in source files and other# files, and builds per-category files with entries sorted in# alphabetical order.# The syntax it looks for is lines starting with '@def' in *.c and# other files (see TEXIFILES in Makefile.in). Entries are terminated# at the next @def* (which begins a new entry) or, for C files, a line# that begins with '*/' without leading spaces (this assumes that the# texinfo snippet is within a C-style /* */ comment).#if ($ARGV[0] eq "-v") {$verbose = 1;shift;}$srcdir = shift;$outfile = shift;if ($outfile !~ /\S/ || ! -f "$srcdir/Makefile.in" ) {print STDERR "Usage: gather-docs [-v] srcdir outfile.txi [files with snippets in them ...]\n";exit 1;}$errors = 0;for $in (@ARGV) {if (!open(IN, "$srcdir/$in")) {print STDERR "Cannot open $srcdir/$in for reading: $!\n";$errors ++;} else {$first = 1;$pertinent = 0;$man_mode = 0;$line = 0;while (<IN>) {$line ++;$pertinent = 1 if /^\@def[a-z]*[a-wyz] /;$pertinent = 0 if /^\*\//;next unless $pertinent;if (/^\@def[a-z]*[a-wyz] /) {($name) = m/[^\(]* ([^\( \t\r\n\@]+) *(\(|\@?$)/;$name =~ s/[ ]*\@?$//;$key = $name;$key =~ tr/A-Z/a-z/;$key =~ s/[^a-z0-9]+/ /g;$name{$key} = $node;$lines{$key} = '';$src_file{$key} = $in;$src_line{$key} = $line;print "\nReading $in :" if $verbose && $first;$first = 0;print " $name" if $verbose;$node_lines{$key} .= $_;} else {$node_lines{$key} .= $_;}$pertinent = 0 if /^\@end def/;}close (IN);}}print "\n" if $verbose;exit $errors if $errors;if (!open (OUT, "> $outfile")) {print STDERR "Cannot open $outfile for writing: $!\n";$errors ++;next;}print "Writing $outfile\n" if $verbose;print OUT "\@c Automatically generated from *.c and others (the comments before\n";print OUT "\@c each entry tell you which file and where in that file). DO NOT EDIT!\n";print OUT "\@c Edit the *.c files, configure with --enable-maintainer-mode,\n";print OUT "\@c run 'make stamp-functions' and gather-docs will build a new copy.\n\n";for $key (sort keys %name) {print OUT "\@c $src_file{$key}:$src_line{$key}\n";print OUT $node_lines{$key};print OUT "\n";}if (! print OUT "\n") {print STDERR "Disk full writing $srcdir/$cat.texi\n";$errors ++;}close (OUT);exit $errors;
Go to most recent revision | Compare with Previous | Blame | View Log
