mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-15 18:20:42 +02:00
Rewrite to support "-o OUTFILE INFILE [CPP-OPTS]" usage.
This commit is contained in:
parent
00093a3ba8
commit
39d2cd9d72
1 changed files with 47 additions and 13 deletions
|
@ -1,20 +1,51 @@
|
|||
#!/bin/sh
|
||||
# Extract the initialization actions for builtin things.
|
||||
#
|
||||
# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this software; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
# Boston, MA 02111-1307 USA
|
||||
|
||||
fullfilename=$1; shift
|
||||
# Commentary:
|
||||
|
||||
# Usage: guile-doc-snarf -o OUTFILE INFILE [CPP-OPTIONS ...]
|
||||
#
|
||||
# Process INFILE using the C pre-processor and some other programs.
|
||||
# Write output to a file named OUTFILE. If there are errors during
|
||||
# processing, delete OUTFILE and exit with non-zero status.
|
||||
#
|
||||
# During snarfing, the pre-processor macro SCM_MAGIC_SNARFER is
|
||||
# defined.
|
||||
#
|
||||
# If env var CPP is set, use its value instead of the C pre-processor
|
||||
# determined at Guile configure-time: "@CPP@". Likewise for AWK (default
|
||||
# "@AWK@").
|
||||
|
||||
# Code:
|
||||
|
||||
if [ ! x"$1" = x-o -o x"$3" = x ] ; then
|
||||
me=`basename $0`
|
||||
echo ${me}: ERROR: missing required args
|
||||
echo "Usage: $me -o OUTFILE INFILE [CPP-OPTIONS ...]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
outfile=$2 ; fullfilename=$3 ; shift ; shift ; shift
|
||||
|
||||
# strip path to source directory
|
||||
filename=`basename $fullfilename`
|
||||
|
||||
# we need to be sure that the .x file exists
|
||||
# since the .c/.cc file may include it
|
||||
# (the old guile-snarf did not have this problem
|
||||
# because the makefile redirects output to the .x file
|
||||
# which creates the file before the inclusion occurs)
|
||||
# --12/12/99 gjb
|
||||
no_ext=`echo $filename | sed 's/\.[^.]*$//g'`
|
||||
dot_doc=${no_ext}.doc
|
||||
|
||||
temp="/tmp/snarf.$$"
|
||||
trap "rm -f $temp" 0 1 2 15
|
||||
|
||||
|
@ -27,6 +58,9 @@ ${AWK} -f guile-func-name-check "$fullfilename"
|
|||
|
||||
## We must use a temporary file here, instead of a pipe, because we
|
||||
## need to know if CPP exits with a non-zero status.
|
||||
${CPP} -DSCM_MAGIC_SNARFER "$@" > ${temp} || exit $?
|
||||
rm -f $outfile
|
||||
${CPP} -DSCM_MAGIC_SNARFER "$fullfilename" "$@" > ${temp} || exit $?
|
||||
cat ${temp} | sed 's/^\(.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}.\{128\}\).*/\1/g' | \
|
||||
${AWK} -f `dirname $0`/guile-snarf.awk `basename ${dot_doc}`
|
||||
${AWK} -f `dirname $0`/guile-snarf.awk $outfile > /dev/null
|
||||
|
||||
# guile-doc-snarf ends here
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue