ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Makefile.PL
Revision: 1.19
Committed: Sun Jun 7 22:37:54 2009 UTC (14 years, 11 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-3_261, rel-3_26, rel-3_25, rel-3_22, rel-3_23, rel-3_21
Changes since 1.18: +1 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.16 use v5.8.8;
2    
3 root 1.1 use ExtUtils::MakeMaker;
4    
5     use Config;
6    
7 root 1.9 if ($^O =~ /win32/i or $^O =~ /mswin/) {
8    
9     # configuration on windows is hardcoded - as always
10    
11 root 1.13 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 root 1.14 $LIBS = ["-L/gtk/lib -lpthreadVC2"];
16 root 1.9
17     } else {
18    
19 root 1.13 $INC = "";
20 root 1.17 $LIBS = ['-lpthread', '-lpthreads', '-lpthreadVC2', ''];
21 root 1.13
22 root 1.9 if ($^O =~ /freebsd/i) {
23     print <<EOF;
24 root 1.5
25 root 1.8 This package seems to deadlock or otherwise misbehave under FreeBSD. As
26     documentation on FreeBSD threading is sorely lacking and confusing, I'll
27     just call FreeBSD broken with regards to threading.
28    
29     If you find out whats wrong, please tell me.
30    
31     Some people had luck with using OPTIMIZE=-O instead of -O2, so you might
32     want to try that.
33 root 1.5
34     EOF
35 root 1.9 }
36    
37 root 1.15 {
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 root 1.16 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
53 root 1.15 and exit $? >> 8;
54     }
55 root 1.5 }
56    
57 root 1.10 if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
58     print <<EOF;
59    
60     ***
61     *** WARNING:
62     ***
63     *** Your perl uses it's own memory allocator (-Dusemymalloc=y),
64     *** which is known not to be threadsafe on GNU/Linux and probably
65     *** other platforms (even when not used concurrently, it trashes
66     *** the data structures of the system malloc running concurrently),
67     *** for perls up to 5.8.8 and possibly later versions.
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     ***
73    
74     EOF
75     }
76    
77 root 1.1 my $mm = MM->new({
78     dist => {
79     PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
80     COMPRESS => 'gzip -9v',
81     SUFFIX => '.gz',
82     },
83 root 1.15 depend => {
84 root 1.16 "AIO.c" => "libeio/eio.h libeio/xthread.h libeio/eio.c libeio/config.h",
85 root 1.15 },
86 root 1.1 NAME => "IO::AIO",
87     VERSION_FROM => "AIO.pm",
88 root 1.13 INC => $INC,
89     LIBS => $LIBS,
90 root 1.19 EXE_FILES => ["bin/treescan"],
91 root 1.11 PM => {
92 root 1.12 'AIO.pm' => '$(INST_LIBDIR)/AIO.pm',
93 root 1.11 },
94 root 1.15 clean => { FILES => "libeio/config.h libeio/config.log libeio/config.status" },
95 root 1.1 });
96    
97     $mm->flush;
98