__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!perl
use 5.006;
BEGIN { pop @INC if $INC[-1] eq '.' }
use strict;
eval {
require ExtUtils::ParseXS;
1;
}
or do {
my $err = $@ || 'Zombie error';
my $v = $ExtUtils::ParseXS::VERSION;
$v = '<undef>' if not defined $v;
die "Failed to load or import from ExtUtils::ParseXS (version $v). Please check that ExtUtils::ParseXS is installed correctly and that the newest version will be found in your \@INC path: $err";
};
use Getopt::Long;
my %args = ();
my $usage = "Usage: xsubpp [-v] [-csuffix csuffix] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-strip|s pattern] [-typemap typemap]... file.xs\n";
Getopt::Long::Configure qw(no_auto_abbrev no_ignore_case);
@ARGV = grep {$_ ne '-C++'} @ARGV; # Allow -C++ for backward compatibility
GetOptions(\%args, qw(hiertype!
prototypes!
versioncheck!
linenumbers!
optimize!
inout!
argtypes!
object_capi!
except!
v
typemap=s@
output=s
s|strip=s
csuffix=s
))
or die $usage;
if ($args{v}) {
print "xsubpp version $ExtUtils::ParseXS::VERSION\n";
exit;
}
@ARGV == 1 or die $usage;
$args{filename} = shift @ARGV;
my $pxs = ExtUtils::ParseXS->new;
$pxs->process_file(%args);
exit( $pxs->report_error_count() ? 1 : 0 );
__END__
=head1 NAME
xsubpp - compiler to convert Perl XS code into C code
=head1 SYNOPSIS
B<xsubpp> [B<-v>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-nooptimize>] [B<-typemap typemap>] [B<-output filename>]... file.xs
=head1 DESCRIPTION
This compiler is typically run by the makefiles created by L<ExtUtils::MakeMaker>
or by L<Module::Build> or other Perl module build tools.
I<xsubpp> will compile XS code into C code by embedding the constructs
necessary to let C functions manipulate Perl values and creates the glue
necessary to let Perl access those functions. The compiler uses typemaps to
determine how to map C function parameters and variables to Perl values.
The compiler will search for typemap files called I<typemap>. It will use
the following search path to find default typemaps, with the rightmost
typemap taking precedence.
../../../typemap:../../typemap:../typemap:typemap
It will also use a default typemap installed as C<ExtUtils::typemap>.
=head1 OPTIONS
Note that the C<XSOPT> MakeMaker option may be used to add these options to
any makefiles generated by MakeMaker.
=over 5
=item B<-hiertype>
Retains '::' in type names so that C++ hierarchical types can be mapped.
=item B<-except>
Adds exception handling stubs to the C code.
=item B<-typemap typemap>
Indicates that a user-supplied typemap should take precedence over the
default typemaps. This option may be used multiple times, with the last
typemap having the highest precedence.
=item B<-output filename>
Specifies the name of the output file to generate. If no file is
specified, output will be written to standard output.
=item B<-v>
Prints the I<xsubpp> version number to standard output, then exits.
=item B<-prototypes>
By default I<xsubpp> will not automatically generate prototype code for
all xsubs. This flag will enable prototypes.
=item B<-noversioncheck>
Disables the run time test that determines if the object file (derived
from the C<.xs> file) and the C<.pm> files have the same version
number.
=item B<-nolinenumbers>
Prevents the inclusion of '#line' directives in the output.
=item B<-nooptimize>
Disables certain optimizations. The only optimization that is currently
affected is the use of I<target>s by the output C code (see L<perlguts>).
This may significantly slow down the generated code, but this is the way
B<xsubpp> of 5.005 and earlier operated.
=item B<-noinout>
Disable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> declarations.
=item B<-noargtypes>
Disable recognition of ANSI-like descriptions of function signature.
=item B<-C++>
Currently doesn't do anything at all. This flag has been a no-op for
many versions of perl, at least as far back as perl5.003_07. It's
allowed here for backwards compatibility.
=item B<-s=...> or B<-strip=...>
I<This option is obscure and discouraged.>
If specified, the given string will be stripped off from the beginning
of the C function name in the generated XS functions (if it starts with that prefix).
This only applies to XSUBs without C<CODE> or C<PPCODE> blocks.
For example, the XS:
void foo_bar(int i);
when C<xsubpp> is invoked with C<-s foo_> will install a C<foo_bar>
function in Perl, but really call C<bar(i)> in C. Most of the time,
this is the opposite of what you want and failure modes are somewhat
obscure, so please avoid this option where possible.
=back
=head1 ENVIRONMENT
No environment variables are used.
=head1 AUTHOR
Originally by Larry Wall. Turned into the C<ExtUtils::ParseXS> module
by Ken Williams.
=head1 MODIFICATION HISTORY
See the file F<Changes>.
=head1 SEE ALSO
perl(1), perlxs(1), perlxstut(1), ExtUtils::ParseXS
=cut
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| CBuilder | Folder | 0755 |
|
|
| Command | Folder | 0755 |
|
|
| Constant | Folder | 0755 |
|
|
| Liblist | Folder | 0755 |
|
|
| MakeMaker | Folder | 0755 |
|
|
| ParseXS | Folder | 0755 |
|
|
| Typemaps | Folder | 0755 |
|
|
| CBuilder.pm | File | 8.67 KB | 0644 |
|
| Command.pm | File | 7.59 KB | 0644 |
|
| Constant.pm | File | 14.7 KB | 0644 |
|
| Embed.pm | File | 12.57 KB | 0644 |
|
| Install.pm | File | 39.92 KB | 0644 |
|
| Installed.pm | File | 14 KB | 0644 |
|
| Liblist.pm | File | 9.29 KB | 0644 |
|
| MANIFEST.SKIP | File | 1.17 KB | 0644 |
|
| MM.pm | File | 2.13 KB | 0644 |
|
| MM_AIX.pm | File | 1.46 KB | 0644 |
|
| MM_Any.pm | File | 80.97 KB | 0644 |
|
| MM_BeOS.pm | File | 1.04 KB | 0644 |
|
| MM_Cygwin.pm | File | 4.03 KB | 0644 |
|
| MM_DOS.pm | File | 1.04 KB | 0644 |
|
| MM_Darwin.pm | File | 1.45 KB | 0644 |
|
| MM_MacOS.pm | File | 901 B | 0644 |
|
| MM_NW5.pm | File | 5.35 KB | 0644 |
|
| MM_OS2.pm | File | 3.15 KB | 0644 |
|
| MM_OS390.pm | File | 2.22 KB | 0644 |
|
| MM_QNX.pm | File | 907 B | 0644 |
|
| MM_UWIN.pm | File | 994 B | 0644 |
|
| MM_Unix.pm | File | 111.59 KB | 0644 |
|
| MM_VMS.pm | File | 66.68 KB | 0644 |
|
| MM_VOS.pm | File | 762 B | 0644 |
|
| MM_Win32.pm | File | 14.71 KB | 0644 |
|
| MM_Win95.pm | File | 1.26 KB | 0644 |
|
| MY.pm | File | 678 B | 0644 |
|
| MakeMaker.pm | File | 106.86 KB | 0644 |
|
| Manifest.pm | File | 22.94 KB | 0644 |
|
| Miniperl.pm | File | 6.91 KB | 0644 |
|
| Mkbootstrap.pm | File | 3.2 KB | 0644 |
|
| Mksymlists.pm | File | 10.75 KB | 0644 |
|
| PL2Bat.pm | File | 5.1 KB | 0644 |
|
| Packlist.pm | File | 8.34 KB | 0644 |
|
| ParseXS.pm | File | 70.7 KB | 0644 |
|
| ParseXS.pod | File | 4.77 KB | 0644 |
|
| Typemaps.pm | File | 26.26 KB | 0644 |
|
| testlib.pm | File | 911 B | 0644 |
|
| typemap | File | 12.06 KB | 0644 |
|
| xsubpp | File | 4.95 KB | 0644 |
|