⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile.pl

📁 source of perl for linux application,
💻 PL
字号:
#! perl -wuse strict ;require 5.004 ;use private::MakeUtil;use ExtUtils::MakeMaker 5.16 ;use ExtUtils::Install (); # only needed to check for versionmy $ZLIB_LIB ;my $ZLIB_INCLUDE ;my $BUILD_ZLIB = 0 ;my $OLD_ZLIB = '' ;my $WALL = '' ;my $GZIP_OS_CODE = -1 ;my $USE_PPPORT_H = ($ENV{PERL_CORE}) ? '' : '-DUSE_PPPORT_H';#$WALL = ' -pedantic ' if $Config{'cc'} =~ /gcc/ ;#$WALL = ' -Wall -Wno-comment ' if $Config{'cc'} =~ /gcc/ ;# Ticket #18986 says that ExtUtils::Install 1.39 fixes the in-use issue# on win32/cygwin, so make the code below conditional on the version of# ExtUtils::Install.# Don't ask if MM_USE_DEFAULT is set -- enables perl core building on cygwinif ($^O =~ /cygwin/i and $ExtUtils::Install::VERSION < 1.39         and not ($ENV{PERL_MM_USE_DEFAULT} or $ENV{PERL_CORE})){    print <<EOM ;I see you are running Cygwin.Please note that this module cannot be installed on Cygwin using the CPANshell. The CPAN Shell uses Compress::Raw::Zlib internally and it is notpossible to delete an active DLL.If you are running the CPAN shell, please exit it and install this moduleby hand by running 'make install' under the directory    ~/.cpan/build/Compress-Raw-Zlib-VERSIONEOM    print "Do you want to continue? [Y/N]: " ;    my $answer = <STDIN> ;    if ($answer =~ /^yes|y/i)    {	print "continuing...\n"     }    else    {	print "exiting...\n" ;	exit 1 ;    }}ParseCONFIG() ;UpDowngrade(getPerlFiles('MANIFEST'))     unless $ENV{PERL_CORE};WriteMakefile(     NAME         => 'Compress::Raw::Zlib',    VERSION_FROM => 'lib/Compress/Raw/Zlib.pm',    INC          => "-I$ZLIB_INCLUDE" ,    DEFINE       => "$OLD_ZLIB $WALL -DGZIP_OS_CODE=$GZIP_OS_CODE $USE_PPPORT_H" ,    XS           => { 'Zlib.xs' => 'Zlib.c'},    'depend'     => { 'Makefile'   => 'config.in' },    'clean'      => { FILES        => '*.c constants.h constants.xs' },    'dist'       => { COMPRESS     => 'gzip',                       TARFLAGS     => '-chvf',                      SUFFIX       => 'gz',                      DIST_DEFAULT => 'MyTrebleCheck tardist',                    },    (      $ENV{SKIP_FOR_CORE}        ? (MAN3PODS    => {})        : ()    ),           (      $BUILD_ZLIB        ? zlib_files($ZLIB_LIB)        : (LIBS => [ "-L$ZLIB_LIB -lz " ])    ),          (      $] >= 5.005        ? (ABSTRACT_FROM => 'lib/Compress/Raw/Zlib.pm',            AUTHOR       => 'Paul Marquess <pmqs@cpan.org>')        : ()    ),    INSTALLDIRS => ($] >= 5.009 ? 'perl' : 'site'),    ((ExtUtils::MakeMaker->VERSION() gt '6.30') ?        ('LICENSE'  => 'perl')         : ()),    ) ;my @names = qw(    DEF_WBITS    MAX_MEM_LEVEL    MAX_WBITS    OS_CODE    Z_ASCII    Z_BEST_COMPRESSION    Z_BEST_SPEED    Z_BINARY    Z_BLOCK    Z_BUF_ERROR    Z_DATA_ERROR    Z_DEFAULT_COMPRESSION    Z_DEFAULT_STRATEGY    Z_DEFLATED    Z_ERRNO    Z_FILTERED    Z_FINISH    Z_FIXED    Z_FULL_FLUSH    Z_HUFFMAN_ONLY    Z_MEM_ERROR    Z_NEED_DICT    Z_NO_COMPRESSION    Z_NO_FLUSH    Z_NULL    Z_OK    Z_PARTIAL_FLUSH    Z_RLE    Z_STREAM_END    Z_STREAM_ERROR    Z_SYNC_FLUSH    Z_UNKNOWN    Z_VERSION_ERROR);    #ZLIB_VERNUMif (eval {require ExtUtils::Constant; 1}) {    # Check the constants above all appear in @EXPORT in Zlib.pm    my %names = map { $_, 1} @names, 'ZLIB_VERSION';    open F, "<lib/Compress/Raw/Zlib.pm" or die "Cannot open Zlib.pm: $!\n";    while (<F>)    {        last if /^\s*\@EXPORT\s+=\s+qw\(/ ;    }    while (<F>)    {        last if /^\s*\)/ ;        /(\S+)/ ;        delete $names{$1} if defined $1 ;    }    close F ;    if ( keys %names )    {        my $missing = join ("\n\t", sort keys %names) ;        die "The following names are missing from \@EXPORT in Zlib.pm\n" .            "\t$missing\n" ;    }        push @names, {name => 'ZLIB_VERSION', type => 'PV' };    ExtUtils::Constant::WriteConstants(                                     NAME => 'Zlib',                                     NAMES => \@names,                                     C_FILE  => 'constants.h',                                     XS_FILE  => 'constants.xs',                                                                                                           );} else {    foreach my $name (qw( constants.h constants.xs ))    {        my $from = catfile('fallback', $name);        copy ($from, $name)          or die "Can't copy $from to $name: $!";    }}sub ParseCONFIG{    my ($k, $v) ;    my @badkey = () ;    my %Info = () ;    my @Options = qw( INCLUDE LIB BUILD_ZLIB OLD_ZLIB GZIP_OS_CODE ) ;    my %ValidOption = map {$_, 1} @Options ;    my %Parsed = %ValidOption ;    my $CONFIG = 'config.in' ;    print "Parsing $CONFIG...\n" ;    open(F, "<$CONFIG") or die "Cannot open file $CONFIG: $!\n" ;    while (<F>) {	s/^\s*|\s*$//g ;	next if /^\s*$/ or /^\s*#/ ;	s/\s*#\s*$// ;	($k, $v) = split(/\s+=\s+/, $_, 2) ;	$k = uc $k ;	if ($ValidOption{$k}) {	    delete $Parsed{$k} ;	    $Info{$k} = $v ;	}	else {	    push(@badkey, $k) ;	}    }    close F ;    print "Unknown keys in $CONFIG ignored [@badkey]\n"	if @badkey ;    # check parsed values    my @missing = () ;    die "The following keys are missing from $CONFIG  [@missing]\n"         if @missing = keys %Parsed ;    $ZLIB_INCLUDE = $ENV{'ZLIB_INCLUDE'} || $Info{'INCLUDE'} ;    $ZLIB_LIB = $ENV{'ZLIB_LIB'} || $Info{'LIB'} ;    if ($^O eq 'VMS') {        $ZLIB_INCLUDE = VMS::Filespec::vmspath($ZLIB_INCLUDE);        $ZLIB_LIB = VMS::Filespec::vmspath($ZLIB_LIB);    }    my $y = $ENV{'OLD_ZLIB'} || $Info{'OLD_ZLIB'} ;    $OLD_ZLIB = '-DOLD_ZLIB' if $y and $y =~ /^yes|on|true|1$/i;    my $x = $ENV{'BUILD_ZLIB'} || $Info{'BUILD_ZLIB'} ;    if ($x and $x =~ /^yes|on|true|1$/i ) {        $BUILD_ZLIB = 1 ;	# ZLIB_LIB & ZLIB_INCLUDE must point to the same place when 	# BUILD_ZLIB is specified.	die "INCLUDE & LIB must be the same when BUILD_ZLIB is True\n"	    if $ZLIB_LIB ne $ZLIB_INCLUDE ;	# Check the zlib source directory exists	die "LIB/INCLUDE directory '$ZLIB_LIB' does not exits\n"	   unless -d $ZLIB_LIB ;	# check for a well known file	die "LIB/INCLUDE directory, '$ZLIB_LIB', doesn't seem to have the zlib source files\n"	   unless -e catfile($ZLIB_LIB, 'zlib.h') ;	# write the Makefile	print "Building Zlib enabled\n" ;    }    $GZIP_OS_CODE = defined $ENV{'GZIP_OS_CODE'}                           ? $ENV{'GZIP_OS_CODE'}                           : $Info{'GZIP_OS_CODE'} ;	die "GZIP_OS_CODE not 'AUTO_DETECT' or a number between 0 and 255\n"	   unless uc $GZIP_OS_CODE eq 'AUTO_DETECT'                    || ( $GZIP_OS_CODE =~ /^(\d+)$/ && $1 >= 0 && $1 <= 255) ;    if (uc $GZIP_OS_CODE eq 'AUTO_DETECT')    {        print "Auto Detect Gzip OS Code..\n" ;        $GZIP_OS_CODE = getOSCode() ;    }        my $name = getOSname($GZIP_OS_CODE);    print "Setting Gzip OS Code to $GZIP_OS_CODE [$name]\n" ;    print <<EOM if 0 ;    INCLUDE         [$ZLIB_INCLUDE]    LIB             [$ZLIB_LIB]    GZIP_OS_CODE    [$GZIP_OS_CODE]    OLD_ZLIB        [$OLD_ZLIB]    BUILD_ZLIB      [$BUILD_ZLIB]EOM    print "Looks Good.\n" ;}sub zlib_files{    my $dir = shift ;    my @h_files = ();    my @c_files = ();        if (-f catfile($dir, "infback.c")) {        # zlib 1.2.0 or greater        #        @h_files = qw(crc32.h    inffast.h inflate.h  trees.h    zconf.in.h     	              zutil.h    deflate.h inffixed.h inftrees.h zconf.h      		      zlib.h     		 );        @c_files = qw(adler32  crc32   infback  inflate  uncompr    		      compress deflate inffast  inftrees      		      trees    zutil     		 );    }    else {        # zlib 1.1.x            @h_files = qw(deflate.h  infcodes.h inftrees.h zconf.h zutil.h    		      infblock.h inffast.h  infutil.h  zlib.h    		 );        @c_files = qw(adler32  compress crc32    uncompr    		      deflate  trees    zutil    inflate infblock    		      inftrees infcodes infutil  inffast    		 );    }        @h_files = map { catfile($dir, $_)  } @h_files ;    my @o_files = map { "$_\$(OBJ_EXT)" } 'Zlib', @c_files;    @c_files = map { "$_.c" } 'Zlib', @c_files ;    foreach my $file (@c_files)      { copy(catfile($dir, $file), '.') }        return (        #'H'         =>  [ @h_files ],    	'C'         =>  [ @c_files ] ,        #'OBJECT'    => qq[ @o_files ],        'OBJECT'    => q[ $(O_FILES) ],                   ) ;}use vars qw ( @GZIP_OS_Names  %OSnames) ;BEGIN{  @GZIP_OS_Names = (    [ ''        => 0,    'MS-DOS'                       ],    [ 'amigaos' => 1,    'Amiga'                        ],    [ 'VMS'     => 2,    'VMS'                          ],    [ ''        => 3,    'Unix/Default'                 ],    [ ''        => 4,    'VM/CMS'                       ],    [ ''        => 5,    'Atari TOS'                    ],    [ 'os2'     => 6,    'HPFS (OS/2, NT)'              ],    [ 'MacOS'   => 7,    'Macintosh'                    ],    [ ''        => 8,    'Z-System'                     ],    [ ''        => 9,    'CP/M'                         ],    [ ''        => 10,   'TOPS-20'                      ],    [ ''        => 11,   'NTFS (NT)'                    ],    [ ''        => 12,   'SMS QDOS'                     ],    [ ''        => 13,   'Acorn RISCOS'                 ],    [ 'MSWin32' => 14,   'VFAT file system (Win95, NT)' ],    [ ''        => 15,   'MVS'                          ],    [ 'beos'    => 16,   'BeOS'                         ],    [ ''        => 17,   'Tandem/NSK'                   ],    [ ''        => 18,   'THEOS'                        ],    [ ''        => 255,  'Unknown OS'                   ],  );  %OSnames = map { $$_[1] => $$_[2] }               @GZIP_OS_Names ;}sub getOSCode{    my $default = 3 ; # Unix is the default    my $uname = $^O;    for my $h (@GZIP_OS_Names)    {        my ($pattern, $code, $name) = @$h;        return $code            if $pattern && $uname eq $pattern ;    }    return $default ;}sub getOSname{    my $code = shift ;    return $OSnames{$code} || 'Unknown OS' ;}# end of file Makefile.PL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -