home *** CD-ROM | disk | FTP | other *** search
-
- <HTML>
- <HEAD>
- <TITLE>ExtUtils::Mksymlists - write linker options files for dynamic extension</TITLE>
- <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
- <LINK REV="made" HREF="mailto:">
- </HEAD>
-
- <BODY>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> ExtUtils::Mksymlists - write linker options files for dynamic extension</P></STRONG>
- </TD></TR>
- </TABLE>
-
- <A NAME="__index__"></A>
- <!-- INDEX BEGIN -->
-
- <UL>
-
- <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
-
- <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
- <LI><A HREF="#description">DESCRIPTION</A></LI>
- <LI><A HREF="#author">AUTHOR</A></LI>
- <LI><A HREF="#revision">REVISION</A></LI>
- </UL>
- <!-- INDEX END -->
-
- <HR>
- <P>
- <H1><A NAME="name">NAME</A></H1>
- <P>ExtUtils::Mksymlists - write linker options files for dynamic extension</P>
- <P>
- <HR>
- <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
- <UL>
- <LI>Linux</LI>
- <LI>Solaris</LI>
- <LI>Windows</LI>
- </UL>
- <HR>
- <H1><A NAME="synopsis">SYNOPSIS</A></H1>
- <PRE>
- use ExtUtils::Mksymlists;
- Mksymlists({ NAME => $name ,
- DL_VARS => [ $var1, $var2, $var3 ],
- DL_FUNCS => { $pkg1 => [ $func1, $func2 ],
- $pkg2 => [ $func3 ] });</PRE>
- <P>
- <HR>
- <H1><A NAME="description">DESCRIPTION</A></H1>
- <P><CODE>ExtUtils::Mksymlists</CODE> produces files used by the linker under some OSs
- during the creation of shared libraries for dynamic extensions. It is
- normally called from a MakeMaker-generated Makefile when the extension
- is built. The linker option file is generated by calling the function
- <CODE>Mksymlists</CODE>, which is exported by default from <CODE>ExtUtils::Mksymlists</CODE>.
- It takes one argument, a list of key-value pairs, in which the following
- keys are recognized:</P>
- <DL>
- <DT><STRONG><A NAME="item_DLBASE">DLBASE</A></STRONG><BR>
- <DD>
- This item specifies the name by which the linker knows the
- extension, which may be different from the name of the
- extension itself (for instance, some linkers add an '_' to the
- name of the extension). If it is not specified, it is derived
- from the NAME attribute. It is presently used only by OS2 and Win32.
- <P></P>
- <DT><STRONG><A NAME="item_DL_FUNCS">DL_FUNCS</A></STRONG><BR>
- <DD>
- This is identical to the DL_FUNCS attribute available via MakeMaker,
- from which it is usually taken. Its value is a reference to an
- associative array, in which each key is the name of a package, and
- each value is an a reference to an array of function names which
- should be exported by the extension. For instance, one might say
- <A HREF="../../lib/Pod/perlfunc.html#item_qw"><CODE>DL_FUNCS => { Homer::Iliad => [ qw(trojans greeks) ],
- Homer::Odyssey =E<gt> [ qw(travellers family suitors) ] }</CODE></A>. The
- function names should be identical to those in the XSUB code;
- <CODE>Mksymlists</CODE> will alter the names written to the linker option
- file to match the changes made by <EM>xsubpp</EM>. In addition, if
- none of the functions in a list begin with the string <STRONG>boot_</STRONG>,
- <CODE>Mksymlists</CODE> will add a bootstrap function for that package,
- just as xsubpp does. (If a <STRONG>boot_<pkg></STRONG> function is
- present in the list, it is passed through unchanged.) If
- DL_FUNCS is not specified, it defaults to the bootstrap
- function for the extension specified in NAME.
- <P></P>
- <DT><STRONG><A NAME="item_DL_VARS">DL_VARS</A></STRONG><BR>
- <DD>
- This is identical to the DL_VARS attribute available via MakeMaker,
- and, like DL_FUNCS, it is usually specified via MakeMaker. Its
- value is a reference to an array of variable names which should
- be exported by the extension.
- <P></P>
- <DT><STRONG><A NAME="item_FILE">FILE</A></STRONG><BR>
- <DD>
- This key can be used to specify the name of the linker option file
- (minus the OS-specific extension), if for some reason you do not
- want to use the default value, which is the last word of the NAME
- attribute (<EM>e.g.</EM> for <CODE>Tk::Canvas</CODE>, FILE defaults to <CODE>Canvas</CODE>).
- <P></P>
- <DT><STRONG><A NAME="item_FUNCLIST">FUNCLIST</A></STRONG><BR>
- <DD>
- This provides an alternate means to specify function names to be
- exported from the extension. Its value is a reference to an
- array of function names to be exported by the extension. These
- names are passed through unaltered to the linker options file.
- Specifying a value for the FUNCLIST attribute suppresses automatic
- generation of the bootstrap function for the package. To still create
- the bootstrap name you have to specify the package name in the
- DL_FUNCS hash:
- <PRE>
- Mksymlists({ NAME => $name ,
- FUNCLIST => [ $func1, $func2 ],
- DL_FUNCS => { $pkg => [] } });</PRE>
- <P></P>
- <DT><STRONG><A NAME="item_IMPORTS">IMPORTS</A></STRONG><BR>
- <DD>
- This attribute is used to specify names to be imported into the
- extension. It is currently only used by OS/2 and Win32.
- <P></P>
- <DT><STRONG><A NAME="item_NAME">NAME</A></STRONG><BR>
- <DD>
- This gives the name of the extension (<EM>e.g.</EM> <CODE>Tk::Canvas</CODE>) for which
- the linker option file will be produced.
- <P></P></DL>
- <P>When calling <CODE>Mksymlists</CODE>, one should always specify the NAME
- attribute. In most cases, this is all that's necessary. In
- the case of unusual extensions, however, the other attributes
- can be used to provide additional information to the linker.</P>
- <P>
- <HR>
- <H1><A NAME="author">AUTHOR</A></H1>
- <P>Charles Bailey <EM><<A HREF="mailto:bailey@newman.upenn.edu">bailey@newman.upenn.edu</A>></EM></P>
- <P>
- <HR>
- <H1><A NAME="revision">REVISION</A></H1>
- <P>Last revised 14-Feb-1996, for Perl 5.002.</P>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> ExtUtils::Mksymlists - write linker options files for dynamic extension</P></STRONG>
- </TD></TR>
- </TABLE>
-
- </BODY>
-
- </HTML>
-