summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/perl/win32/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/perl/win32/Makefile')
-rw-r--r--gnu/usr.bin/perl/win32/Makefile141
1 files changed, 95 insertions, 46 deletions
diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile
index 37d24994e86..e139903bbcf 100644
--- a/gnu/usr.bin/perl/win32/Makefile
+++ b/gnu/usr.bin/perl/win32/Makefile
@@ -32,7 +32,7 @@ INST_TOP = $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER = \5.8.3
+#INST_VER = \5.8.5
#
# Comment this out if you DON'T want your perl installation to have
@@ -372,9 +372,6 @@ LIBC = msvcrt.lib
LIBC = PerlCRT.lib
!ENDIF
-PERLEXE_RES =
-PERLDLL_RES =
-
!IF "$(CFG)" == "Debug"
! IF "$(CCTYPE)" == "MSVC20"
OPTIMIZE = -Od -MD -Z7 -DDEBUGGING
@@ -383,8 +380,15 @@ OPTIMIZE = -Od -MD -Zi -DDEBUGGING
! ENDIF
LINK_DBG = -debug
!ELSE
-OPTIMIZE = -MD -DNDEBUG
-LINK_DBG = -release
+OPTIMIZE = -MD -Zi -DNDEBUG
+# we enable debug symbols in release builds also
+LINK_DBG = -debug -opt:ref,icf
+# you may want to enable this if you want COFF symbols in the executables
+# in addition to the PDB symbols. The default Dr. Watson that ships with
+# Windows can use the the former but not latter. The free WinDbg can be
+# installed to get better stack traces from just the PDB symbols, so we
+# avoid the bloat of COFF symbols by default.
+#LINK_DBG = $(LINK_DBG) -debugtype:both
! IF "$(WIN64)" == "define"
# enable Whole Program Optimizations (WPO) and Link Time Code Generation (LTCG)
OPTIMIZE = $(OPTIMIZE) -Ox -GL
@@ -470,6 +474,20 @@ CONFIGPM = ..\lib\Config.pm
MINIMOD = ..\lib\ExtUtils\Miniperl.pm
X2P = ..\x2p\a2p.exe
+# Unicode data files generated by mktables
+UNIDATAFILES = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \
+ ..\lib\unicore\Properties ..\lib\unicore\Decomposition.pl \
+ ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
+ ..\lib\unicore\PVA.pl
+
+# Directories of Unicode data files generated by mktables
+UNIDATADIR1 = ..\lib\unicore\To
+UNIDATADIR2 = ..\lib\unicore\lib
+
+PERLEXE_ICO = .\perlexe.ico
+PERLEXE_RES = .\perlexe.res
+PERLDLL_RES =
+
# Nominate a target which causes extensions to be re-built
# This used to be $(PERLEXE), but at worst it is the .dll that they depend
# on and really only the interface - i.e. the .def file used to export symbols
@@ -701,6 +719,7 @@ PERLIOVIA = $(EXTDIR)\PerlIO\via\via
XSAPITEST = $(EXTDIR)\XS\APItest\APItest
XSTYPEMAP = $(EXTDIR)\XS\Typemap\Typemap
UNICODENORMALIZE = $(EXTDIR)\Unicode\Normalize\Normalize
+WIN32_DIR = ext\Win32
SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
@@ -731,6 +750,7 @@ PERLIOVIA_DLL = $(AUTODIR)\PerlIO\via\via.dll
XSAPITEST_DLL = $(AUTODIR)\XS\APItest\APItest.dll
XSTYPEMAP_DLL = $(AUTODIR)\XS\Typemap\Typemap.dll
UNICODENORMALIZE_DLL = $(AUTODIR)\Unicode\Normalize\Normalize.dll
+WIN32_DLL = $(AUTODIR)\Win32\Win32.dll
EXTENSION_C = \
$(SOCKET).c \
@@ -761,7 +781,8 @@ EXTENSION_C = \
$(PERLIOVIA).c \
$(XSAPITEST).c \
$(XSTYPEMAP).c \
- $(UNICODENORMALIZE).c
+ $(UNICODENORMALIZE).c \
+ $(WIN32_DIR).c
EXTENSION_DLL = \
$(SOCKET_DLL) \
@@ -792,7 +813,8 @@ EXTENSION_DLL = \
$(PERLIOVIA_DLL) \
$(XSAPITEST_DLL) \
$(XSTYPEMAP_DLL) \
- $(UNICODENORMALIZE_DLL)
+ $(UNICODENORMALIZE_DLL) \
+ $(WIN32_DLL)
POD2HTML = $(PODDIR)\pod2html
POD2MAN = $(PODDIR)\pod2man
@@ -831,7 +853,7 @@ CFG_VARS = \
# Top targets
#
-all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) \
+all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) \
$(X2P) Extensions
@echo Everything is up to date. '$(MAKE_BARE) test' to run test suite.
@@ -922,6 +944,11 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
<<
$(XCOPY) $(PERLIMPLIB) $(COREDIR)
+$(PERLEXE_ICO): $(MINIPERL) makeico.pl
+ $(MINIPERL) makeico.pl > $@
+
+$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO)
+
$(MINIMOD) : $(MINIPERL) ..\minimod.pl
cd ..
miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
@@ -981,9 +1008,20 @@ $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
#----------------------------------------------------------------------------------
Extensions: buildext.pl $(PERLDEP) $(CONFIGPM)
$(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR)
+ $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext
+
+# Note: The next two targets explicitly remove a "blibdirs.exists" file that
+# currerntly gets left behind, until CPAN RT Ticket #5616 is resolved.
Extensions_clean:
-if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext clean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
+
+Extensions_realclean:
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) realclean
+ -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) ext realclean
+ -if exist $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists del /f $(EXTDIR)\SDBM_File\sdbm\blibdirs.exists
#----------------------------------------------------------------------------------
@@ -1036,7 +1074,7 @@ utils: $(PERLEXE) $(X2P)
copy ..\README.vms ..\pod\perlvms.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perl583delta.pod ..\pod\perldelta.pod
+ copy ..\pod\perl585delta.pod ..\pod\perldelta.pod
$(MAKE) -f ..\win32\pod.mak converters
cd ..\lib
$(PERLEXE) lib_pm.PL
@@ -1048,45 +1086,48 @@ utils: $(PERLEXE) $(X2P)
# the doubled rmdir calls are needed because older cmd shells
# don't understand /q
-distclean: clean
+distclean: realclean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \
$(PERLIMPLIB) ..\miniperl.lib $(MINIMOD)
-del /f *.def *.map
-del /f $(EXTENSION_DLL)
-del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm
-del /f $(EXTDIR)\DynaLoader\dl_win32.xs
+ -del /f $(EXTDIR)\DynaLoader\DynaLoader.pm
+ -del /f $(EXTDIR)\DynaLoader\XSLoader.pm
+ -del /f $(LIBDIR)\Encode.pm $(LIBDIR)\encoding.pm $(LIBDIR)\Errno.pm
+ -del /f $(LIBDIR)\Config.pod $(LIBDIR)\POSIX.pod $(LIBDIR)\threads.pm
-del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm
- -del /f $(LIBDIR)\XSLoader.pm
+ -del /f $(LIBDIR)\XSLoader.pm $(LIBDIR)\lib.pm
-del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm
-del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm
-del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm
-del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm
- -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm
+ -del /f $(LIBDIR)\ByteLoader.pm
-del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm
+ -del /f $(LIBDIR)\Devel\PPPort.pm
-del /f $(LIBDIR)\File\Glob.pm
-del /f $(LIBDIR)\Storable.pm
- -del /f $(LIBDIR)\Filter\Util\Call.pm
-del /f $(LIBDIR)\Digest\MD5.pm
+ -del /f $(LIBDIR)\PerlIO\encoding.pm
-del /f $(LIBDIR)\PerlIO\scalar.pm
-del /f $(LIBDIR)\PerlIO\via.pm
- -del /f $(LIBDIR)\MIME\Base64.pm
- -del /f $(LIBDIR)\MIME\QuotedPrint.pm
- -del /f $(LIBDIR)\List\Util.pm
- -del /f $(LIBDIR)\Scalar\Util.pm
+ -del /f $(LIBDIR)\Sys\Hostname.pm
+ -del /f $(LIBDIR)\Thread\Signal.pm $(LIBDIR)\Thread\Specific.pm
+ -del /f $(LIBDIR)\threads\shared.pm
-del /f $(LIBDIR)\Time\HiRes.pm
- -del /f $(LIBDIR)\XS\APItest.pm
- -del /f $(LIBDIR)\XS\Typemap.pm
-del /f $(LIBDIR)\Unicode\Normalize.pm
+ -del /f $(LIBDIR)\Win32.pm
-if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO
-if exist $(LIBDIR)\IO rmdir /s $(LIBDIR)\IO
-if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
-if exist $(LIBDIR)\B rmdir /s $(LIBDIR)\B
-if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
-if exist $(LIBDIR)\Data rmdir /s $(LIBDIR)\Data
+ -if exist $(LIBDIR)\Encode rmdir /s /q $(LIBDIR)\Encode
+ -if exist $(LIBDIR)\Encode rmdir /s $(LIBDIR)\Encode
-if exist $(LIBDIR)\Filter\Util rmdir /s /q $(LIBDIR)\Filter\Util
-if exist $(LIBDIR)\Filter\Util rmdir /s $(LIBDIR)\Filter\Util
- -if exist $(LIBDIR)\Digest rmdir /s /q $(LIBDIR)\Digest
- -if exist $(LIBDIR)\Digest rmdir /s $(LIBDIR)\Digest
-if exist $(LIBDIR)\MIME rmdir /s /q $(LIBDIR)\MIME
-if exist $(LIBDIR)\MIME rmdir /s $(LIBDIR)\MIME
-if exist $(LIBDIR)\List rmdir /s /q $(LIBDIR)\List
@@ -1095,8 +1136,7 @@ distclean: clean
-if exist $(LIBDIR)\Scalar rmdir /s $(LIBDIR)\Scalar
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-if exist $(LIBDIR)\XS rmdir /s $(LIBDIR)\XS
- cd $(PODDIR)
- -del /f *.html *.bat checkpods \
+ -cd $(PODDIR) && del /f *.html *.bat checkpods \
perlaix.pod perlamiga.pod perlapollo.pod perlbeos.pod \
perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldelta.pod perldgux.pod perldos.pod perlepoc.pod \
@@ -1109,24 +1149,16 @@ distclean: clean
perlwin32.pod \
pod2html pod2latex pod2man pod2text pod2usage \
podchecker podselect
- cd ..\utils
- -del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs perldoc perlivp \
- dprofpp perlcc libnetcfg enc2xs piconv cpan xsubpp instmodsh prove
- -del /f *.bat
- cd ..\win32
- cd ..\x2p
- -del /f find2perl s2p psed
- -del /f *.bat
- cd ..\win32
+ -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
+ perldoc perlivp dprofpp perlcc libnetcfg enc2xs piconv cpan *.bat \
+ xsubpp instmodsh prove
+ -cd ..\x2p && del /f find2perl s2p psed *.bat
-del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
-del /f $(CONFIGPM)
-del /f bin\*.bat
- cd ..
- -del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
- cd win32
- cd $(EXTDIR)
- -del /s *.def Makefile Makefile.old
- cd ..\win32
+ -del /f $(PERLEXE_ICO) perl.base
+ -cd .. && del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib
+ -cd $(EXTDIR) && del /s *.def Makefile Makefile.old
-if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
-if exist $(AUTODIR) rmdir /s $(AUTODIR)
-if exist $(COREDIR) rmdir /s /q $(COREDIR)
@@ -1138,6 +1170,8 @@ installbare : utils
$(PERLEXE) ..\installperl
if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.*
$(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
+ if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.*
+ if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.*
$(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
installhtml : doc
@@ -1148,14 +1182,18 @@ inst_lib : $(CONFIGPM)
$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
$(RCOPY) ..\lib $(INST_LIB)\*.*
-minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils
- $(XCOPY) $(MINIPERL) ..\t\perl.exe
+$(UNIDATAFILES) : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables
+ cd ..\lib\unicore && \
+ ..\$(MINIPERL) -I.. mktables
+
+minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils $(UNIDATAFILES)
+ $(XCOPY) $(MINIPERL) ..\t\$(NULL)
+ if exist ..\t\perl.exe del /f ..\t\perl.exe
+ rename ..\t\miniperl.exe perl.exe
$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
attrib -r ..\t\*.*
- copy test ..\t
- cd ..\t
- $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
- cd ..\win32
+ cd ..\t && \
+ $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t
test-prep : all utils
$(XCOPY) $(PERLEXE) ..\t\$(NULL)
@@ -1181,7 +1219,9 @@ _test :
$(PERLEXE) -I..\lib harness
cd ..\win32
-clean : Extensions_clean
+# the doubled rmdir calls are needed because older cmd shells
+# don't understand /q
+_clean :
-@$(DEL) miniperlmain$(o)
-@$(DEL) $(MINIPERL)
-@$(DEL) perlglob$(o)
@@ -1195,6 +1235,11 @@ clean : Extensions_clean
-@$(DEL) $(CORE_OBJ)
-if exist $(MINIDIR) rmdir /s /q $(MINIDIR)
-if exist $(MINIDIR) rmdir /s $(MINIDIR)
+ -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1)
+ -if exist $(UNIDATADIR1) rmdir /s $(UNIDATADIR1)
+ -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2)
+ -if exist $(UNIDATADIR2) rmdir /s $(UNIDATADIR2)
+ -@$(DEL) $(UNIDATAFILES)
-@$(DEL) $(WIN32_OBJ)
-@$(DEL) $(DLL_OBJ)
-@$(DEL) $(X2P_OBJ)
@@ -1204,6 +1249,10 @@ clean : Extensions_clean
-@$(DEL) *.ilk
-@$(DEL) *.pdb
+clean : Extensions_clean _clean
+
+realclean : Extensions_realclean _clean
+
# Handy way to run perlbug -ok without having to install and run the
# installed perlbug. We don't re-run the tests here - we trust the user.
# Please *don't* use this unless all tests pass.