Rename ext/threads/shared to ext/threads-shared
[p5sagit/p5-mst-13.2.git] / ext / threads-shared / Makefile.PL
CommitLineData
b30ea4af 1# Module makefile for threads::shared (using ExtUtils::MakeMaker)
2
3require 5.008;
4
5use strict;
6use warnings;
7
b050c948 8use ExtUtils::MakeMaker;
b050c948 9
b30ea4af 10
11# Used to check for a 'C' compiler
12sub check_cc
13{
14 require File::Spec;
15
16 my $cmd = $_[0];
17 if (-x $cmd or MM->maybe_command($cmd)) {
18 return (1); # CC command found
19 }
20 for my $dir (File::Spec->path(), '.') {
21 my $abs = File::Spec->catfile($dir, $cmd);
22 if (-x $abs or MM->maybe_command($abs)) {
23 return (1); # CC command found
24 }
25 }
26 return;
27}
28
29sub have_cc
30{
31 eval { require Config_m; }; # ExtUtils::FakeConfig (+ ActivePerl)
32 if ($@) {
33 eval { require Config; }; # Everyone else
34 }
35 my @chunks = split(/ /, $Config::Config{cc});
36 # $Config{cc} may contain args; try to find out the program part
37 while (@chunks) {
38 if (check_cc("@chunks")) {
39 return (1); # CC command found
40 }
41 pop(@chunks);
42 }
43 return;
44}
45
46
47# Build options for different environments
48my @conditional_params;
49if (grep { $_ eq 'PERL_CORE=1' } @ARGV) {
50 # Core
51 push(@conditional_params, 'MAN3PODS' => {});
52
53} else {
54 # CPAN
55
56 # Verify that a 'C' compiler is available
57 if (! have_cc()) {
291f766e 58 die("OS unsupported: ERROR: No 'C' compiler found to build 'threads::shared'\n");
b30ea4af 59 }
60
3bc7ad01 61 push(@conditional_params, 'DEFINE' => '-DHAS_PPPORT_H',
62 'PREREQ_PM' => {
63 'strict' => 0,
64 'warnings' => 0,
3bc7ad01 65 'Config' => 0,
66 'Carp' => 0,
67 'XSLoader' => 0,
373098c0 68 'Scalar::Util' => 0,
2e58fc35 69 'threads' => 1.71,
3bc7ad01 70
71 'Test' => 0,
72 'Test::More' => 0,
73 'ExtUtils::testlib' => 0,
74 });
b30ea4af 75}
76
77
78# Create Makefile
b050c948 79WriteMakefile(
b30ea4af 80 'NAME' => 'threads::shared',
81 'AUTHOR' => 'Artur Bergman, Jerry D. Hedden <jdhedden AT cpan DOT org>',
82 'VERSION_FROM' => 'shared.pm',
83 'ABSTRACT_FROM' => 'shared.pm',
84 'PM' => {
85 'shared.pm' => '$(INST_LIBDIR)/shared.pm',
86 },
b30ea4af 87 'INSTALLDIRS' => 'perl',
88
89 ((ExtUtils::MakeMaker->VERSION() lt '6.25') ?
90 ('PL_FILES' => { }) : ()),
91 ((ExtUtils::MakeMaker->VERSION() gt '6.30') ?
92 ('LICENSE' => 'perl') : ()),
b050c948 93
b30ea4af 94 @conditional_params
b050c948 95);
b30ea4af 96
33d16ee7 97# Additional 'make' targets
98sub MY::postamble
99{
100 return <<'_EXTRAS_';
101fixfiles:
102 @dos2unix `cat MANIFEST`
103 @$(CHMOD) 644 `cat MANIFEST`
104 @$(CHMOD) 755 examples/*.pl
105
106ppport:
107 @( cd /tmp; perl -e 'use Devel::PPPort; Devel::PPPort::WriteFile("ppport.h");' )
108 @if ! cmp -s ppport.h /tmp/ppport.h; then \
109 ( tkdiff ppport.h /tmp/ppport.h & ); \
110 perl /tmp/ppport.h; \
111 fi
112_EXTRAS_
113}
114
b30ea4af 115# EOF