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.11 by root, Mon Jan 22 15:59:36 2007 UTC vs.
Revision 1.33 by root, Fri Jan 24 23:46:17 2014 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines