This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Initial check-in of perl compiler.
[perl5.git] / Makefile.PL
1 use ExtUtils::MakeMaker;
2 use Config;
3
4 WriteMakefile(
5     NAME        => "B",
6     VERSION     => "a2",
7     MAP_TARGET  => "bperl",
8     OBJECT      => "B.o ccop.o byterun.o",
9     depend      => {
10         "B.o"           => "B.c ccop.h bytecode.h byterun.h",
11         "ccop.o"        => "ccop.c ccop.h"
12     },
13     clean       => {
14         FILES           => "bperl byteperl btest btest.c *.o B.c *~"
15     }
16 );
17
18 sub MY::post_constants {
19     "\nLIBS = $Config{libs}\n"
20 }
21
22 sub MY::top_targets {
23     my $self = shift;
24     my $targets = $self->MM::top_targets();
25     $targets =~ s/^(all ::.*)$/$1 byteperl/m;
26     return <<'EOT' . $targets;
27 #
28 # byterun.h, byterun.c and Asmdata.pm are auto-generated. If any of the
29 # files are missing or if you change bytecode.pl (which is what generates
30 # them all) then you can "make regen_headers" to regenerate them.
31 #
32 regen_headers:
33         $(PERL) bytecode.pl
34         $(MV) Asmdata.pm B
35 #
36 # byteperl is *not* a standard perl+XSUB executable. It's a special
37 # program for running standalone bytecode executables. It isn't an XSUB
38 # at the moment because a standlone Perl program needs to set up curpad
39 # which is overwritten on exit from an XSUB.
40 #
41 byteperl: byteperl.o B.o ccop.o byterun.o
42         $(CC) -o byteperl byteperl.o B.o ccop.o byterun.o $(LDFLAGS) -L$(PERL_ARCHLIB)/CORE -lperl $(LIBS)
43 EOT
44 }