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.8 by root, Wed Feb 1 23:43:17 2006 UTC vs.
Revision 1.23 by root, Thu Jul 14 22:36:17 2011 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines