ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Makefile.PL
Revision: 1.37
Committed: Tue Aug 14 14:03:15 2018 UTC (5 years, 9 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-4_54
Changes since 1.36: +10 -17 lines
Log Message:
4.54

File Contents

# User Rev Content
1 root 1.34 use Canary::Stability IO::AIO => 1, 5.008002;
2 root 1.16
3 root 1.1 use ExtUtils::MakeMaker;
4    
5     use Config;
6    
7 root 1.24 if ($^O eq "MSWin32") {
8     # configuration on windows is hardcoded - as always
9    
10     print STDERR <<EOF;
11 root 1.9
12 root 1.24 ***
13     *** Your platform is not standards compliant. To get this module working, you need to
14 root 1.37 *** download and install win32 pthread (http://sourceware.org/pthreads-win32/).
15 root 1.24 ***
16 root 1.9
17 root 1.24 EOF
18 root 1.13
19 root 1.36 if(0){
20 root 1.37 if ($Config{cc} =~ /(?:^|\\|\/)gcc(?:|.*\.exe)$/) {
21     $INC = "$ENV{INC} -I/gtk/include";
22     $LIBS = ["$ENV{LIBS} -L/gtk/lib -lpthreadGC2"];
23     } else {
24     $INC = "$ENV{INC} -I/sdk/include -I/vc98/include -I/gtk/include";
25     $LIBS = ["$ENV{LIBS} -L/gtk/lib -lpthreadVC2"];
26     }
27 root 1.30 }
28 root 1.9
29 root 1.35 open my $fh, ">config.h"
30     or die "config.h: $!";
31 root 1.23 print $fh <<EOF;
32     EOF
33    
34 root 1.9 } else {
35    
36 root 1.13 $INC = "";
37 root 1.24 $LIBS = ['-lpthread', '-lpthreads', ''];
38 root 1.13
39 root 1.22 if ($^O =~ /bsd/i) {
40 root 1.9 print <<EOF;
41 root 1.5
42 root 1.22 If you have problems with deadlocks or crashes on your system,
43     make sure your perl has been linked with -lpthread (you might try
44     LD_PRELOAD=/path/to/libpthread.so as a workaround). Also, pthread support
45     under many BSDs is not the best - before reporting a bug in this module,
46     make sure it's not an OS bug.
47 root 1.5
48     EOF
49 root 1.9 }
50    
51 root 1.15 {
52     local %ENV = %ENV;
53    
54     while (my ($k, $v) = each %Config) {
55     $ENV{$k} = $v;
56     }
57    
58     $ENV{MAKE} = $Config{make};
59     $ENV{SHELL} = $Config{sh};
60     $ENV{CC} = $Config{cc};
61 root 1.35 $ENV{CPPFLAGS} = "$Config{cppflags} -I$Config{archlibexp}/CORE";
62 root 1.15 $ENV{CFLAGS} = $Config{ccflags};
63 root 1.37 $ENV{LDFLAGS} = "$Config{ldflags} $Config{ccdlflags}";
64 root 1.15 $ENV{LINKER} = $Config{ld}; # nonstandard
65 root 1.37 $ENV{LIBS} = "-L$Config{archlibexp}/CORE -L$Config{privlibexp} -lperl $Config{libs}";
66 root 1.15
67 root 1.16 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
68 root 1.15 and exit $? >> 8;
69     }
70 root 1.5 }
71    
72 root 1.10 if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
73     print <<EOF;
74    
75     ***
76     *** WARNING:
77     ***
78 root 1.25 *** Your perl uses its own memory allocator (-Dusemymalloc=y),
79 root 1.10 *** which is known not to be threadsafe on GNU/Linux and probably
80     *** other platforms (even when not used concurrently, it trashes
81     *** the data structures of the system malloc running concurrently),
82     *** for perls up to 5.8.8 and possibly later versions.
83     ***
84     *** If you are unsure wether your perl has been fixed, your system
85     *** is safe for other reasons, or you experience spurious segfaults,
86     *** please compile your perl with -Dusemymalloc=n.
87     ***
88    
89     EOF
90     }
91    
92 root 1.1 my $mm = MM->new({
93     dist => {
94     PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
95     COMPRESS => 'gzip -9v',
96     SUFFIX => '.gz',
97 root 1.26 },
98 root 1.15 depend => {
99 root 1.35 "AIO.c" => "schmorp.h libeio/eio.h libeio/xthread.h libeio/etp.c libeio/eio.c config.h",
100 root 1.15 },
101 root 1.1 NAME => "IO::AIO",
102     VERSION_FROM => "AIO.pm",
103 root 1.13 INC => $INC,
104     LIBS => $LIBS,
105 root 1.19 EXE_FILES => ["bin/treescan"],
106 root 1.11 PM => {
107 root 1.33 'AIO.pm' => '$(INST_LIB)/IO/AIO.pm',
108 root 1.26 },
109 root 1.34 CONFIGURE_REQUIRES => { ExtUtils::MakeMaker => 6.52, Canary::Stability => 2001 },
110 root 1.20 PREREQ_PM => {
111     "common::sense" => 0,
112     },
113 root 1.35 clean => { FILES => "config.h libeio/config.h libeio/config.log libeio/config.status" },
114 root 1.1 });
115    
116     $mm->flush;
117