X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fmakefile.mk;h=a786a61c0542646e460c8f3a3a28cd01741e4442;hb=74b823207289f92d7c8d9c4e8b92d40463f43d48;hp=2b5742325f7574366bffac9d5217cf762c6fc075;hpb=ba7e4437aa27a0775f31400cfe7bcaf273e14ef3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/makefile.mk b/win32/makefile.mk index 2b57423..a786a61 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -3,7 +3,7 @@ # Supported compilers: # Visual C++ 2.0 thro 5.0 # Borland C++ 5.02 -# Mingw32 with gcc-2.8.1 or egcs-1.0.2 +# Mingw32 with gcc-2.8.1 or egcs-1.0.2 **experimental** # # This is set up to build a perl.exe that runs off a shared library # (perl.dll). Also makes individual DLLs for the XS extensions. @@ -18,7 +18,7 @@ # newly built perl. # INST_DRV *= c: -INST_TOP *= $(INST_DRV)\perl.gcc +INST_TOP *= $(INST_DRV)\perl # # Comment this out if you DON'T want your perl installation to be versioned. @@ -29,7 +29,7 @@ INST_TOP *= $(INST_DRV)\perl.gcc # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER *= \5.00468 +INST_VER *= \5.00551 # # uncomment to enable threads-capabilities @@ -41,40 +41,52 @@ INST_VER *= \5.00468 # #CCTYPE *= MSVC20 #CCTYPE *= MSVC -#CCTYPE *= BORLAND -CCTYPE *= GCC +CCTYPE *= BORLAND +#CCTYPE *= GCC # # uncomment next line if you want to use the perl object -# Currently, this cannot be enabled if you ask for threads above +# Currently, this cannot be enabled if you ask for threads above, or +# if you are using GCC or EGCS. # #OBJECT *= -DPERL_OBJECT # # uncomment next line if you want debug version of perl (big,slow) # -CFG *= Debug +#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 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 @@ -89,8 +101,8 @@ CFG *= Debug # set the install locations of the compiler include/libraries # #CCHOME *= f:\msdev\vc -#CCHOME *= C:\bc5 -CCHOME *= C:\mingw32 +CCHOME *= C:\bc5 +#CCHOME *= D:\packages\mingw32 CCINCDIR *= $(CCHOME)\include CCLIBDIR *= $(CCHOME)\lib @@ -140,7 +152,9 @@ USE_THREADS *= undef PROCESSOR_ARCHITECTURE *= x86 -.IF "$(USE_THREADS)" == "define" +.IF "$(OBJECT)" != "" +ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-object +.ELIF "$(USE_THREADS)" == "define" ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread .ELSE ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE) @@ -167,7 +181,7 @@ IMPLIB = implib -c # Options # RUNTIME = -D_RTLDLL -INCLUDES = -I.\include -I. -I.. -I$(CCINCDIR) +INCLUDES = -I$(COREDIR) -I.\include -I. -I.. -I$(CCINCDIR) #PCHFLAGS = -H -Hc -H=c:\temp\bcmoduls.pch DEFINES = -DWIN32 $(BUILDOPT) $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE @@ -185,7 +199,7 @@ OPTIMIZE = -O2 $(RUNTIME) LINK_DBG = .ENDIF -CFLAGS = -w -d -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \ +CFLAGS = -w -g0 -d -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \ $(PCHFLAGS) $(OPTIMIZE) LINK_FLAGS = $(LINK_DBG) -L$(CCLIBDIR) $(EXTRALIBDIRS:^"-L") OBJOUT_FLAG = -o @@ -194,8 +208,8 @@ LIBOUT_FLAG = .ELIF "$(CCTYPE)" == "GCC" -CC = gcc -LINK32 = gcc +CC = gcc +LINK32 = gcc LIB32 = ar rc IMPLIB = dlltool @@ -206,15 +220,15 @@ a = .a # Options # RUNTIME = -INCLUDES = -I.\include -I. -I.. +INCLUDES = -I$(COREDIR) -I.\include -I. -I.. DEFINES = -DWIN32 $(BUILDOPT) $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE SUBSYS = console CXX_FLAG = -xc++ LIBC = -lcrtdll -LIBFILES = $(CRYPT_LIB) -ladvapi32 -luser32 -lnetapi32 -lwsock32 -lmingw32 \ - -lgcc -lmoldname $(LIBC) -lkernel32 +LIBFILES = $(CRYPT_LIB) -ladvapi32 -luser32 -lnetapi32 -lwsock32 \ + -lmingw32 -lgcc -lmoldname $(LIBC) -lkernel32 .IF "$(CFG)" == "Debug" OPTIMIZE = -g -O2 $(RUNTIME) -DDEBUGGING @@ -241,9 +255,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 @@ -396,7 +410,11 @@ CFGH_TMPL = config_H.bc CFGSH_TMPL = config.gc CFGH_TMPL = config_H.gc -PERLIMPLIB *= ..\libperl$(a) +.IF "$(OBJECT)" == "-DPERL_OBJECT" +PERLIMPLIB = ..\libperlcore$(a) +.ELSE +PERLIMPLIB = ..\libperl$(a) +.ENDIF .ELSE @@ -411,15 +429,13 @@ PERL95EXE = ..\perl95.exe .IF "$(OBJECT)" == "-DPERL_OBJECT" PERLIMPLIB *= ..\perlcore$(a) PERLDLL = ..\perlcore.dll -CAPILIB = $(COREDIR)\PerlCAPI$(a) +CAPILIB = $(COREDIR)\perlCAPI$(a) .ELSE PERLIMPLIB *= ..\perl$(a) PERLDLL = ..\perl.dll CAPILIB = .ENDIF - - XCOPY = xcopy /f /r /i /d RCOPY = xcopy /f /r /i /e /d NOOP = @echo @@ -456,12 +472,9 @@ MICROCORE_SRC = \ ..\taint.c \ ..\toke.c \ ..\universal.c \ + ..\utf8.c \ ..\util.c -.IF "$(CRYPT_SRC)" != "" -MICROCORE_SRC += ..\$(CRYPT_SRC) -.ENDIF - .IF "$(PERL_MALLOC)" == "define" EXTRACORE_SRC += ..\malloc.c .ENDIF @@ -478,13 +491,17 @@ WIN32_SRC = \ WIN32_SRC += .\win32thread.c .ENDIF +.IF "$(CRYPT_SRC)" != "" +WIN32_SRC += .\$(CRYPT_SRC) +.ENDIF + PERL95_SRC = \ perl95.c \ win32mt.c \ win32sckmt.c .IF "$(CRYPT_SRC)" != "" -PERL95_SRC += ..\$(CRYPT_SRC) +PERL95_SRC += .\$(CRYPT_SRC) .ENDIF DLL_SRC = $(DYNALOADER).c @@ -529,7 +546,9 @@ CORE_NOCFG_H = \ ..\sv.h \ ..\thread.h \ ..\unixish.h \ + ..\utf8.h \ ..\util.h \ + ..\warning.h \ ..\XSUB.h \ ..\EXTERN.h \ ..\perlvars.h \ @@ -545,7 +564,7 @@ CORE_H = $(CORE_NOCFG_H) .\config.h MICROCORE_OBJ = $(MICROCORE_SRC:db:+$(o)) CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:db:+$(o)) WIN32_OBJ = $(WIN32_SRC:db:+$(o)) -MINICORE_OBJ = $(MINIDIR)\{$(MICROCORE_OBJ:f) miniperlmain$(o) $(EXTRACORE_SRC:db:+$(o))} +MINICORE_OBJ = $(MINIDIR)\{$(MICROCORE_OBJ:f) miniperlmain$(o) perlio$(o)} MINIWIN32_OBJ = $(MINIDIR)\{$(WIN32_OBJ:f)} MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ) PERL95_OBJ = $(PERL95_SRC:db:+$(o)) @@ -562,8 +581,14 @@ PERLEXE_OBJ += $(WIN32_OBJ) $(DLL_OBJ) PERL95_OBJ += DynaLoadmt$(o) .ENDIF -DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B +.IF "$(USE_SETARGV)" != "" +SETARGV_OBJ = setargv$(o) +.ENDIF + +DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ + Data/Dumper STATIC_EXT = DynaLoader +NONXS_EXT = Errno DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader SOCKET = $(EXTDIR)\Socket\Socket @@ -575,6 +600,9 @@ POSIX = $(EXTDIR)\POSIX\POSIX ATTRS = $(EXTDIR)\attrs\attrs THREAD = $(EXTDIR)\Thread\Thread B = $(EXTDIR)\B\B +RE = $(EXTDIR)\re\re +DUMPER = $(EXTDIR)\Data\Dumper\Dumper +ERRNO = $(EXTDIR)\Errno\Errno SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll @@ -585,6 +613,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 +RE_DLL = $(AUTODIR)\re\re.dll + +ERRNO_PM = $(LIBDIR)\Errno.pm EXTENSION_C = \ $(SOCKET).c \ @@ -595,6 +627,8 @@ EXTENSION_C = \ $(POSIX).c \ $(ATTRS).c \ $(THREAD).c \ + $(RE).c \ + $(DUMPER).c \ $(B).c EXTENSION_DLL = \ @@ -605,11 +639,17 @@ EXTENSION_DLL = \ $(IO_DLL) \ $(POSIX_DLL) \ $(ATTRS_DLL) \ + $(DUMPER_DLL) \ $(B_DLL) +EXTENSION_PM = \ + $(ERRNO_PM) + +# re.dll doesn't build with PERL_OBJECT yet .IF "$(OBJECT)" == "" EXTENSION_DLL += \ - $(THREAD_DLL) + $(THREAD_DLL) \ + $(RE_DLL) .ENDIF POD2HTML = $(PODDIR)\pod2html @@ -637,6 +677,7 @@ CFG_VARS = \ "_a=$(a)" "lib_ext=$(a)" \ "static_ext=$(STATIC_EXT)" \ "dynamic_ext=$(DYNAMIC_EXT)" \ + "nonxs_ext=$(NONXS_EXT)" \ "usethreads=$(USE_THREADS)" \ "LINK_FLAGS=$(LINK_FLAGS)" \ "optimize=$(OPTIMIZE)" @@ -646,7 +687,7 @@ CFG_VARS = \ # all : .\config.h $(GLOBEXE) $(MINIMOD) $(CONFIGPM) $(PERLEXE) $(PERL95EXE) \ - $(CAPILIB) $(X2P) $(EXTENSION_DLL) + $(CAPILIB) $(X2P) $(EXTENSION_DLL) $(EXTENSION_PM) $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c @@ -693,6 +734,7 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) $(XCOPY) ..\*.h $(COREDIR)\*.* $(XCOPY) *.h $(COREDIR)\*.* + $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* $(RCOPY) include $(COREDIR)\*.* $(MINIPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" \ || $(MAKE) $(MAKEMACROS) $(CONFIGPM) @@ -809,7 +851,7 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_OBJ) $(PERLIMPLIB) $(LIBFILES) .ELSE $(LINK32) -subsystem:console -out:$@ $(LINK_FLAGS) $(LIBFILES) \ - $(PERLEXE_OBJ) $(PERLIMPLIB) + $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) .ENDIF copy splittree.pl .. $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) @@ -838,7 +880,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 .ENDIF @@ -853,24 +896,24 @@ $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) .IF "$(OBJECT)" == "-DPERL_OBJECT" -PerlCAPI.cpp : $(MINIPERL) +perlCAPI.cpp : $(MINIPERL) $(MINIPERL) GenCAPI.pl $(COREDIR) -PerlCAPI$(o) : PerlCAPI.cpp +perlCAPI$(o) : perlCAPI.cpp .IF "$(CCTYPE)" == "BORLAND" - $(CC) $(CFLAGS_O) -c $(OBJOUT_FLAG)PerlCAPI$(o) PerlCAPI.cpp + $(CC) $(CFLAGS_O) -c $(OBJOUT_FLAG)perlCAPI$(o) perlCAPI.cpp .ELIF "$(CCTYPE)" == "GCC" - $(CC) $(CFLAGS_O) -c $(OBJOUT_FLAG)PerlCAPI$(o) PerlCAPI.cpp + $(CC) $(CFLAGS_O) -c $(OBJOUT_FLAG)perlCAPI$(o) perlCAPI.cpp .ELSE $(CC) $(CFLAGS_O) $(RUNTIME) -UPERLDLL -c \ - $(OBJOUT_FLAG)PerlCAPI$(o) PerlCAPI.cpp + $(OBJOUT_FLAG)perlCAPI$(o) perlCAPI.cpp .ENDIF -$(CAPILIB) : PerlCAPI.cpp PerlCAPI$(o) +$(CAPILIB) : perlCAPI.cpp perlCAPI$(o) .IF "$(CCTYPE)" == "BORLAND" - $(LIB32) $(LIBOUT_FLAG)$(CAPILIB) +PerlCAPI$(o) + $(LIB32) $(LIBOUT_FLAG)$(CAPILIB) +perlCAPI$(o) .ELSE - $(LIB32) $(LIBOUT_FLAG)$(CAPILIB) PerlCAPI$(o) + $(LIB32) $(LIBOUT_FLAG)$(CAPILIB) perlCAPI$(o) .ENDIF .ENDIF @@ -878,6 +921,16 @@ $(CAPILIB) : PerlCAPI.cpp PerlCAPI$(o) $(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 + cd $(EXTDIR)\Data\$(*B) && $(MAKE) + +$(RE_DLL): $(PERLEXE) $(RE).xs + cd $(EXTDIR)\$(*B) && \ + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + cd $(EXTDIR)\$(*B) && $(MAKE) + $(B_DLL): $(PERLEXE) $(B).xs cd $(EXTDIR)\$(*B) && \ ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl @@ -923,14 +976,19 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl cd $(EXTDIR)\$(*B) && $(MAKE) +$(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL + cd $(EXTDIR)\$(*B) && \ + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + cd $(EXTDIR)\$(*B) && $(MAKE) + doc: $(PERLEXE) - copy ..\README.win32 ..\pod\perlwin32.pod $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \ --podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\ --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse utils: $(PERLEXE) $(X2P) cd ..\utils && $(MAKE) PERL=$(MINIPERL) + copy ..\README.win32 ..\pod\perlwin32.pod cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters $(PERLEXE) $(PL2BAT) $(UTILS) @@ -938,17 +996,19 @@ distclean: clean -del /f $(MINIPERL) $(PERLEXE) $(PERL95EXE) $(PERLDLL) $(GLOBEXE) \ $(PERLIMPLIB) ..\miniperl$(a) $(MINIMOD) -del /f *.def *.map - -del /f $(EXTENSION_DLL) - -del /f $(EXTENSION_C) $(DYNALOADER).c + -del /f $(EXTENSION_DLL) $(EXTENSION_PM) + -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm -del /f $(EXTDIR)\DynaLoader\dl_win32.xs -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm -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 + -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm + -del /f $(LIBDIR)\Data\Dumper.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 && del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc pstruct *.bat @@ -1015,7 +1075,7 @@ clean : -@erase $(MINIPERL) -@erase perlglob$(o) -@erase perlmain$(o) - -@erase PerlCAPI.cpp + -@erase perlCAPI.cpp -@erase config.w32 -@erase /f config.h -@erase $(GLOBEXE)