Fix breakages that prevended -DPERL_POISON from compiling.
[p5sagit/p5-mst-13.2.git] / ext / Devel / PPPort / devel / mkapidoc.sh
CommitLineData
adfe19db 1#!/bin/bash
2################################################################################
3#
4# mkapidoc.sh -- generate apidoc.fnc from scanning the Perl source
5#
6################################################################################
7#
9132e1a3 8# $Revision: 6 $
adfe19db 9# $Author: mhx $
9132e1a3 10# $Date: 2005/01/31 08:10:49 +0100 $
adfe19db 11#
12################################################################################
13#
9132e1a3 14# Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz.
adfe19db 15# Version 2.x, Copyright (C) 2001, Paul Marquess.
16# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
17#
18# This program is free software; you can redistribute it and/or
19# modify it under the same terms as Perl itself.
20#
21################################################################################
22
23function isperlroot
24{
25 [ -f "$1/embed.fnc" ] && [ -f "$1/perl.h" ]
26}
27
28function usage
29{
30 echo "USAGE: $0 [perlroot] [output-file] [embed.fnc]"
31 exit 0
32}
33
34if [ -z "$1" ]; then
35 if isperlroot "../../.."; then
36 PERLROOT=../../..
37 else
38 PERLROOT=.
39 fi
40else
41 PERLROOT=$1
42fi
43
44if [ -z "$2" ]; then
45 if [ -f "parts/apidoc.fnc" ]; then
46 OUTPUT="parts/apidoc.fnc"
47 else
48 usage
49 fi
50else
51 OUTPUT=$2
52fi
53
54if [ -z "$3" ]; then
55 if [ -f "parts/embed.fnc" ]; then
56 EMBED="parts/embed.fnc"
57 else
58 usage
59 fi
60else
61 EMBED=$3
62fi
63
64if isperlroot $PERLROOT; then
9132e1a3 65 grep -hr '^=for apidoc' $PERLROOT | sed -e 's/=for apidoc //' | grep '|' | sort | uniq \
adfe19db 66 | perl -e'$f=pop;open(F,$f)||die"$f:$!";while(<F>){(split/\|/)[2]=~/(\w+)/;$h{$1}++}
67 while(<>){(split/\|/)[2]=~/(\w+)/;$h{$1}||print}' $EMBED >$OUTPUT
68else
69 usage
70fi