ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/Makefile.PL
Revision: 1.27
Committed: Wed Aug 22 22:28:03 2012 UTC (11 years, 8 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-4_17, rel-4_18
Changes since 1.26: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 use 5.008002;
2
3 use ExtUtils::MakeMaker;
4
5 use Config;
6
7 if ($^O eq "MSWin32") {
8 # configuration on windows is hardcoded - as always
9
10 print STDERR <<EOF;
11
12 ***
13 *** Your platform is not standards compliant. To get this module working, you need to
14 *** download and install win32 pthread (http://sourceware.org/pthreads-win32/)
15 *** in /gtk/{lib,include}
16 *** also, the windows SDK is expected to be installed in /sdk
17 *** and visual C is expected to be installed in /vc98
18 ***
19 *** Akternatively, set the INC and LIBS environment variables
20 *** accordingly before running Makeifle.PL, or you can
21 *** pass INC and LIBS arguments to Makefile.PL itself.
22 ***
23
24 EOF
25
26 $INC = "$ENV{INC} -I/sdk/include -I/vc98/include -I/gtk/include";
27 $LIBS = ["$ENV{LIBS} -L/gtk/lib -lpthreadVC2"];
28
29 open my $fh, ">libeio/config.h"
30 or die "libeio/config.h: $!";
31 print $fh <<EOF;
32 EOF
33
34 } else {
35
36 $INC = "";
37 $LIBS = ['-lpthread', '-lpthreads', ''];
38
39 if ($^O =~ /bsd/i) {
40 print <<EOF;
41
42 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
48 EOF
49 }
50
51 {
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 $ENV{CPPFLAGS} = $Config{cppflags};
62 $ENV{CFLAGS} = $Config{ccflags};
63 $ENV{LDFLAGS} = $Config{ldflags};
64 $ENV{LINKER} = $Config{ld}; # nonstandard
65
66 system $ENV{SHELL}, -c => "./configure --prefix \Q$Config{prefixexp}\E"
67 and exit $? >> 8;
68 }
69 }
70
71 if ($^O =~ /linux/ && $Config{usemymalloc} eq "y") {
72 print <<EOF;
73
74 ***
75 *** WARNING:
76 ***
77 *** Your perl uses its own memory allocator (-Dusemymalloc=y),
78 *** which is known not to be threadsafe on GNU/Linux and probably
79 *** other platforms (even when not used concurrently, it trashes
80 *** the data structures of the system malloc running concurrently),
81 *** for perls up to 5.8.8 and possibly later versions.
82 ***
83 *** If you are unsure wether your perl has been fixed, your system
84 *** is safe for other reasons, or you experience spurious segfaults,
85 *** please compile your perl with -Dusemymalloc=n.
86 ***
87
88 EOF
89 }
90
91 my $mm = MM->new({
92 dist => {
93 PREOP => 'pod2text AIO.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
94 COMPRESS => 'gzip -9v',
95 SUFFIX => '.gz',
96 },
97 depend => {
98 "AIO.c" => "schmorp.h libeio/eio.h libeio/xthread.h libeio/eio.c libeio/config.h",
99 },
100 NAME => "IO::AIO",
101 VERSION_FROM => "AIO.pm",
102 INC => $INC,
103 LIBS => $LIBS,
104 EXE_FILES => ["bin/treescan"],
105 PM => {
106 'AIO.pm' => '$(INST_LIBDIR)/AIO.pm',
107 },
108 PREREQ_PM => {
109 "common::sense" => 0,
110 },
111 clean => { FILES => "libeio/config.h libeio/config.log libeio/config.status" },
112 });
113
114 $mm->flush;
115