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.9 by root, Mon May 8 17:10:27 2006 UTC vs.
Revision 1.22 by root, Mon Nov 1 22:03:43 2010 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines