X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2FMakefile;h=41d88ed04291bc9a6ba2f6115a50c432aa67a9bd;hb=a6c403648ecd5cc72235fdb1e7535523a8ff2ac9;hp=23a8b8811dc1ac192fb8858795a8db643cd51179;hpb=05fc92f103e6b2c614e47ffd2b374aa5fcc8327a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/Makefile b/win32/Makefile index 23a8b88..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.00473 +INST_VER = \5.00556 # # uncomment to enable threads-capabilities @@ -33,6 +37,11 @@ INST_VER = \5.00473 #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,9 +58,20 @@ INST_VER = \5.00473 #CFG = Debug # -# uncomment to enable use of PerlCRT.DLL. Highly recommended. It has -# patches that fix known bugs in MSCVRT.DLL. You will need to download it -# from: and follow the directions in the package to install. +# 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. +# Get it from CPAN at http://www.perl.com/CPAN/authors/id/D/DO/DOUGL/ +# and follow the directions in the package to install. # #USE_PERLCRT = define @@ -67,16 +87,16 @@ INST_VER = \5.00473 # # if you have the source for des_fcrypt(), uncomment this and make sure the # file exists (see README.win32). File should be located in the same -# directory as this file. Not (yet) supported with PERL_OBJECT. +# directory as this file. # -#CRYPT_SRC = des_fcrypt.c +#CRYPT_SRC = fcrypt.c # # if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a # library, uncomment this, and make sure the library exists (see README.win32) # Specify the full pathname of the library. # -#CRYPT_LIB = des_fcrypt.lib +#CRYPT_LIB = fcrypt.lib # # set this if you wish to use perl's malloc @@ -89,6 +109,10 @@ INST_VER = \5.00473 # # 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 (spaces in the path name should +# not be quoted) # #CCHOME = f:\msvc20 CCHOME = $(MSVCDIR) @@ -96,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 = @@ -121,6 +157,8 @@ CRYPT_FLAG = -DHAVE_DES_FCRYPT !IF "$(OBJECT)" != "" PERL_MALLOC = undef +USE_THREADS = undef +USE_MULTI = undef !ENDIF !IF "$(PERL_MALLOC)" == "" @@ -131,19 +169,23 @@ 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 !ENDIF +!IF "$(OBJECT)" != "" +ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-object +!ELSE !IF "$(USE_THREADS)" == "define" ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread !ELSE ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE) !ENDIF +!ENDIF ARCHDIR = ..\lib\$(ARCHNAME) COREDIR = ..\lib\CORE @@ -197,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 @@ -262,7 +304,7 @@ EXTUTILSDIR = $(LIBDIR)\extutils !IF "$(OBJECT)" == "-DPERL_OBJECT" PERLIMPLIB = ..\perlcore.lib PERLDLL = ..\perlcore.dll -CAPILIB = $(COREDIR)\PerlCAPI.lib +CAPILIB = $(COREDIR)\perlCAPI.lib !ELSE PERLIMPLIB = ..\perl.lib PERLDLL = ..\perl.dll @@ -295,9 +337,11 @@ UTILS = \ ..\pod\pod2latex \ ..\pod\pod2man \ ..\pod\pod2text \ + ..\pod\pod2usage \ + ..\pod\podchecker \ + ..\pod\podselect \ ..\x2p\find2perl \ ..\x2p\s2p \ - bin\www.pl \ bin\runperl.pl \ bin\pl2bat.pl \ bin\perlglob.pl \ @@ -349,6 +393,7 @@ MICROCORE_SRC = \ ..\taint.c \ ..\toke.c \ ..\universal.c \ + ..\utf8.c \ ..\util.c !IF "$(PERL_MALLOC)" == "define" @@ -422,7 +467,9 @@ CORE_NOCFG_H = \ ..\sv.h \ ..\thread.h \ ..\unixish.h \ + ..\utf8.h \ ..\util.h \ + ..\warning.h \ ..\XSUB.h \ ..\EXTERN.h \ ..\perlvars.h \ @@ -462,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 @@ -479,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 @@ -490,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 @@ -505,7 +556,9 @@ EXTENSION_C = \ $(THREAD).c \ $(RE).c \ $(DUMPER).c \ - $(B).c + $(PEEK).c \ + $(B).c \ + $(BYTELOADER).c EXTENSION_DLL = \ $(SOCKET_DLL) \ @@ -516,7 +569,9 @@ EXTENSION_DLL = \ $(POSIX_DLL) \ $(ATTRS_DLL) \ $(DUMPER_DLL) \ - $(B_DLL) + $(PEEK_DLL) \ + $(B_DLL) \ + $(BYTELOADER_DLL) EXTENSION_PM = \ $(ERRNO_PM) @@ -539,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 @@ -593,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) @@ -605,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:$@ @<< @@ -631,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 @@ -719,15 +775,15 @@ $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) cd ..\..\win32 !IF "$(OBJECT)" == "-DPERL_OBJECT" -PerlCAPI.cpp : $(MINIPERL) +perlCAPI.cpp : $(MINIPERL) $(MINIPERL) GenCAPI.pl $(COREDIR) -PerlCAPI$(o) : PerlCAPI.cpp +perlCAPI$(o) : perlCAPI.cpp $(CC) $(CFLAGS_O) $(RUNTIME) -UPERLDLL -c \ - $(OBJOUT_FLAG)PerlCAPI$(o) PerlCAPI.cpp + $(OBJOUT_FLAG)perlCAPI$(o) perlCAPI.cpp -$(CAPILIB) : PerlCAPI.cpp PerlCAPI$(o) - lib /OUT:$(CAPILIB) PerlCAPI$(o) +$(CAPILIB) : perlCAPI.cpp perlCAPI$(o) + lib /OUT:$(CAPILIB) perlCAPI$(o) !ENDIF $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs @@ -739,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 @@ -799,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 @@ -806,7 +874,6 @@ $(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL cd ..\..\win32 doc: $(PERLEXE) - copy ..\README.win32 ..\pod\perlwin32.pod $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \ --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \ --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse @@ -815,6 +882,7 @@ utils: $(PERLEXE) $(X2P) cd ..\utils $(MAKE) PERL=$(MINIPERL) cd ..\pod + copy ..\README.win32 .\perlwin32.pod $(MAKE) -f ..\win32\pod.mak converters cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) @@ -831,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 @@ -851,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) @@ -865,7 +934,6 @@ installbare : utils !ENDIF $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.* - $(XCOPY) bin\network.pl $(INST_LIB)\*.* installhtml : doc $(RCOPY) html\*.* $(INST_HTML)\*.* @@ -907,7 +975,7 @@ clean : -@erase perlmain$(o) -@erase config.w32 -@erase /f config.h - -@erase PerlCAPI.cpp + -@erase perlCAPI.cpp -@erase $(GLOBEXE) -@erase $(PERLEXE) -@erase $(PERLDLL)