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.6 by root, Fri Aug 19 01:07:27 2005 UTC vs.
Revision 1.20 by root, Tue Jul 14 00:13:36 2009 UTC

1use v5.8.8;
2
1use ExtUtils::MakeMaker; 3use ExtUtils::MakeMaker;
2 4
3use Config; 5use Config;
4 6
5require "autoconf.pm"; 7if ($^O =~ /win32/i or $^O =~ /mswin/) {
6 8
9 # configuration on windows is hardcoded - as always
10
11 warn "your platform is not standards-compliant, you have to port this module first\n";
12 warn "using some hardcoded config that will not work on your system\n";
13
14 $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";
15 $LIBS = ["-L/gtk/lib -lpthreadVC2"];
16
17} else {
18
19 $INC = "";
20 $LIBS = ['-lpthread', '-lpthreads', '-lpthreadVC2', ''];
21
7if ($^O =~ /freebsd/i) { 22 if ($^O =~ /freebsd/i) {
23 print <<EOF;
24
25This package seems to deadlock or otherwise misbehave under FreeBSD. As
26documentation on FreeBSD threading is sorely lacking and confusing, I'll
27just call FreeBSD broken with regards to threading.
28
29If you find out whats wrong, please tell me.
30
31Some people had luck with using OPTIMIZE=-O instead of -O2, so you might
32want to try that.
33
34EOF
35 }
36
37 {
38 local %ENV = %ENV;
39
40 while (my ($k, $v) = each %Config) {
41 $ENV{$k} = $v;
42 }
43
44 $ENV{MAKE} = $Config{make};
45 $ENV{SHELL} = $Config{sh};
46 $ENV{CC} = $Config{cc};
47 $ENV{CPPFLAGS} = $Config{cppflags};
48 $ENV{CFLAGS} = $Config{ccflags};
49 $ENV{LDFLAGS} = $Config{ldflags};
50 $ENV{LINKER} = $Config{ld}; # nonstandard
51
52 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
53 and exit $? >> 8;
54 }
55}
56
57if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
8 print <<EOF; 58 print <<EOF;
9 59
10This package seems to deadlock under FreeBSD. As documentation on FreeBSD 60***
11threading is sorely lacking and confusing, I'll just call FreeBSD broken 61*** WARNING:
12with regards to threading. 62***
13 63*** Your perl uses it's own memory allocator (-Dusemymalloc=y),
14If you get it to work, tell me how (maybe you need to specify magical link 64*** which is known not to be threadsafe on GNU/Linux and probably
15flags despite man pthread telling me otherwise, maybe yo need special 65*** other platforms (even when not used concurrently, it trashes
16library, maybe you need magical preprocessor symbols, maybe you need to 66*** the data structures of the system malloc running concurrently),
17recompile or re-link perl with threads enabled (a bad idea) - I have no 67*** for perls up to 5.8.8 and possibly later versions.
18idea, and I no longer care). 68***
69*** If you are unsure wether your perl has been fixed, your system
70*** is safe for other reasons, or you experience spurious segfaults,
71*** please compile your perl with -Dusemymalloc=n.
72***
19 73
20EOF 74EOF
21} 75}
22
23autoconf::run_script()
24 and die "\nconfigure failed, check it's output above and autoconf/config.log\n\n";
25 76
26my $mm = MM->new({ 77my $mm = MM->new({
27 dist => { 78 dist => {
28 PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', 79 PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
29 COMPRESS => 'gzip -9v', 80 COMPRESS => 'gzip -9v',
30 SUFFIX => '.gz', 81 SUFFIX => '.gz',
31 }, 82 },
83 depend => {
84 "AIO.c" => "libeio/eio.h libeio/xthread.h libeio/eio.c libeio/config.h",
85 },
32 NAME => "IO::AIO", 86 NAME => "IO::AIO",
33 VERSION_FROM => "AIO.pm", 87 VERSION_FROM => "AIO.pm",
34 LIBS => ['-lpthread -lrt', '-lpthread', '-lpthreads', ''], 88 INC => $INC,
89 LIBS => $LIBS,
90 EXE_FILES => ["bin/treescan"],
91 PM => {
92 'AIO.pm' => '$(INST_LIBDIR)/AIO.pm',
93 },
94 PREREQ_PM => {
95 "common::sense" => 0,
96 },
35 clean => { FILES => "autoconf/config.h autoconf/config.log autoconf/config.status" }, 97 clean => { FILES => "libeio/config.h libeio/config.log libeio/config.status" },
36}); 98});
37 99
38$mm->flush; 100$mm->flush;
39 101

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines