################################################################################ # # PPPort_xs.PL -- generate RealPPPort.xs # ################################################################################ # # Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz. # Version 2.x, Copyright (C) 2001, Paul Marquess. # Version 1.x, Copyright (C) 1999, Kenneth Albanowski. # # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # ################################################################################ use strict; $^W = 1; require "./parts/ppptools.pl"; my %SECTION = ( xshead => { code => '', header => "/* ---- code from __FILE__ ---- */" }, xsinit => { code => '', header => "/* ---- code from __FILE__ ---- */" }, xsmisc => { code => '', header => "/* ---- code from __FILE__ ---- */" }, xsboot => { code => '', header => "/* ---- code from __FILE__ ---- */", indent => "\t" }, xsubs => { code => '', header => <{$sec}) { $msg++ or print "adding XS code from $file\n"; if (exists $SECTION{$sec}{header}) { my $header = $SECTION{$sec}{header}; $header =~ s/__FILE__/$file/g; $SECTION{$sec}{code} .= $header . "\n"; } $SECTION{$sec}{code} .= $spec->{$sec} . "\n"; } } } my $data = do { local $/; }; for $sec (keys %SECTION) { my $code = $SECTION{$sec}{code}; if (exists $SECTION{$sec}{indent}) { $code =~ s/^/$SECTION{$sec}{indent}/gm; } $code =~ s/[\r\n]+$//; $data =~ s/^__\U$sec\E__$/$code/m; } open FH, ">RealPPPort.xs" or die "RealPPPort.xs: $!\n"; print FH $data; close FH; exit 0; __DATA__ /******************************************************************************* * * !!!!! Do NOT edit this file directly! -- Edit PPPort_xs.PL instead. !!!!! * * This file was automatically generated from the definition files in the * parts/inc/ subdirectory by PPPort_xs.PL. To learn more about how all this * works, please read the F file that came with this distribution. * ******************************************************************************** * * Perl/Pollution/Portability * ******************************************************************************** * * Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz. * Version 2.x, Copyright (C) 2001, Paul Marquess. * Version 1.x, Copyright (C) 1999, Kenneth Albanowski. * * This program is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. * *******************************************************************************/ /* ========== BEGIN XSHEAD ================================================== */ __XSHEAD__ /* =========== END XSHEAD =================================================== */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" /* ========== BEGIN XSINIT ================================================== */ __XSINIT__ /* =========== END XSINIT =================================================== */ #include "ppport.h" /* ========== BEGIN XSMISC ================================================== */ __XSMISC__ /* =========== END XSMISC =================================================== */ MODULE = Devel::PPPort PACKAGE = Devel::PPPort BOOT: __XSBOOT__ __XSUBS__