home *** CD-ROM | disk | FTP | other *** search
-
-
-
- HHHH2222XXXXSSSS((((1111)))) HHHH2222XXXXSSSS((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- h2xs - convert .h C header files to Perl extensions
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- hhhh2222xxxxssss [----AAAAOOOOPPPPXXXXccccddddffff] [----vvvv version] [----nnnn module_name] [----pppp prefix] [----ssss sub]
- [headerfile ... [extra_libraries]]
-
- hhhh2222xxxxssss ----hhhh
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _h_2_x_s builds a Perl extension from C header files. The extension will
- include functions which can be used to retrieve the value of any #define
- statement which was in the C header files.
-
- The _m_o_d_u_l_e__n_a_m_e will be used for the name of the extension. If
- module_name is not supplied then the name of the first header file will
- be used, with the first character capitalized.
-
- If the extension might need extra libraries, they should be included
- here. The extension Makefile.PL will take care of checking whether the
- libraries actually exist and how they should be loaded. The extra
- libraries should be specified in the form -lm -lposix, etc, just as on
- the cc command line. By default, the Makefile.PL will search through the
- library path determined by Configure. That path can be augmented by
- including arguments of the form ----LLLL////aaaannnnooootttthhhheeeerrrr////lllliiiibbbbrrrraaaarrrryyyy////ppppaaaatttthhhh in the extra-
- libraries argument.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- ----AAAA Omit all autoload facilities. This is the same as ----cccc but also
- removes the require AutoLoader statement from the .pm file.
-
- ----FFFF Additional flags to specify to C preprocessor when scanning header
- for function declarations. Should not be used without ----xxxx.
-
- ----OOOO Allows a pre-existing extension directory to be overwritten.
-
- ----PPPP Omit the autogenerated stub POD section.
-
- ----XXXX Omit the XS portion. Used to generate templates for a module which
- is not XS-based.
-
- ----cccc Omit constant() from the .xs file and corresponding specialised
- AUTOLOAD from the .pm file.
-
- ----dddd Turn on debugging messages.
-
- ----ffff Allows an extension to be created for a header even if that header
- is not found in /usr/include.
-
- ----hhhh Print the usage, help and version for this h2xs and exit.
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- HHHH2222XXXXSSSS((((1111)))) HHHH2222XXXXSSSS((((1111))))
-
-
-
- ----nnnn _m_o_d_u_l_e__n_a_m_e
- Specifies a name to be used for the extension, e.g., -n RPC::DCE
-
- ----pppp _p_r_e_f_i_x
- Specify a prefix which should be removed from the Perl function
- names, e.g., -p sec_rgy_ This sets up the XS PPPPRRRREEEEFFFFIIIIXXXX keyword and
- removes the prefix from functions that are autoloaded via the
- constant() mechansim.
-
- ----ssss _s_u_b_1,_s_u_b_2
- Create a perl subroutine for the specified macros rather than
- autoload with the _c_o_n_s_t_a_n_t() subroutine. These macros are assumed
- to have a return type of cccchhhhaaaarrrr ****, e.g.,
- -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.
-
- ----vvvv _v_e_r_s_i_o_n
- Specify a version number for this extension. This version number is
- added to the templates. The default is 0.01.
-
- ----xxxx Automatically generate XSUBs basing on function declarations in the
- header file. The package C::Scan should be installed. If this
- option is specified, the name of the header file may look like
- NAME1,NAME2. In this case NAME1 is used instead of the specified
- string, but XSUBs are emitted only for the declarations included
- from file NAME2.
-
- Note that some types of arguments/return-values for functions may
- result in XSUB-declarations/typemap-entries which need hand-editing.
- Such may be objects which cannot be converted from/to a pointer
- (like long long), pointers to functions, or arrays.
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
- # Default behavior, extension is Rusers
- h2xs rpcsvc/rusers
-
- # Same, but extension is RUSERS
- h2xs -n RUSERS rpcsvc/rusers
-
- # Extension is rpcsvc::rusers. Still finds <rpcsvc/rusers.h>
- h2xs rpcsvc::rusers
-
- # Extension is ONC::RPC. Still finds <rpcsvc/rusers.h>
- h2xs -n ONC::RPC rpcsvc/rusers
-
- # Without constant() or AUTOLOAD
- h2xs -c rpcsvc/rusers
-
- # Creates templates for an extension named RPC
- h2xs -cfn RPC
-
- # Extension is ONC::RPC.
- h2xs -cfn ONC::RPC
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- HHHH2222XXXXSSSS((((1111)))) HHHH2222XXXXSSSS((((1111))))
-
-
-
- # Makefile.PL will look for library -lrpc in
- # additional directory /opt/net/lib
- h2xs rpcsvc/rusers -L/opt/net/lib -lrpc
-
- # Extension is DCE::rgynbase
- # prefix "sec_rgy_" is dropped from perl function names
- h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase
-
- # Extension is DCE::rgynbase
- # prefix "sec_rgy_" is dropped from perl function names
- # subroutines are created for sec_rgy_wildcard_name and sec_rgy_wildcard_sid
- h2xs -n DCE::rgynbase -p sec_rgy_ \
- -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase
-
- # Make XS without defines in perl.h, but with function declarations
- # visible from perl.h. Name of the extension is perl1.
- # When scanning perl.h, define -DEXT=extern -DdEXT= -DINIT(x)=
- # Extra backslashes below because the string is passed to shell.
- # Note that a directory with perl header files would
- # be added automatically to include path.
- h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h
-
- # Same with function declaration in proto.h as visible from perl.h.
- h2xs -xAn perl2 perl.h,proto.h
-
-
- EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
- No environment variables are used.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Larry Wall and others
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- the _p_e_r_l manpage, the _p_e_r_l_x_s_t_u_t manpage, the _E_x_t_U_t_i_l_s::_M_a_k_e_M_a_k_e_r manpage,
- and the _A_u_t_o_L_o_a_d_e_r manpage.
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- The usual warnings if it cannot read or write the files involved.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- HHHH2222XXXXSSSS((((1111)))) HHHH2222XXXXSSSS((((1111))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
-