#!/usr/bin/perl
#
#########################################################################
# #
# Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. #
# All rights reserved. Email: russ@q12.org Web: www.q12.org #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of EITHER: #
# (1) The GNU Lesser General Public License as published by the Free #
# Software Foundation; either version 2.1 of the License, or (at #
# your option) any later version. The text of the GNU Lesser #
# General Public License is included with this library in the #
# file LICENSE.TXT. #
# (2) The BSD-style license that is included with this library in #
# the file LICENSE-BSD.TXT. #
# #
# This library 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 files #
# LICENSE.TXT and LICENSE-BSD.TXT for more details. #
# #
#########################################################################
# extract the public functions from ode.doc and build a DLL exports list.
@funcs = ();
sub exportFunc
{
push (@funcs,$_[0]);
}
sub exportFuncList
{
my $f = $_[0];
$f =~ s/([A-Za-z0-9_]+)\s*\(/&exportFunc($1)/ge;
}
# read the documentation
open (FILE,"ode.doc");
$a = join('',<FILE>);
close (FILE);
# strip whitespace out of $a
$a =~ s/\s+/ /g;
# extract all function definitions
$a =~ s/\@funcdef{([^}]*)}/&exportFuncList($1)/ge;
# add in some functions and symbols that are not currently shown in
# the documentation
push (@funcs,"dSetZero");
push (@funcs,"dBoxBox");
push (@funcs,"dMultiply0");
push (@funcs,"dMultiply1");
push (@funcs,"dMultiply2");
push (@funcs,"dNormalize3");
push (@funcs,"dNormalize4");
push (@funcs,"dPlaneSpace");
push (@funcs,"dRandInt");
push (@funcs,"dRandReal");
push (@funcs,"dRandSetSeed");
push (@funcs,"dMakeRandomMatrix");
push (@funcs,"dMakeRandomVector");
push (@funcs,"dMaxDifference");
push (@funcs,"dClearUpperTriangle");
push (@funcs,"dError");
push (@funcs,"dDebug");
push (@funcs,"dMessage");
push (@funcs,"dSetMessageHandler");
push (@funcs,"dSetErrorHandler");
push (@funcs,"dSetDebugHandler");
push (@funcs,"dFactorCholesky");
push (@funcs,"dFactorLDLT");
push (@funcs,"dGeomRayGetClosestHit");
push (@funcs,"dGeomRaySetClosestHit");
push (@funcs,"dGeomTriMeshDataBuildDouble");
push (@funcs,"dGeomTriMeshDataBuildSingle");
push (@funcs,"dInvertPDMatrix");
push (@funcs,"dIsPositiveDefinite");
push (@funcs,"dLDLTAddTL");
push (@funcs,"dLDLTRemove");
push (@funcs,"dRemoveRowCol");
push (@funcs,"dRandGetSeed");
push (@funcs,"dRFromZAxis");
push (@funcs,"dSolveCholesky");
push (@funcs,"dSolveLDLT");
push (@funcs,"dSpaceClean");
# sort the functions and generate the exports file
print "LIBRARY ODE\n";
print "EXPORTS\n";
foreach $f (sort @funcs) {
print "$f\n";
}
syntax highlighted by Code2HTML, v. 0.9.1