X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2FMakefile;h=41d88ed04291bc9a6ba2f6115a50c432aa67a9bd;hb=a6c403648ecd5cc72235fdb1e7535523a8ff2ac9;hp=99bd631facfef7010b2a2f6df6d0ff81c6249d1b;hpb=15e52e56ffc1b4b0632038d47561373c5ca610c4;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/Makefile b/win32/Makefile index 99bd631..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.00470 +INST_VER = \5.00556 # # uncomment to enable threads-capabilities @@ -33,6 +37,11 @@ INST_VER = \5.00470 #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,25 +58,45 @@ INST_VER = \5.00470 #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 # +# uncomment to enable linking with setargv.obj under the Visual C +# compiler. Setting this options enables perl to expand wildcards in +# arguments, but it may be harder to use alternate methods like +# File::DosGlob that are more powerful. This option is supported only with +# Visual C. +# +#USE_SETARGV = define + +# # if you have the source for des_fcrypt(), uncomment this and make sure the -# file exists (see README.win32). File should be located at the perl -# top level directory. +# file exists (see README.win32). File should be located in the same +# 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 @@ -80,6 +109,10 @@ INST_VER = \5.00470 # # 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) @@ -87,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 = @@ -112,6 +157,8 @@ CRYPT_FLAG = -DHAVE_DES_FCRYPT !IF "$(OBJECT)" != "" PERL_MALLOC = undef +USE_THREADS = undef +USE_MULTI = undef !ENDIF !IF "$(PERL_MALLOC)" == "" @@ -122,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 @@ -153,9 +204,9 @@ LIB32 = $(LINK32) -lib # RUNTIME = -MD -INCLUDES = -I.\include -I. -I.. +INCLUDES = -I$(COREDIR) -I.\include -I. -I.. #PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX -DEFINES = -DWIN32 -D_CONSOLE $(BUILDOPT) $(CRYPT_FLAG) +DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(BUILDOPT) $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE SUBSYS = console CXX_FLAG = -TP -GX @@ -188,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 @@ -253,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 @@ -286,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 \ @@ -340,12 +393,9 @@ MICROCORE_SRC = \ ..\taint.c \ ..\toke.c \ ..\universal.c \ + ..\utf8.c \ ..\util.c -!IF "$(CRYPT_SRC)" != "" -MICROCORE_SRC = $(MICROCORE_SRC) ..\$(CRYPT_SRC) -!ENDIF - !IF "$(PERL_MALLOC)" == "define" EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c !ENDIF @@ -362,13 +412,17 @@ WIN32_SRC = \ WIN32_SRC = $(WIN32_SRC) .\win32thread.c !ENDIF +!IF "$(CRYPT_SRC)" != "" +WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC) +!ENDIF + PERL95_SRC = \ perl95.c \ win32mt.c \ win32sckmt.c !IF "$(CRYPT_SRC)" != "" -PERL95_SRC = $(PERL95_SRC) ..\$(CRYPT_SRC) +PERL95_SRC = $(PERL95_SRC) .\$(CRYPT_SRC) !ENDIF DLL_SRC = $(DYNALOADER).c @@ -413,7 +467,9 @@ CORE_NOCFG_H = \ ..\sv.h \ ..\thread.h \ ..\unixish.h \ + ..\utf8.h \ ..\util.h \ + ..\warning.h \ ..\XSUB.h \ ..\EXTERN.h \ ..\perlvars.h \ @@ -448,7 +504,12 @@ PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) PERL95_OBJ = $(PERL95_OBJ) DynaLoadmt$(o) !ENDIF -DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re +!IF "$(USE_SETARGV)" != "" +SETARGV_OBJ = setargv$(o) +!ENDIF + +DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ + Data/Dumper Devel/Peek ByteLoader STATIC_EXT = DynaLoader NONXS_EXT = Errno @@ -462,8 +523,11 @@ POSIX = $(EXTDIR)\POSIX\POSIX ATTRS = $(EXTDIR)\attrs\attrs THREAD = $(EXTDIR)\Thread\Thread B = $(EXTDIR)\B\B -RE = $(EXTDIR)\RE\RE +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 @@ -474,7 +538,10 @@ POSIX_DLL = $(AUTODIR)\POSIX\POSIX.dll 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 @@ -488,7 +555,10 @@ EXTENSION_C = \ $(ATTRS).c \ $(THREAD).c \ $(RE).c \ - $(B).c + $(DUMPER).c \ + $(PEEK).c \ + $(B).c \ + $(BYTELOADER).c EXTENSION_DLL = \ $(SOCKET_DLL) \ @@ -498,7 +568,10 @@ EXTENSION_DLL = \ $(IO_DLL) \ $(POSIX_DLL) \ $(ATTRS_DLL) \ - $(B_DLL) + $(DUMPER_DLL) \ + $(PEEK_DLL) \ + $(B_DLL) \ + $(BYTELOADER_DLL) EXTENSION_PM = \ $(ERRNO_PM) @@ -521,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 @@ -575,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) @@ -587,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:$@ @<< @@ -613,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 @@ -659,7 +733,7 @@ perlmain$(o) : perlmain.c $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(LINK32) -subsystem:console -out:$@ $(LINK_FLAGS) $(LIBFILES) \ - $(PERLEXE_OBJ) $(PERLIMPLIB) + $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) copy splittree.pl .. $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) @@ -685,7 +759,8 @@ DynaLoadmt$(o) : $(DYNALOADER).c $(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ) $(LINK32) -subsystem:console -nodefaultlib -out:$@ $(LINK_FLAGS) \ - $(LIBBASEFILES) $(PERL95_OBJ) $(PERLIMPLIB) libcmt.lib + $(LIBBASEFILES) $(PERL95_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) \ + libcmt.lib !ENDIF @@ -700,20 +775,32 @@ $(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 copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs +$(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs + cd $(EXTDIR)\Data\$(*B) + ..\..\..\miniperl -I..\..\..\lib Makefile.PL INSTALLDIRS=perl + $(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 @@ -774,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 @@ -781,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 @@ -790,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) @@ -806,9 +899,12 @@ 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 $(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 + -rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data -del /f $(PODDIR)\*.html -del /f $(PODDIR)\*.bat cd ..\utils @@ -824,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) @@ -838,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)\*.* @@ -880,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)