summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST3
-rwxr-xr-xMakefile.SH7
-rwxr-xr-xPorting/Maintainers.pl1
-rw-r--r--ext/ExtUtils-Miniperl/Makefile.PL40
-rw-r--r--ext/ExtUtils-Miniperl/Miniperl_pm.PL (renamed from minimod.pl)7
-rw-r--r--vms/descrip_mms.template9
-rw-r--r--win32/Makefile15
-rw-r--r--win32/makefile.mk13
8 files changed, 59 insertions, 36 deletions
diff --git a/MANIFEST b/MANIFEST
index 4ed41e3b19..26bd63940c 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3567,6 +3567,8 @@ ext/Errno/ChangeLog Errno changes
ext/Errno/Errno_pm.PL Errno perl module create script
ext/Errno/Makefile.PL Errno extension makefile writer
ext/Errno/t/Errno.t See if Errno works
+ext/ExtUtils-Miniperl/Makefile.PL Runs Miniperl_pm.PL
+ext/ExtUtils-Miniperl/Miniperl_pm.PL Writes ext/ExtUtils-Miniperl/Miniperl.pm
ext/Fcntl/Fcntl.pm Fcntl extension Perl module
ext/Fcntl/Fcntl.xs Fcntl extension external subroutines
ext/Fcntl/Makefile.PL Fcntl extension makefile writer
@@ -4336,7 +4338,6 @@ mg.h Magic header
mg_names.c Generated magic names used by dump.c
mg_raw.h Generated magic data used by generate_uudmap.c
mg_vtable.h Generated magic vtable data
-minimod.pl Writes lib/ExtUtils/Miniperl.pm
miniperlmain.c Basic perl w/o dynamic loading or extensions
mkppport A script that distributes ppport.h
mkppport.lst List of extensions that need a ppport.h
diff --git a/Makefile.SH b/Makefile.SH
index 2d5006d6dc..9ef70bd5aa 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -453,7 +453,7 @@ shextract=`SH_to_target $SH`
## In the following dollars and backticks do not need the extra backslash.
$spitshell >>$Makefile <<!GROK!THIS!
-private = preplibrary \$(CONFIGPM) \$(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h lib/buildcustomize.pl
+private = preplibrary \$(CONFIGPM) \$(CONFIGPOD) git_version.h lib/buildcustomize.pl
# Files to be built with variable substitution before miniperl
# is available.
@@ -684,7 +684,7 @@ generate_uudmap$(OBJ_EXT): mg_raw.h
generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
$(CC) -o generate_uudmap$(EXE_EXT) $(LDFLAGS) generate_uudmap$(OBJ_EXT) $(libs)
-perlmain.c: $(MINIPERL_EXE) lib/ExtUtils/Miniperl.pm
+perlmain.c: $(MINIPERL_EXE) ext/ExtUtils-Miniperl/pm_to_blib
$(MINIPERL) -Ilib -MExtUtils::Miniperl -e 'writemain(@ARGV)' DynaLoader $(static_ext) > perlmain.c
# The file ext.libs is a list of libraries that must be linked in
@@ -978,9 +978,6 @@ $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
$(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
$(MINIPERL) configpm
-lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
- $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm
-
unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 70556c9420..959606bb41 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -2030,6 +2030,7 @@ use File::Glob qw(:case);
'MAINTAINER' => 'p5p',
'FILES' => q[
ext/arybase/
+ ext/ExtUtils-Miniperl/
ext/XS-APItest/
lib/CORE.pod
lib/Config.t
diff --git a/ext/ExtUtils-Miniperl/Makefile.PL b/ext/ExtUtils-Miniperl/Makefile.PL
new file mode 100644
index 0000000000..16c3ecb42e
--- /dev/null
+++ b/ext/ExtUtils-Miniperl/Makefile.PL
@@ -0,0 +1,40 @@
+#!perl -w
+
+# Blatantly copied from ext/Pod-Functions/Makefile.PL
+# If we think we want a third copy, then it's time to find a better way to do
+# this. (Note, we have no ABSTRACT_FROM here)
+# But for now, this replaces a bunch of platform specific special case code
+# in the Makefiles for *nix, Win32 and VMS with one unified implementation.
+# And in Perl, rather than 3+ different languages.
+
+use strict;
+use ExtUtils::MakeMaker;
+use File::Spec::Functions;
+
+WriteMakefile(NAME => 'ExtUtils::Miniperl',
+ VERSION_FROM => 'Miniperl_pm.PL',
+ LICENSE => 'perl',
+ PREREQ_PM => {},
+ AUTHOR => 'Perl 5 Porters <perlbug@perl.org>',
+ INSTALLDIRS => 'perl',
+ PL_FILES => {}, # Stop EU::MM defaulting this to run our PL
+ PM => {'Miniperl.pm' => '$(INST_LIBDIR)/Miniperl.pm'},
+ clean => {FILES => 'Miniperl.pm'},
+ );
+
+# There doesn't seem to be any way to get ExtUtils::MakeMaker to add a
+# dependency on another file (or target), and as it's using :: rules, not :
+# rules, then we can't simply add a one line dependency. So we need to provide
+# the entire thing. Fortunately, the same code in MM_Unix.pm is actually used
+# for all platforms, so this code below should also be portable:
+
+sub MY::postamble {
+ my $main = catfile(updir, updir, 'miniperlmain.c');
+ return <<"EOT";
+all :: Miniperl.pm
+ \$(NOECHO) \$(NOOP)
+
+Miniperl.pm :: Miniperl_pm.PL $main
+ \$(PERLRUN) Miniperl_pm.PL $main
+EOT
+}
diff --git a/minimod.pl b/ext/ExtUtils-Miniperl/Miniperl_pm.PL
index a59b7f202b..a7de280dc0 100644
--- a/minimod.pl
+++ b/ext/ExtUtils-Miniperl/Miniperl_pm.PL
@@ -11,10 +11,11 @@
#
# Version 1.0, Feb 2nd 1995 by Andreas Koenig
-BEGIN { unshift @INC, "lib" }
-
use strict;
+open STDOUT, '>Miniperl.pm'
+ or die "Can't open Miniperl.pm: $!";
+
print <<'END';
# This File keeps the contents of miniperlmain.c.
#
@@ -33,7 +34,7 @@ require Exporter;
$head= <<'EOF!HEAD';
END
-open MINI, "miniperlmain.c";
+open MINI, shift;
while (<MINI>) {
last if /Do not delete this line--writemain depends on it/;
print;
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index de57563662..73376b2dba 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -282,7 +282,7 @@ unidatadirs = lib/unicore/To lib/unicore/lib
# Modules which must be installed before we can build extensions
LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl
-utils1 = [.utils]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com
+utils1 = [.utils]perldoc.com [.utils]c2ph.com [.utils]h2ph.com
utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]json_pp.com
utils3 = [.utils]perlivp.com [.lib]splain.com [.utils]pl2pm.com [.utils]xsubpp.com [.utils]pod2html.com [.utils]instmodsh.com
utils4 = [.utils]enc2xs.com [.utils]piconv.com [.utils]cpan.com [.utils]prove.com [.utils]ptar.com [.utils]ptardiff.com [.utils]shasum.com
@@ -364,7 +364,7 @@ $(DBG)libperlmini$(OLB) : $(mini_obj)
@ If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)
Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)
-perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.lib.ExtUtils]Miniperl.pm
+perlmain.c : miniperlmain.c $(MINIPERL_EXE) nonxsext
$(MINIPERL) -"MExtUtils::Miniperl" -e "writemain(@ARGV)" "$(EXT)" > perlmain.c
.ifdef __DEBUG__
@@ -451,9 +451,6 @@ nonxsext : $(LIBPREREQ) preplibrary $(MINIPERL_EXE) [.pod]perlfunc.pod
[.utils]perldoc.com : [.utils]perldoc.PL $(ARCHDIR)Config.pm
$(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
-[.lib.ExtUtils]Miniperl.pm : Minimod.PL miniperlmain.c $(ARCHDIR)Config.pm
- $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE) >$(MMS$TARGET)
-
[.utils]perlivp.com : [.utils]perlivp.PL $(ARCHDIR)Config.pm
$(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
@@ -819,7 +816,6 @@ tidy : cleanlis
- If F$Search("$(ARCHDIR)Config.pm;-1").nes."" Then Purge/NoConfirm/Log $(ARCHDIR)Config.pm
- If F$Search("[.lib]Config_heavy.pl;-1").nes."" Then Purge/NoConfirm/Log [.lib]Config_heavy.pl
- If F$Search("$(ARCHDIR)Config_heavy.pl;-1").nes."" Then Purge/NoConfirm/Log $(ARCHDIR)Config_heavy.pl
- - If F$Search("[.lib.ExtUtils]Miniperl.pm").nes."" Then Purge/NoConfirm/Log [.lib.ExtUtils]Miniperl.pm
- If F$Search("[.lib.VMS]*.*;-1").nes."" Then Purge/NoConfirm/Log [.lib.VMS]*.*
- If F$Search("$(ARCHCORE)*.*").nes."" Then Purge/NoConfirm/Log $(ARCHCORE)*.*
- If F$Search("[.lib]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib]*.com
@@ -878,7 +874,6 @@ realclean : clean
- If F$Search("[.x2p]*.com").nes."" Then Delete/NoConfirm/Log [.x2p]*.com;*
- If F$Search("$(ARCHDIR)Config.pm").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config.pm;*
- If F$Search("$(ARCHDIR)Config_heavy.pl").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config_heavy.pl;*
- - If F$Search("[.lib.ExtUtils]Miniperl.pm").nes."" Then Delete/NoConfirm/Log [.lib.ExtUtils]Miniperl.pm;*
- If F$Search("[.utils]perldoc.com").nes."" Then Delete/NoConfirm/Log [.utils]perldoc.com;*
- If F$Search("[.utils]perlivp.com").nes."" Then Delete/NoConfirm/Log [.utils]perlivp.com;*
- If F$Search("[...]*$(E)").nes."" Then Delete/NoConfirm/Log [...]*$(E);*
diff --git a/win32/Makefile b/win32/Makefile
index 521db489ae..8968a67e49 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -550,7 +550,6 @@ WPERLEXE = ..\wperl.exe
PERLEXESTATIC = ..\perl-static.exe
GLOBEXE = ..\perlglob.exe
CONFIGPM = ..\lib\Config.pm ..\lib\Config_heavy.pl
-MINIMOD = ..\lib\ExtUtils\Miniperl.pm
X2P = ..\x2p\a2p.exe
GENUUDMAP = ..\generate_uudmap.exe
!IF "$(BUILD_STATIC)" == "define" || "$(ALL_STATIC)" == "define"
@@ -816,7 +815,7 @@ ICWD = -I..\dist\Cwd -I..\dist\Cwd\lib
# Top targets
#
-all : .\config.h ..\git_version.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) \
+all : .\config.h ..\git_version.h $(GLOBEXE) $(CONFIGPM) \
$(UNIDATAFILES) MakePPPort $(PERLEXE) $(X2P) Extensions_nonxs Extensions $(PERLSTATIC)
@echo Everything is up to date. '$(MAKE_BARE) test' to run test suite.
@@ -826,7 +825,7 @@ regnodes : ..\regnodes.h
..\regexec$(o) : ..\regnodes.h ..\regcharclass.h
-reonly : regnodes .\config.h ..\git_version.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) \
+reonly : regnodes .\config.h ..\git_version.h $(GLOBEXE) $(CONFIGPM) \
$(UNIDATAFILES) $(PERLEXE) $(X2P) Extensions_reonly
@echo Perl and 're' are up to date.
@@ -943,7 +942,7 @@ regen_config_h:
-$(MINIPERL) -I..\lib config_h.PL
rename config.h $(CFGH_TMPL)
-$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
+$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL
$(MINIPERL) -I..\lib ..\configpm --chdir=..
if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
$(XCOPY) ..\*.h $(COREDIR)\*.*
@@ -1008,11 +1007,6 @@ $(PERLSTATICLIB): Extensions_static
$(PERLEXE_RES): perlexe.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
-$(MINIMOD) : $(MINIPERL) ..\minimod.pl
- cd ..
- miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
- cd win32
-
..\x2p\a2p$(o) : ..\x2p\a2p.c
$(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
@@ -1170,8 +1164,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile
distclean: realclean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
- $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD) \
- $(PERLEXESTATIC) $(PERLSTATICLIB)
+ $(PERLIMPLIB) ..\miniperl.lib $(PERLEXESTATIC) $(PERLSTATICLIB)
-del /f *.def *.map
-del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
-del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 6a9d6209f1..376eb5aa23 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -644,7 +644,6 @@ PERLEXESTATIC = ..\perl-static.exe
STATICDIR = .\static.tmp
GLOBEXE = ..\perlglob.exe
CONFIGPM = ..\lib\Config.pm ..\lib\Config_heavy.pl
-MINIMOD = ..\lib\ExtUtils\Miniperl.pm
X2P = ..\x2p\a2p.exe
GENUUDMAP = ..\generate_uudmap.exe
.IF "$(BUILD_STATIC)" == "define" || "$(ALL_STATIC)" == "define"
@@ -929,7 +928,7 @@ ICWD = -I..\dist\Cwd -I..\dist\Cwd\lib
#
all : CHECKDMAKE .\config.h ..\git_version.h $(GLOBEXE) $(MINIPERL) \
- $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) MakePPPort \
+ $(CONFIGPM) $(UNIDATAFILES) MakePPPort \
$(PERLEXE) $(X2P) Extensions Extensions_nonxs $(PERLSTATIC)
regnodes : ..\regnodes.h
@@ -939,7 +938,7 @@ regnodes : ..\regnodes.h
..\regexec$(o) : ..\regnodes.h ..\regcharclass.h
reonly : regnodes .\config.h ..\git_version.h $(GLOBEXE) $(MINIPERL) \
- $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) \
+ $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) \
$(X2P) Extensions_reonly
static: $(PERLEXESTATIC)
@@ -1068,7 +1067,7 @@ regen_config_h:
-$(MINIPERL) -I..\lib config_h.PL "ARCHPREFIX=$(ARCHPREFIX)"
rename config.h $(CFGH_TMPL)
-$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
+$(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL
$(MINIPERL) -I..\lib ..\configpm --chdir=..
if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
$(XCOPY) ..\*.h $(COREDIR)\*.*
@@ -1171,9 +1170,6 @@ $(PERLSTATICLIB): $(PERLDLL_OBJ) Extensions_static
$(PERLEXE_RES): perlexe.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
-$(MINIMOD) : $(MINIPERL) ..\minimod.pl
- cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
-
..\x2p\a2p$(o) : ..\x2p\a2p.c
$(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
@@ -1346,8 +1342,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile
distclean: realclean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
- $(PERLIMPLIB) ..\miniperl$(a) $(MINIMOD) \
- $(PERLEXESTATIC) $(PERLSTATICLIB)
+ $(PERLIMPLIB) ..\miniperl$(a) $(PERLEXESTATIC) $(PERLSTATICLIB)
-del /f *.def *.map
-del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
-del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm