Bump version to 5.9.5
[p5sagit/p5-mst-13.2.git] / win32 / makefile.mk
index 2fe0c44..fd33135 100644 (file)
@@ -34,7 +34,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.9.4
+#INST_VER      *= \5.9.5
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -309,25 +309,35 @@ BUILDOPT  += -DPERL_IMPLICIT_SYS
 PROCESSOR_ARCHITECTURE *= x86
 
 .IF "$(WIN64)" == ""
+# When we are running from a 32bit cmd.exe on AMD64 then
+# PROCESSOR_ARCHITECTURE is set to x86 and PROCESSOR_ARCHITEW6432
+# is set to AMD64
 .IF "$(PROCESSOR_ARCHITEW6432)" != ""
 PROCESSOR_ARCHITECTURE != $(PROCESSOR_ARCHITEW6432)
 WIN64                  = define
-.ELIF "$(PROCESSOR_ARCHITECTURE)" == "IA64"
+.ELIF "$(PROCESSOR_ARCHITECTURE)" == "AMD64" || "$(PROCESSOR_ARCHITECTURE)" == "IA64"
 WIN64                  = define
 .ELSE
 WIN64                  = undef
 .ENDIF
 .ENDIF
 
+ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)
+.IF "$(ARCHITECTURE)" == "AMD64"
+ARCHITECTURE   = x64
+.ENDIF
+.IF "$(ARCHITECTURE)" == "IA64"
+ARCHITECTURE   = ia64
+.ENDIF
+
 .IF "$(USE_MULTI)" == "define"
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-multi
+ARCHNAME       = MSWin32-$(ARCHITECTURE)-multi
 .ELSE
 .IF "$(USE_PERLIO)" == "define"
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-perlio
+ARCHNAME       = MSWin32-$(ARCHITECTURE)-perlio
 .ELSE
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)
+ARCHNAME       = MSWin32-$(ARCHITECTURE)
 .ENDIF
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)
 .ENDIF
 
 .IF "$(USE_ITHREADS)" == "define"
@@ -348,6 +358,7 @@ LIBDIR              = ..\lib
 EXTDIR         = ..\ext
 PODDIR         = ..\pod
 EXTUTILSDIR    = $(LIBDIR)\ExtUtils
+HTMLDIR                = .\html
 
 #
 INST_SCRIPT    = $(INST_TOP)$(INST_VER)\bin
@@ -524,15 +535,7 @@ OPTIMIZE   += -O1
 
 .IF "$(WIN64)" == "define"
 DEFINES                += -DWIN64 -DCONSERVATIVE
-OPTIMIZE       += -Wp64 -Op
-.ENDIF
-
-# the string-pooling option -Gf is deprecated in VC++ 7.x and will be removed
-# in later versions, so use read-only string-pooling (-GF) instead
-.IF "$(CCTYPE)" == "MSVC70FREE" || "$(CCTYPE)" == "MSVC70"
-STRPOOL                = -GF
-.ELSE
-STRPOOL                = -Gf
+OPTIMIZE       += -Wp64 -fp:precise
 .ENDIF
 
 .IF "$(USE_PERLCRT)" != "define"
@@ -543,17 +546,20 @@ LIBBASEFILES      = $(CRYPT_LIB) \
                oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
                comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
                netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
-               version.lib
+               version.lib odbc32.lib odbccp32.lib
 
-# win64 doesn't have some libs
-.IF "$(WIN64)" != "define"
-LIBBASEFILES   += odbc32.lib odbccp32.lib
+# The 64 bit Platform SDK compilers contain a runtime library that doesn't
+# include the buffer overrun verification code used by the /GS switch.
+# Since the code links against libraries that are compiled with /GS, this
+# "security cookie verification" must be included via bufferoverlow.lib.
+.IF "$(WIN64)" == "define"
+LIBBASEFILES    = $(LIBBASEFILES) bufferoverflowU.lib
 .ENDIF
 
 # we add LIBC here, since we may be using PerlCRT.dll
 LIBFILES       = $(LIBBASEFILES) $(LIBC)
 
-EXTRACFLAGS    = -nologo $(STRPOOL) -W3
+EXTRACFLAGS    = -nologo -GF -W3
 CFLAGS         = $(EXTRACFLAGS) $(INCLUDES) $(DEFINES) $(LOCDEFS) \
                $(PCHFLAGS) $(OPTIMIZE)
 LINK_FLAGS     = -nologo -nodefaultlib $(LINK_DBG) \
@@ -683,7 +689,6 @@ UTILS               =                       \
                ..\utils\pstruct        \
                ..\utils\h2xs           \
                ..\utils\perldoc        \
-               ..\utils\perlcc         \
                ..\utils\perlivp        \
                ..\utils\libnetcfg      \
                ..\utils\enc2xs         \
@@ -886,7 +891,8 @@ DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
                Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
                Sys/Hostname Storable Filter/Util/Call Encode \
                Digest/MD5 Digest/SHA PerlIO/scalar MIME/Base64 Time/HiRes \
