ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Makefile.PL
(Generate patch)

Comparing IO-AIO/Makefile.PL (file contents):
Revision 1.15 by root, Sat May 10 18:06:41 2008 UTC vs.
Revision 1.36 by root, Tue Aug 14 09:29:50 2018 UTC

1use Canary::Stability IO::AIO => 1, 5.008002;
2
1use ExtUtils::MakeMaker; 3use ExtUtils::MakeMaker;
2 4
3use Config; 5use Config;
4 6
5if ($^O =~ /win32/i or $^O =~ /mswin/) { 7if ($^O eq "MSWin32") {
6
7 # configuration on windows is hardcoded - as always 8 # configuration on windows is hardcoded - as always
8 9
9 warn "your platform is not standards-compliant, you have to port this module first\n"; 10 print STDERR <<EOF;
10 warn "using some hardcoded config that will not work on your system\n";
11 11
12 $INC = "-I/Perl/lib/CORE -I/sdk/include -I/vc98/include -I/gtk/include -I/gtk/include/pango-1.0 -I/gtk/include/glib-2.0 -I/gtk/lib/glib-2.0/include/ -I/gtk/include/freetype2"; 12***
13*** Your platform is not standards compliant. To get this module working, you need to
14*** download and install win32 pthread (http://sourceware.org/pthreads-win32/)
15*** in /gtk/{lib,include}
16*** also, the windows SDK is expected to be installed in /sdk
17*** and visual C is expected to be installed in /vc98
18***
19*** Alternatively, set the INC and LIBS environment variables
20*** accordingly before running Makefile.PL, or you can
21*** pass INC and LIBS arguments to Makefile.PL itself.
22***
23
24EOF
25
26 if(0){
27 if ($Config{cc} =~ /(?:^|\\|\/)gcc(?:|.*\.exe)$/) {
28 $INC = "$ENV{INC} -I/gtk/include";
29 $LIBS = ["$ENV{LIBS} -L/gtk/lib -lpthreadGC2"];
30 } else {
31 $INC = "$ENV{INC} -I/sdk/include -I/vc98/include -I/gtk/include";
13 $LIBS = ["-L/gtk/lib -lpthreadVC2"]; 32 $LIBS = ["$ENV{LIBS} -L/gtk/lib -lpthreadVC2"];
33 }
34}
35
36 open my $fh, ">config.h"
37 or die "config.h: $!";
38 print $fh <<EOF;
39EOF
14 40
15} else { 41} else {
16 42
17 $INC = ""; 43 $INC = "";
18 $LIBS = ['-lpthread -lrt', '-lpthread', '-lpthreads', '-lpthreadVC2', '']; 44 $LIBS = ['-lpthread', '-lpthreads', ''];
19 45
20 if ($^O =~ /freebsd/i) { 46 if ($^O =~ /bsd/i) {
21 print <<EOF; 47 print <<EOF;
22 48
23This package seems to deadlock or otherwise misbehave under FreeBSD. As 49If you have problems with deadlocks or crashes on your system,
24documentation on FreeBSD threading is sorely lacking and confusing, I'll 50make sure your perl has been linked with -lpthread (you might try
25just call FreeBSD broken with regards to threading. 51LD_PRELOAD=/path/to/libpthread.so as a workaround). Also, pthread support
26 52under many BSDs is not the best - before reporting a bug in this module,
27If you find out whats wrong, please tell me. 53make sure it's not an OS bug.
28
29Some people had luck with using OPTIMIZE=-O instead of -O2, so you might
30want to try that.
31 54
32EOF 55EOF
33 } 56 }
34 57
35 { 58 {
40 } 63 }
41 64
42 $ENV{MAKE} = $Config{make}; 65 $ENV{MAKE} = $Config{make};
43 $ENV{SHELL} = $Config{sh}; 66 $ENV{SHELL} = $Config{sh};
44 $ENV{CC} = $Config{cc}; 67 $ENV{CC} = $Config{cc};
45 $ENV{CPPFLAGS} = $Config{cppflags}; 68 $ENV{CPPFLAGS} = "$Config{cppflags} -I$Config{archlibexp}/CORE";
46 $ENV{CFLAGS} = $Config{ccflags}; 69 $ENV{CFLAGS} = $Config{ccflags};
47 $ENV{LDFLAGS} = $Config{ldflags}; 70 $ENV{LDFLAGS} = "$Config{ldflags} -L$Config{archlibexp}/CORE -L$Config{privlibexp}";
48 $ENV{LIBS} = $Config{libs};
49 $ENV{LINKER} = $Config{ld}; # nonstandard 71 $ENV{LINKER} = $Config{ld}; # nonstandard
72 $ENV{LIBS} = "-lperl $Config{libs}";
50 73
51 system $ENV{SHELL}, -c => "cd libeio && ./configure --prefix \Q$Config{prefixexp}\E" 74 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
52 and exit $? >> 8; 75 and exit $? >> 8;
53 } 76 }
54} 77}
55 78
56if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") { 79if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
57 print <<EOF; 80 print <<EOF;
58 81
59*** 82***
60*** WARNING: 83*** WARNING:
61*** 84***
62*** Your perl uses it's own memory allocator (-Dusemymalloc=y), 85*** Your perl uses its own memory allocator (-Dusemymalloc=y),
63*** which is known not to be threadsafe on GNU/Linux and probably 86*** which is known not to be threadsafe on GNU/Linux and probably
64*** other platforms (even when not used concurrently, it trashes 87*** other platforms (even when not used concurrently, it trashes
65*** the data structures of the system malloc running concurrently), 88*** the data structures of the system malloc running concurrently),
66*** for perls up to 5.8.8 and possibly later versions. 89*** for perls up to 5.8.8 and possibly later versions.
67*** 90***
76my $mm = MM->new({ 99my $mm = MM->new({
77 dist => { 100 dist => {
78 PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', 101 PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
79 COMPRESS => 'gzip -9v', 102 COMPRESS => 'gzip -9v',
80 SUFFIX => '.gz', 103 SUFFIX => '.gz',
81 }, 104 },
82 depend => { 105 depend => {
83 "AIO.c" => "libeio/eio.h libeio/eio.c libeio/config.h", 106 "AIO.c" => "schmorp.h libeio/eio.h libeio/xthread.h libeio/etp.c libeio/eio.c config.h",
84 }, 107 },
85 NAME => "IO::AIO", 108 NAME => "IO::AIO",
86 VERSION_FROM => "AIO.pm", 109 VERSION_FROM => "AIO.pm",
87 INC => $INC, 110 INC => $INC,
88 LIBS => $LIBS, 111 LIBS => $LIBS,
112 EXE_FILES => ["bin/treescan"],
89 PM => { 113 PM => {
90 'AIO.pm' => '$(INST_LIBDIR)/AIO.pm', 114 'AIO.pm' => '$(INST_LIB)/IO/AIO.pm',
91 }, 115 },
116 CONFIGURE_REQUIRES => { ExtUtils::MakeMaker => 6.52, Canary::Stability => 2001 },
117 PREREQ_PM => {
118 "common::sense" => 0,
119 },
92 clean => { FILES => "libeio/config.h libeio/config.log libeio/config.status" }, 120 clean => { FILES => "config.h libeio/config.h libeio/config.log libeio/config.status" },
93}); 121});
94 122
95$mm->flush; 123$mm->flush;
96 124

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines