27c371f82a83107ab5d8d15a0c2e616dc58f25ba
[perl.git] / utils / Makefile.PL
1 #!./miniperl -w
2 use strict;
3 use Config;
4
5 if (@ARGV) {
6     my $dir = shift;
7     chdir $dir or die "Can't chdir '$dir': $!";
8 }
9
10 # Note, the generated utils/Makefile isn't used by VMS yet.
11 # The next step on cleaning this is up is probably to work to reduce the size
12 # of the "problem" in both this file and vms/descrip_mms.template by
13 # attempting to move the work from them to the extension directories and
14 # ExtUtils::MakeMaker.
15
16 require 'regen/regen_lib.pl';
17
18 my $target = 'utils/Makefile';
19 print "Extracting $target (with variable substitutions)\n";
20 my $fh = open_new($target, undef, {by => $0}, 1);
21
22 # These use the Cwd extension.  For statically-built perls, we
23 # need perl, not just miniperl.
24 my $perl = defined $Config{usedl} ? '../miniperl' : '../perl';
25
26 print $fh <<"EOT";
27 PERL = $perl
28 REALPERL = ../perl
29 RUN =  # Used mainly cross-compilation setups.
30
31 EOT
32
33 print $fh <<'EOT';
34
35 # Files to be built with variable substitution after miniperl is
36 # available.  Dependencies handled manually below (for now).
37
38 pl = c2ph.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL encguess.PL xsubpp.PL pod2html.PL zipdetails.PL
39 plextract = c2ph corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs encguess xsubpp pod2html zipdetails
40 plextractexe = ./c2ph ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./encguess ./xsubpp ./pod2html ./zipdetails
41
42 all: $(plextract) 
43
44 $(plextract):
45         $(RUN) $(PERL) -I../lib $@.PL
46
47 c2ph:           c2ph.PL ../config.sh
48
49 cpan:           cpan.PL ../config.sh
50
51 corelist:       corelist.PL ../config.sh
52
53 h2ph:           h2ph.PL ../config.sh
54
55 h2xs:           h2xs.PL ../config.sh
56
57 instmodsh:      instmodsh.PL ../config.sh
58
59 json_pp:        json_pp.PL ../config.sh
60
61 perlbug:        perlbug.PL ../config.sh ../patchlevel.h
62
63 perldoc:        perldoc.PL ../config.sh
64
65 perlivp:        perlivp.PL ../config.sh
66
67 prove:          prove.PL ../config.sh
68
69 ptar:           ptar.PL ../config.sh
70
71 ptardiff:       ptardiff.PL ../config.sh
72
73 ptargrep:       ptargrep.PL ../config.sh
74
75 pl2pm:          pl2pm.PL ../config.sh
76
77 shasum:         shasum.PL ../config.sh
78
79 splain:         splain.PL ../config.sh ../lib/diagnostics.pm
80
81 libnetcfg:      libnetcfg.PL ../config.sh
82
83 piconv:         piconv.PL ../config.sh
84
85 enc2xs:         enc2xs.PL ../config.sh
86
87 enc2xs:         encguess.PL ../config.sh
88
89 xsubpp:         xsubpp.PL ../config.sh
90
91 zipdetails:     zipdetails.PL ../config.sh
92
93 pod2html:       pod2html.PL ../config.sh ../ext/Pod-Html/bin/pod2html
94
95 clean:
96
97 realclean:
98         rm -rf $(plextract) pstruct $(plextractexe)
99         rm -f ../t/_h2ph_pre.ph
100
101 clobber:        realclean
102
103 distclean:      clobber
104
105 veryclean:      distclean
106         -rm -f *~ *.org
107 EOT
108
109 read_only_bottom_close_and_rename($fh);