-               Unicode/Normalize Math/BigInt/FastCalc Compress/Zlib Win32
+               Unicode/Normalize Math/BigInt/FastCalc Compress/Zlib Win32 \
+               Win32API/File
 STATIC_EXT     = 
 NONXS_EXT      = Errno
 
@@ -957,7 +963,7 @@ ODBCCP32_DLL = $(windir)\system\odbccp32.dll
 
 all : .\config.h $(GLOBEXE) $(MINIPERL) $(MK2)         \
        $(RIGHTMAKE) $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE)  \
-       $(X2P) Extensions
+       $(X2P) MakePPPort Extensions
 
 $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
 
@@ -1214,6 +1220,12 @@ $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
 $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
        copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
 
+MakePPPort: $(MINIPERL) $(CONFIGPM)
+       $(MINIPERL) -I..\lib ..\mkppport
+
+MakePPPort_clean:
+       -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\mkppport --clean
+
 #-------------------------------------------------------------------------------
 Extensions : buildext.pl $(PERLDEP) $(CONFIGPM)
        $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) --dynamic
@@ -1236,7 +1248,7 @@ Extensions_realclean :
 
 
 doc: $(PERLEXE)
-       $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
+       $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \
            --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\
            --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
 
@@ -1275,6 +1287,7 @@ utils: $(PERLEXE) $(X2P)
        copy ..\README.os400    ..\pod\perlos400.pod
        copy ..\README.plan9    ..\pod\perlplan9.pod
        copy ..\README.qnx      ..\pod\perlqnx.pod
+       copy ..\README.riscos   ..\pod\perlriscos.pod
        copy ..\README.solaris  ..\pod\perlsolaris.pod
        copy ..\README.symbian  ..\pod\perlsymbian.pod
        copy ..\README.tru64    ..\pod\perltru64.pod
@@ -1325,6 +1338,8 @@ distclean: realclean
        -del /f $(LIBDIR)\Unicode\Normalize.pm
        -del /f $(LIBDIR)\Math\BigInt\FastCalc.pm
        -del /f $(LIBDIR)\Win32.pm
+       -del /f $(LIBDIR)\Win32API\File.pm
+       -del /f $(LIBDIR)\Win32API\File\cFile.pc
        -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B
        -if exist $(LIBDIR)\Compress rmdir /s /q $(LIBDIR)\Compress
        -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data
@@ -1340,6 +1355,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Sys rmdir /s /q $(LIBDIR)\Sys
        -if exist $(LIBDIR)\threads rmdir /s /q $(LIBDIR)\threads
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
+       -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
        -cd $(PODDIR) && del /f *.html *.bat checkpods \
            perlaix.pod perlamiga.pod perlapollo.pod perlbeos.pod \
            perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
@@ -1348,13 +1364,14 @@ distclean: realclean
            perljp.pod perlko.pod perllinux.pod perlmachten.pod \
            perlmacos.pod perlmacosx.pod perlmint.pod perlmpeix.pod \
            perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
-           perlos400.pod perlplan9.pod perlqnx.pod perlsolaris.pod \
-           perlsymbian.pod perltru64.pod perltw.pod perluts.pod \
-           perlvmesa.pod perlvms.pod perlvms.pod perlvos.pod perlwin32.pod \
+           perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
+           perlsolaris.pod perlsymbian.pod perltru64.pod perltw.pod \
+           perluts.pod perlvmesa.pod perlvms.pod perlvms.pod perlvos.pod \
+           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 *.bat \
+           perldoc perlivp dprofpp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp instmodsh prove ptar ptardiff shasum corelist config_data
        -cd ..\x2p && del /f find2perl s2p psed *.bat
        -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
@@ -1366,6 +1383,9 @@ distclean: realclean
        -cd $(EXTDIR) && del /s *.def Makefile Makefile.old
        -if exist $(AUTODIR) rmdir /s /q $(AUTODIR)
        -if exist $(COREDIR) rmdir /s /q $(COREDIR)
+       -if exist pod2htmd.tmp del pod2htmd.tmp
+       -if exist pod2htmi.tmp del pod2htmi.tmp
+       -if exist $(HTMLDIR) rmdir /s /q $(HTMLDIR)
 
 install : all installbare installhtml
 
@@ -1378,7 +1398,7 @@ installbare : $(RIGHTMAKE) utils
        $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
 
 installhtml : doc
-       $(RCOPY) html\*.* $(INST_HTML)\*.*
+       $(RCOPY) $(HTMLDIR)\*.* $(INST_HTML)\*.*
 
 inst_lib : $(CONFIGPM)
        copy splittree.pl ..
@@ -1457,7 +1477,7 @@ _clean :
 
 clean : Extensions_clean _clean
 
-realclean : Extensions_realclean _clean
+realclean : Extensions_realclean MakePPPort_clean _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.