ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Makefile.PL
Revision: 1.23
Committed: Thu Jul 14 22:36:17 2011 UTC (12 years, 10 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.22: +5 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.21 use 5.008002;
2 root 1.16
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 root 1.23 open my $fh, ">libeio/config.h"
18     or die "libeio/config.h: $!";
19     print $fh <<EOF;
20     EOF
21    
22 root 1.9 } else {
23    
24 root 1.13 $INC = "";
25 root 1.17 $LIBS = ['-lpthread', '-lpthreads', '-lpthreadVC2', ''];
26 root 1.13
27 root 1.22 if ($^O =~ /bsd/i) {
28 root 1.9 print <<EOF;
29 root 1.5
30 root 1.22 If you have problems with deadlocks or crashes on your system,
31     make sure your perl has been linked with -lpthread (you might try
32     LD_PRELOAD=/path/to/libpthread.so as a workaround). Also, pthread support
33     under many BSDs is not the best - before reporting a bug in this module,
34     make sure it's not an OS bug.
35 root 1.5
36     EOF
37 root 1.9 }
38    
39 root 1.15 {
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 root 1.16 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
55 root 1.15 and exit $? >> 8;
56     }
57 root 1.5 }
58    
59 root 1.10 if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
60     print <<EOF;
61    
62     ***
63     *** WARNING:
64     ***
65     *** Your perl uses it's own memory allocator (-Dusemymalloc=y),
66     *** which is known not to be threadsafe on GNU/Linux and probably
67     *** other platforms (even when not used concurrently, it trashes
68     *** the data structures of the system malloc running concurrently),
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     ***
75    
76     EOF
77     }
78    
79 root 1.1 my $mm = MM->new({
80     dist => {
81     PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
82     COMPRESS => 'gzip -9v',
83     SUFFIX => '.gz',
84     },
85 root 1.15 depend => {
86 root 1.16 "AIO.c" => "libeio/eio.h libeio/xthread.h libeio/eio.c libeio/config.h",
87 root 1.15 },
88 root 1.1 NAME => "IO::AIO",
89     VERSION_FROM => "AIO.pm",
90 root 1.13 INC => $INC,
91     LIBS => $LIBS,
92 root 1.19 EXE_FILES => ["bin/treescan"],
93 root 1.11 PM => {
94 root 1.12 'AIO.pm' => '$(INST_LIBDIR)/AIO.pm',
95 root 1.11 },
96 root 1.20 PREREQ_PM => {
97     "common::sense" => 0,
98     },
99 root 1.15 clean => { FILES => "libeio/config.h libeio/config.log libeio/config.status" },
100 root 1.1 });
101    
102     $mm->flush;
103