X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fmakefile.mk;h=249c0aad9858c964d3b65b7bb1e6483ec4fca9c1;hb=ff95b63ed9e9faabe3ba15c12a39c2c97a712ee9;hp=87c0e6f9dbae4a2467065d4c8a3f1b15f6c7773d;hpb=10609e9a342de3bae37d4ac9f8d8bc93c0a4e896;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/makefile.mk b/win32/makefile.mk index 87c0e6f..249c0aa 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. @@ -29,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 *= \~VERSION~ +INST_VER *= \5.005 # # uncomment to enable threads-capabilities @@ -46,7 +46,8 @@ CCTYPE *= BORLAND # # 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 @@ -56,16 +57,26 @@ CCTYPE *= BORLAND #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. +# You will need to download it from: http://www.activestate.com/ +# 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 @@ -140,7 +151,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 +180,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 @@ -194,8 +207,8 @@ LIBOUT_FLAG = .ELIF "$(CCTYPE)" == "GCC" -CC = gcc -pipe -LINK32 = gcc -pipe +CC = gcc +LINK32 = gcc LIB32 = ar rc IMPLIB = dlltool @@ -206,15 +219,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 +254,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 +409,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,7 +428,7 @@ 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 @@ -456,10 +473,6 @@ MICROCORE_SRC = \ ..\universal.c \ ..\util.c -.IF "$(CRYPT_SRC)" != "" -MICROCORE_SRC += ..\$(CRYPT_SRC) -.ENDIF - .IF "$(PERL_MALLOC)" == "define" EXTRACORE_SRC += ..\malloc.c .ENDIF @@ -476,13 +489,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 @@ -560,7 +577,12 @@ 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 @@ -574,6 +596,8 @@ 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 @@ -585,6 +609,8 @@ 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 @@ -597,6 +623,8 @@ EXTENSION_C = \ $(POSIX).c \ $(ATTRS).c \ $(THREAD).c \ + $(RE).c \ + $(DUMPER).c \ $(B).c EXTENSION_DLL = \ @@ -607,14 +635,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 @@ -699,6 +730,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) @@ -815,7 +847,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) @@ -844,7 +876,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 @@ -859,24 +892,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 @@ -884,6 +917,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 @@ -935,13 +978,13 @@ $(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL 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) @@ -956,10 +999,12 @@ distclean: clean -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 @@ -1026,7 +1071,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)