Commit | Line | Data |
28161c97 |
1 | use strict; |
42793c05 |
2 | use ExtUtils::MakeMaker; |
3 | |
28161c97 |
4 | my $is_mswin = $^O eq 'MSWin32'; |
5 | my $is_netware = $^O eq 'NetWare'; |
6 | my $is_vms = $^O eq 'VMS'; |
7 | |
42793c05 |
8 | WriteMakefile( |
d2cedf73 |
9 | NAME => 'DynaLoader', |
4ad3186e |
10 | LINKTYPE => 'static', |
ec29429e |
11 | DEFINE => '-DLIBC="$(LIBC)"', |
4ad3186e |
12 | SKIP => [qw(dynamic dynamic_lib dynamic_bs)], |
13 | XSPROTOARG => '-noprototypes', # XXX remove later? |
bfab39a2 |
14 | VERSION_FROM => 'DynaLoader_pm.PL', |
c440907b |
15 | PL_FILES => {'DynaLoader_pm.PL'=>'DynaLoader.pm'}, |
16 | PM => {'DynaLoader.pm' => '$(INST_LIBDIR)/DynaLoader.pm'}, |
25785bc1 |
17 | depend => {'DynaLoader$(OBJ_EXT)' => 'dlutils.c'}, |
c440907b |
18 | clean => {FILES => 'DynaLoader.c DynaLoader.xs DynaLoader.pm'}, |
42793c05 |
19 | ); |
20 | |
42793c05 |
21 | sub MY::postamble { |
28161c97 |
22 | my $test_xs; |
23 | |
24 | if ($is_mswin || $is_netware || $is_vms) { |
25 | $test_xs = ''; |
26 | } else { |
27 | $test_xs = <<'EOT'; |
42793c05 |
28 | |
29 | # Perform very simple tests just to check for major gaffs. |
30 | # We can\'t do much more for platforms we are not executing on. |
31 | test-xs: |
32 | for i in dl_*xs; \ |
005c1a0e |
33 | do $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSUBPPARGS) $$i > /dev/null; \ |
42793c05 |
34 | done |
28161c97 |
35 | EOT |
36 | } |
37 | |
38 | return ' |
39 | DynaLoader.xs: $(DLSRC) |
40 | $(RM_F) $@ |
41 | $(CP) $? $@ |
42 | ' . $test_xs; |
42793c05 |
43 | } |
44 | |
908fcb8b |
45 | sub MY::static { |
28161c97 |
46 | my $object; |
47 | if ($is_mswin || $is_netware) { |
48 | $object = '$(PERL_SRC)\\$(OBJECT)'; |
49 | } elsif ($is_vms) { |
b49e011f |
50 | $object = '$(PERL_SRC)$(OBJECT)'; |
28161c97 |
51 | } else { |
52 | $object = '$(PERL_SRC)/$(OBJECT)'; |
53 | } |
54 | |
55 | |
56 | return " |
57 | $object : \$(FIRST_MAKEFILE) \$(OBJECT) |
58 | \$(RM_RF) $object |
59 | \$(CP) \$(OBJECT) $object |
5836a66f |
60 | |
28161c97 |
61 | static :: $object |
62 | "; |
908fcb8b |
63 | } |