X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2FMakefile;h=41d88ed04291bc9a6ba2f6115a50c432aa67a9bd;hb=a6c403648ecd5cc72235fdb1e7535523a8ff2ac9;hp=db9824026f5c42f4532973cc210d5ad130be7f54;hpb=400153aa9551f27592f25fe64eb2271bcf435151;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/Makefile b/win32/Makefile index db98240..41d88ed 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -6,6 +6,10 @@ # ## +## Make sure you read README.win32 *before* you mess with anything here! +## + +## ## Build configuration. Edit the values below to suit your needs. ## @@ -25,7 +29,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.00551 +INST_VER = \5.00556 # # uncomment to enable threads-capabilities @@ -33,6 +37,11 @@ INST_VER = \5.00551 #USE_THREADS = define # +# uncomment to enable multiple interpreters +# +#USE_MULTI = define + +# # uncomment next line if you are using Visual C++ 2.x # #CCTYPE = MSVC20 @@ -49,6 +58,15 @@ INST_VER = \5.00551 #CFG = Debug # +# uncomment next option if you want to use the VC++ compiler optimization. +# Warning: This is known to produce incorrect code for compiler versions +# earlier than VC++ 98 (Visual Studio 6.0). VC++ 98 generates code that +# successfully passes the Perl regression test suite. It hasn't yet been +# widely tested with real applications though. +# +#CFG = Optimize + +# # uncomment to enable use of PerlCRT.DLL when using the Visual C compiler. # Highly recommended. It has patches that fix known bugs in MSVCRT.DLL. # This currently requires VC 5.0 with Service Pack 3. @@ -91,8 +109,10 @@ INST_VER = \5.00551 # # set the install locations of the compiler include/libraries +# Running VCVARS32.BAT is *required* when using Visual C. # Some versions of Visual C don't define MSVCDIR in the environment, -# so you may have to set CCHOME explicitly. +# so you may have to set CCHOME explicitly (spaces in the path name should +# not be quoted) # #CCHOME = f:\msvc20 CCHOME = $(MSVCDIR) @@ -100,7 +120,19 @@ CCINCDIR = $(CCHOME)\include CCLIBDIR = $(CCHOME)\lib # -# specify space-separated list of extra directories to look for libraries +# additional compiler flags can be specified here. +# +# Adding -DPERL_POLLUTE enables support for old symbols, at the expense of +# extreme pollution. You most probably want this if you're compiling modules +# from CPAN, or other such serious uses of this experimental perl release. +# We don't enable this by default because we want the modules to get fixed +# instead of clinging to shortcuts like this one. +# +#BUILDOPT = -DPERL_POLLUTE + +# +# specify semicolon-separated list of extra directories that modules will +# look for libraries (spaces in path names need not be quoted) # EXTRALIBDIRS = @@ -125,6 +157,8 @@ CRYPT_FLAG = -DHAVE_DES_FCRYPT !IF "$(OBJECT)" != "" PERL_MALLOC = undef +USE_THREADS = undef +USE_MULTI = undef !ENDIF !IF "$(PERL_MALLOC)" == "" @@ -135,9 +169,9 @@ PERL_MALLOC = undef USE_THREADS = undef !ENDIF -#BUILDOPT = -DMULTIPLICITY -#BUILDOPT = -DPERL_GLOBAL_STRUCT -DMULTIPLICITY -# -DUSE_PERLIO -D__STDC__=1 -DUSE_SFIO -DI_SFIO -I\sfio97\include +!IF "$(USE_MULTI)" == "" +USE_MULTI = undef +!ENDIF !IF "$(PROCESSOR_ARCHITECTURE)" == "" PROCESSOR_ARCHITECTURE = x86 @@ -205,8 +239,8 @@ OPTIMIZE = -Od $(RUNTIME)d -Zi -D_DEBUG -DDEBUGGING ! ENDIF LINK_DBG = -debug -pdb:none !ELSE -! IF "$(CCTYPE)" == "MSVC20" -OPTIMIZE = -Od $(RUNTIME) -DNDEBUG +! IF "$(CFG)" == "Optimize" +OPTIMIZE = -O2 $(RUNTIME) -DNDEBUG ! ELSE OPTIMIZE = -Od $(RUNTIME) -DNDEBUG ! ENDIF @@ -303,6 +337,9 @@ UTILS = \ ..\pod\pod2latex \ ..\pod\pod2man \ ..\pod\pod2text \ + ..\pod\pod2usage \ + ..\pod\podchecker \ + ..\pod\podselect \ ..\x2p\find2perl \ ..\x2p\s2p \ bin\runperl.pl \ @@ -472,7 +509,7 @@ SETARGV_OBJ = setargv$(o) !ENDIF DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ - Data/Dumper + Data/Dumper Devel/Peek ByteLoader STATIC_EXT = DynaLoader NONXS_EXT = Errno @@ -489,6 +526,8 @@ B = $(EXTDIR)\B\B RE = $(EXTDIR)\re\re DUMPER = $(EXTDIR)\Data\Dumper\Dumper ERRNO = $(EXTDIR)\Errno\Errno +PEEK = $(EXTDIR)\Devel\Peek\Peek +BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll @@ -500,7 +539,9 @@ ATTRS_DLL = $(AUTODIR)\attrs\attrs.dll THREAD_DLL = $(AUTODIR)\Thread\Thread.dll B_DLL = $(AUTODIR)\B\B.dll DUMPER_DLL = $(AUTODIR)\Data\Dumper\Dumper.dll +PEEK_DLL = $(AUTODIR)\Devel\Peek\Peek.dll RE_DLL = $(AUTODIR)\re\re.dll +BYTELOADER_DLL = $(AUTODIR)\ByteLoader\ByteLoader.dll ERRNO_PM = $(LIBDIR)\Errno.pm @@ -515,7 +556,9 @@ EXTENSION_C = \ $(THREAD).c \ $(RE).c \ $(DUMPER).c \ - $(B).c + $(PEEK).c \ + $(B).c \ + $(BYTELOADER).c EXTENSION_DLL = \ $(SOCKET_DLL) \ @@ -526,7 +569,9 @@ EXTENSION_DLL = \ $(POSIX_DLL) \ $(ATTRS_DLL) \ $(DUMPER_DLL) \ - $(B_DLL) + $(PEEK_DLL) \ + $(B_DLL) \ + $(BYTELOADER_DLL) EXTENSION_PM = \ $(ERRNO_PM) @@ -549,22 +594,23 @@ CFG_VARS = \ "INST_VER=$(INST_VER)" \ "archname=$(ARCHNAME)" \ "cc=$(CC)" \ - "ccflags=$(OPTIMIZE) $(DEFINES) $(OBJECT)" \ + "ccflags=$(OPTIMIZE:"=\") $(DEFINES) $(OBJECT)" \ "cf_email=$(EMAIL)" \ "d_crypt=$(D_CRYPT)" \ "d_mymalloc=$(PERL_MALLOC)" \ "libs=$(LIBFILES)" \ - "incpath=$(CCINCDIR)" \ - "libperl=$(PERLIMPLIB:..\=)" \ - "libpth=$(CCLIBDIR) $(EXTRALIBDIRS)" \ + "incpath=$(CCINCDIR:"=\")" \ + "libperl=$(PERLIMPLIB:..\=)" \ + "libpth=$(CCLIBDIR:"=\");$(EXTRALIBDIRS:"=\")" \ "libc=$(LIBC)" \ "make=nmake" \ "static_ext=$(STATIC_EXT)" \ "dynamic_ext=$(DYNAMIC_EXT)" \ "nonxs_ext=$(NONXS_EXT)" \ "usethreads=$(USE_THREADS)" \ - "LINK_FLAGS=$(LINK_FLAGS)" \ - "optimize=$(OPTIMIZE)" + "usemultiplicity=$(USE_MULTI)" \ + "LINK_FLAGS=$(LINK_FLAGS:"=\")" \ + "optimize=$(OPTIMIZE:"=\")" # # Top targets @@ -603,7 +649,7 @@ regen_config_h: perl configpm cd win32 -del /f $(CFGH_TMPL) - -mkdir ..\lib\CORE + -mkdir $(COREDIR) -perl -I..\lib config_h.PL "INST_VER=$(INST_VER)" rename config.h $(CFGH_TMPL) @@ -615,7 +661,7 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* $(RCOPY) include $(COREDIR)\*.* $(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \ - || $(MAKE) $(MAKEFLAGS) $(CONFIGPM) + || $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(LINK32) -subsystem:console -out:$@ @<< @@ -641,7 +687,7 @@ $(DLL_OBJ) : $(CORE_H) $(PERL95_OBJ) : $(CORE_H) $(X2P_OBJ) : $(CORE_H) -perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym makedef.pl +perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym makedef.pl $(MINIPERL) -w makedef.pl $(OPTIMIZE) $(DEFINES) $(OBJECT) \ CCTYPE=$(CCTYPE) > perldll.def @@ -749,6 +795,12 @@ $(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs $(MAKE) cd ..\..\..\win32 +$(PEEK_DLL): $(PERLEXE) $(PEEK).xs + cd $(EXTDIR)\Devel\$(*B) + ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\..\win32 + $(RE_DLL): $(PERLEXE) $(RE).xs cd $(EXTDIR)\$(*B) ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl @@ -809,6 +861,12 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs $(MAKE) cd ..\..\win32 +$(BYTELOADER_DLL): $(PERLEXE) $(BYTELOADER).xs + cd $(EXTDIR)\$(*B) + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + $(MAKE) + cd ..\..\win32 + $(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL cd $(EXTDIR)\$(*B) ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl @@ -841,7 +899,8 @@ distclean: clean -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.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 + -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm + -del /f $(LIBDIR)\Devel\Peek.pm -rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO -rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread -rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B @@ -861,7 +920,7 @@ distclean: clean -del /f perl95.c -del /f bin\*.bat cd $(EXTDIR) - -del /s *.lib *.def *.map *.bs Makefile *$(o) pm_to_blib + -del /s *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib cd ..\win32 -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR) -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)