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.7 by root, Tue Aug 30 15:45:10 2005 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
5require "autoconf.pm"; 7if ($^O eq "MSWin32") {
8 # configuration on windows is hardcoded - as always
6 9
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(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";
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
40
41} else {
42
43 $INC = "";
44 $LIBS = ['-lpthread', '-lpthreads', ''];
45
7if ($^O =~ /freebsd/i) { 46 if ($^O =~ /bsd/i) {
47 print <<EOF;
48
49If you have problems with deadlocks or crashes on your system,
50make sure your perl has been linked with -lpthread (you might try
51LD_PRELOAD=/path/to/libpthread.so as a workaround). Also, pthread support
52under many BSDs is not the best - before reporting a bug in this module,
53make sure it's not an OS bug.
54
55EOF
56 }
57
58 {
59 local %ENV = %ENV;
60
61 while (my ($k, $v) = each %Config) {
62 $ENV{$k} = $v;
63 }
64
65 $ENV{MAKE} = $Config{make};
66 $ENV{SHELL} = $Config{sh};
67 $ENV{CC} = $Config{cc};
68 $ENV{CPPFLAGS} = "$Config{cppflags} -I$Config{archlibexp}/CORE";
69 $ENV{CFLAGS} = $Config{ccflags};
70 $ENV{LDFLAGS} = "$Config{ldflags} -L$Config{archlibexp}/CORE -L$Config{privlibexp}";
71 $ENV{LINKER} = $Config{ld}; # nonstandard
72 $ENV{LIBS} = "-lperl $Config{libs}";
73
74 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
75 and exit $? >> 8;
76 }
77}
78
79if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
8 print <<EOF; 80 print <<EOF;
9 81
10This package seems to deadlock under FreeBSD. As documentation on FreeBSD 82***
11threading is sorely lacking and confusing, I'll just call FreeBSD broken 83*** WARNING:
12with regards to threading. 84***
13 85*** Your perl uses its own memory allocator (-Dusemymalloc=y),
14If you get it to work, tell me how (maybe you need to specify magical link 86*** which is known not to be threadsafe on GNU/Linux and probably
15flags despite man pthread telling me otherwise, maybe yo need special 87*** other platforms (even when not used concurrently, it trashes
16library, maybe you need magical preprocessor symbols, maybe you need to 88*** the data structures of the system malloc running concurrently),
17recompile or re-link perl with threads enabled (a bad idea) - I have no 89*** for perls up to 5.8.8 and possibly later versions.
18idea, and I no longer care). Or maybe I do, but am frustrated about the 90***
19continous "we are different=broken" attitude. 91*** If you are unsure wether your perl has been fixed, your system
92*** is safe for other reasons, or you experience spurious segfaults,
93*** please compile your perl with -Dusemymalloc=n.
94***
20 95
21EOF 96EOF
22} 97}
23
24autoconf::run_script()
25 and die "\nconfigure failed, check it's output above and autoconf/config.log\n\n";
26 98
27my $mm = MM->new({ 99my $mm = MM->new({
28 dist => { 100 dist => {
29 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 . ;',
30 COMPRESS => 'gzip -9v', 102 COMPRESS => 'gzip -9v',
31 SUFFIX => '.gz', 103 SUFFIX => '.gz',
32 }, 104 },
105 depend => {
106 "AIO.c" => "schmorp.h libeio/eio.h libeio/xthread.h libeio/etp.c libeio/eio.c config.h",
107 },
33 NAME => "IO::AIO", 108 NAME => "IO::AIO",
34 VERSION_FROM => "AIO.pm", 109 VERSION_FROM => "AIO.pm",
35 LIBS => ['-lpthread -lrt', '-lpthread', '-lpthreads', ''], 110 INC => $INC,
111 LIBS => $LIBS,
112 EXE_FILES => ["bin/treescan"],
113 PM => {
114 'AIO.pm' => '$(INST_LIB)/IO/AIO.pm',
115 },
116 CONFIGURE_REQUIRES => { ExtUtils::MakeMaker => 6.52, Canary::Stability => 2001 },
117 PREREQ_PM => {
118 "common::sense" => 0,
119 },
36 clean => { FILES => "autoconf/config.h autoconf/config.log autoconf/config.status" }, 120 clean => { FILES => "config.h libeio/config.h libeio/config.log libeio/config.status" },
37}); 121});
38 122
39$mm->flush; 123$mm->flush;
40 124

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines