This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
779523f203d9c8cde328d4125527c6042e3da3d8
[perl5.git] / ext / DynaLoader / Makefile.PL
1 use strict;
2 use ExtUtils::MakeMaker;
3
4 my $is_mswin    = $^O eq 'MSWin32';
5 my $is_netware  = $^O eq 'NetWare';
6 my $is_vms      = $^O eq 'VMS';
7
8 WriteMakefile(
9     NAME => 'DynaLoader',
10     LINKTYPE    => 'static',
11     DEFINE      => '-DLIBC="$(LIBC)"',
12     SKIP        => [qw(dynamic dynamic_lib dynamic_bs)],
13     XSPROTOARG => '-noprototypes',              # XXX remove later?
14     VERSION_FROM => 'DynaLoader_pm.PL',
15     PL_FILES    => {'DynaLoader_pm.PL'=>'DynaLoader.pm'},
16     PM          => {'DynaLoader.pm' => '$(INST_LIBDIR)/DynaLoader.pm'},
17     depend      => {'DynaLoader$(OBJ_EXT)' => 'dlutils.c'},
18     clean       => {FILES => 'DynaLoader.c DynaLoader.xs DynaLoader.pm'},
19 );
20
21 sub MY::postamble {
22     my $test_xs;
23
24     if ($is_mswin || $is_netware || $is_vms) {
25         $test_xs = '';
26     } else {
27         $test_xs = <<'EOT';
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; \
33             do $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSUBPPARGS) $$i > /dev/null; \
34         done
35 EOT
36     }
37
38     return '
39 DynaLoader.xs: $(DLSRC)
40         $(RM_F) $@
41         $(CP) $? $@
42 ' . $test_xs;
43 }
44
45 sub MY::static {
46     my $object;
47     if ($is_mswin || $is_netware) {
48         $object = '$(PERL_SRC)\\$(OBJECT)';
49     } elsif ($is_vms) {
50         $object = '$(PERL_SRC)$(OBJECT)';
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
60
61 static :: $object
62 ";
63 }