Commit | Line | Data |
0f1612a7 |
1 | # Module makefile for threads (using ExtUtils::MakeMaker) |
2 | |
3 | require 5.008; |
4 | |
5 | use strict; |
6 | use warnings; |
7 | |
fc6e75a2 |
8 | use ExtUtils::MakeMaker; |
0f1612a7 |
9 | |
10 | |
c0003851 |
11 | # Used to check for a 'C' compiler |
12 | sub 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 | |
29 | sub 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 | |
0f1612a7 |
47 | # Build options for different environments |
48 | my @conditional_params; |
49 | if (grep { $_ eq 'PERL_CORE=1' } @ARGV) { |
50 | # Core |
51 | push(@conditional_params, 'MAN3PODS' => {}, |
52 | 'NORECURS' => 1); |
53 | } else { |
54 | # CPAN |
c0003851 |
55 | |
56 | # Verify that a 'C' compiler is available |
57 | if (! have_cc()) { |
58 | die("No 'C' compiler found to build 'threads'\n"); |
59 | } |
60 | |
d2c25dc7 |
61 | push(@conditional_params, 'DEFINE' => '-DHAS_PPPORT_H', |
62 | 'PREREQ_PM' => { |
63 | 'strict' => 0, |
64 | 'warnings' => 0, |
65 | 'overload' => 0, |
66 | 'Config' => 0, |
67 | 'Carp' => 0, |
68 | 'XSLoader' => 0, |
69 | |
70 | 'ExtUtils::testlib' => 0, |
71 | 'Hash::Util' => 0, |
72 | 'IO::File' => 0, |
73 | }); |
0f1612a7 |
74 | } |
75 | |
7f595b02 |
76 | |
77 | # Create Makefile |
78 | WriteMakefile( |
79 | 'NAME' => 'threads', |
80 | 'AUTHOR' => 'Artur Bergman, Jerry D. Hedden <jdhedden AT cpan DOT org>', |
81 | 'VERSION_FROM' => 'threads.pm', |
82 | 'ABSTRACT_FROM' => 'threads.pm', |
83 | 'PM' => { |
84 | 'threads.pm' => '$(INST_LIBDIR)/threads.pm', |
0f1612a7 |
85 | }, |
86 | 'INSTALLDIRS' => 'perl', |
87 | |
88 | ((ExtUtils::MakeMaker->VERSION() lt '6.25') ? |
89 | ('PL_FILES' => { }) : ()), |
90 | ((ExtUtils::MakeMaker->VERSION() gt '6.30') ? |
91 | ('LICENSE' => 'perl') : ()), |
92 | |
93 | @conditional_params |
fc6e75a2 |
94 | ); |
95 | |
0f1612a7 |
96 | # EOF |