Revert "Upgrade to Devel::PPPort 3.19_02" - we're frozen. This will be great when...
[p5sagit/p5-mst-13.2.git] / cpan / 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#
3f0c6e0c 8# $Revision: 13 $
adfe19db 9# $Author: mhx $
3f0c6e0c 10# $Date: 2009/01/18 14:10:50 +0100 $
adfe19db 11#
12################################################################################
13#
3f0c6e0c 14# Version 3.x, Copyright (C) 2004-2009, 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
679ad62d 65 cat >$OUTPUT <<EOF
66::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
67:
51d6c659 68: !!!! Do NOT edit this file directly! -- Edit devel/mkapidoc.sh instead. !!!!
679ad62d 69:
70: This file was automatically generated from the API documentation scattered
71: all over the Perl source code. To learn more about how all this works,
72: please read the F<HACKERS> file that came with this distribution.
73:
74::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
75
76:
77: This file lists all API functions/macros that are documented in the Perl
78: source code, but are not contained in F<embed.fnc>.
79:
80
81EOF
9132e1a3 82 grep -hr '^=for apidoc' $PERLROOT | sed -e 's/=for apidoc //' | grep '|' | sort | uniq \
adfe19db 83 | perl -e'$f=pop;open(F,$f)||die"$f:$!";while(<F>){(split/\|/)[2]=~/(\w+)/;$h{$1}++}
679ad62d 84 while(<>){s/[ \t]+$//;(split/\|/)[2]=~/(\w+)/;$h{$1}||print}' $EMBED >>$OUTPUT
adfe19db 85else
86 usage
87fi