X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fmakefile.mk;h=8e2635131667c3707bbd2f76ed506849ed438327;hb=924b3ec4f489a98ec4753478b6e6dcb35be8bf12;hp=c83f4986f084b60c1074673439852989611357be;hpb=d07c2202867c84a305417e42e522ca39d055c62a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/makefile.mk b/win32/makefile.mk index c83f498..8e26351 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -17,7 +17,7 @@ INST_TOP *= $(INST_DRV)\perl5004.5x # # uncomment to enable threads-capabilities -#USE_THREADS *= -DUSE_THREADS +#USE_THREADS *= define # # uncomment one @@ -44,7 +44,7 @@ CCTYPE *= BORLAND # set the install locations of the compiler include/libraries #CCHOME *= f:\msdev\vc CCHOME *= C:\bc5 -#CCHOME *= C:\mingw32 +#CCHOME *= D:\packages\mingw32 CCINCDIR *= $(CCHOME)\include CCLIBDIR *= $(CCHOME)\lib @@ -67,19 +67,22 @@ D_CRYPT=define CRYPT_FLAG=-DHAVE_DES_FCRYPT .ENDIF -BUILDOPT *= $(USE_THREADS) -#BUILDOPT *= $(USE_THREADS) -DMULTIPLICITY -#BUILDOPT *= $(USE_THREADS) -DPERL_GLOBAL_STRUCT -DMULTIPLICITY +#BUILDOPT *= -DMULTIPLICITY +#BUILDOPT *= -DPERL_GLOBAL_STRUCT -DMULTIPLICITY # -DUSE_PERLIO -D__STDC__=1 -DUSE_SFIO -DI_SFIO -I\sfio97\include +.IF "$(USE_THREADS)" == "" +USE_THREADS = undef +.ENDIF + .IMPORT .IGNORE : PROCESSOR_ARCHITECTURE PROCESSOR_ARCHITECTURE *= x86 -.IF "$(USE_THREADS)" == "" -ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE) -.ELSE +.IF "$(USE_THREADS)" == "define" ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread +.ELSE +ARCHNAME = MSWin32-$(PROCESSOR_ARCHITECTURE) .ENDIF ARCHDIR = ..\lib\$(ARCHNAME) @@ -128,7 +131,7 @@ EXEOUT_FLAG = -e .ELIF "$(CCTYPE)" == "GCC" CC = gcc -pipe -LINK32 = gcc +LINK32 = gcc -pipe LIB32 = ar IMPLIB = dlltool @@ -195,9 +198,9 @@ OPTIMIZE = -Od $(RUNTIME)d -Z7 -D_DEBUG -DDEBUGGING LINK_DBG = -debug -pdb:none .ELSE .IF "$(CCTYPE)" == "MSVC20" -OPTIMIZE = -Od $(RUNTIME) -DNDEBUG +OPTIMIZE = -O1 $(RUNTIME) -DNDEBUG .ELSE -OPTIMIZE = -Od $(RUNTIME) -DNDEBUG +OPTIMIZE = -O1 $(RUNTIME) -DNDEBUG .ENDIF LINK_DBG = -release .ENDIF @@ -227,7 +230,7 @@ o *= .obj .SUFFIXES : .c $(o) .dll .lib .exe .a .c$(o): - $(CC) -c -I$(<:d) $(CFLAGS) $(OBJOUT_FLAG)$@ $< + $(CC) -c $(null,$(<:d) $(NULL) -I$(<:d)) $(CFLAGS) $(OBJOUT_FLAG)$@ $< .y.c: $(NOOP) @@ -280,7 +283,6 @@ CFGH_TMPL = config_H.gc .ELSE -MAKE = nmake -nologo CFGSH_TMPL = config.vc CFGH_TMPL = config_H.vc PERL95EXE=..\perl95.exe @@ -302,6 +304,7 @@ CRYPT_OBJ=$(CRYPT_SRC:db:+$(o)) XSUBPP=..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes CORE_C= ..\av.c \ + ..\byterun.c \ ..\deb.c \ ..\doio.c \ ..\doop.c \ @@ -331,6 +334,7 @@ CORE_C= ..\av.c \ $(CRYPT_SRC) CORE_OBJ= ..\av$(o) \ + ..\byterun$(o) \ ..\deb$(o) \ ..\doio$(o) \ ..\doop$(o) \ @@ -382,6 +386,8 @@ X2P_OBJ = ..\x2p\a2p$(o) \ ..\x2p\walk$(o) CORE_H = ..\av.h \ + ..\byterun.h \ + ..\bytecode.h \ ..\cop.h \ ..\cv.h \ ..\dosish.h \ @@ -418,7 +424,7 @@ CORE_H = ..\av.h \ .\include\sys\socket.h \ .\win32.h -DYNAMIC_EXT=Socket IO Fcntl Opcode SDBM_File attrs Thread +DYNAMIC_EXT=Socket IO Fcntl Opcode SDBM_File attrs Thread B STATIC_EXT=DynaLoader DYNALOADER=$(EXTDIR)\DynaLoader\DynaLoader @@ -429,6 +435,7 @@ SDBM_FILE=$(EXTDIR)\SDBM_File\SDBM_File IO=$(EXTDIR)\IO\IO ATTRS=$(EXTDIR)\attrs\attrs THREAD=$(EXTDIR)\Thread\Thread +B=$(EXTDIR)\B\B SOCKET_DLL=..\lib\auto\Socket\Socket.dll FCNTL_DLL=..\lib\auto\Fcntl\Fcntl.dll @@ -437,6 +444,7 @@ SDBM_FILE_DLL=..\lib\auto\SDBM_File\SDBM_File.dll IO_DLL=..\lib\auto\IO\IO.dll ATTRS_DLL=..\lib\auto\attrs\attrs.dll THREAD_DLL=..\lib\auto\Thread\Thread.dll +B_DLL=..\lib\auto\B\B.dll STATICLINKMODULES=DynaLoader DYNALOADMODULES= \ @@ -446,19 +454,37 @@ DYNALOADMODULES= \ $(SDBM_FILE_DLL)\ $(IO_DLL) \ $(ATTRS_DLL) \ - $(THREAD_DLL) + $(THREAD_DLL) \ + $(B_DLL) POD2HTML=$(PODDIR)\pod2html POD2MAN=$(PODDIR)\pod2man POD2LATEX=$(PODDIR)\pod2latex POD2TEXT=$(PODDIR)\pod2text +CFG_VARS= "INST_DRV=$(INST_DRV)" \ + "INST_TOP=$(INST_TOP)" \ + "archname=$(ARCHNAME)" \ + "cc=$(CC)" \ + "ccflags=$(OPTIMIZE) $(DEFINES)" \ + "cf_email=$(EMAIL)" \ + "d_crypt=$(D_CRYPT)" \ + "libs=$(LIBFILES:f)" \ + "incpath=$(CCINCDIR)" \ + "libpth=$(strip $(CCLIBDIR) $(LIBFILES:d))" \ + "libc=$(LIBC)" \ + "static_ext=$(STATIC_EXT)" \ + "dynamic_ext=$(DYNAMIC_EXT)" \ + "usethreads=$(USE_THREADS)" \ + "LINK_FLAGS=$(LINK_FLAGS)" \ + "optimize=$(OPTIMIZE)" + # # Top targets # all: $(PERLEXE) $(PERL95EXE) $(GLOBEXE) $(DYNALOADMODULES) $(MINIMOD) \ - $(X2P) $(GLOBBAT) + $(X2P) $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c @@ -476,9 +502,6 @@ $(GLOBEXE): perlglob$(o) perlglob$(o) setargv$(o) .ENDIF -$(GLOBBAT) : ..\lib\File\DosGlob.pm $(MINIPERL) - $(MINIPERL) $(PL2BAT) - < ..\lib\File\DosGlob.pm > $(GLOBBAT) - perlglob$(o) : perlglob.c ..\miniperlmain$(o) : ..\miniperlmain.c $(CORE_H) @@ -491,23 +514,19 @@ config.w32 : $(CFGSH_TMPL) copy $(CFGH_TMPL) config.h ..\config.sh : config.w32 $(MINIPERL) config_sh.PL - $(MINIPERL) -I..\lib config_sh.PL \ - "INST_DRV=$(INST_DRV)" \ - "INST_TOP=$(INST_TOP)" \ - "archname=$(ARCHNAME)" \ - "cc=$(CC)" \ - "ccflags=$(OPTIMIZE) $(DEFINES)" \ - "cf_email=$(EMAIL)" \ - "d_crypt=$(D_CRYPT)" \ - "libs=$(LIBFILES:f)" \ - "incpath=$(CCINCDIR)" \ - "libpth=$(strip $(CCLIBDIR) $(LIBFILES:d))" \ - "libc=$(LIBC)" \ - "static_ext=$(STATIC_EXT)" \ - "dynamic_ext=$(DYNAMIC_EXT)" \ - "ldflags=$(LINK_FLAGS)" \ - "optimize=$(OPTIMIZE)" \ - config.w32 > ..\config.sh + $(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) config.w32 > ..\config.sh + +# this target is for when changes to the main config.sh happen +# edit config.{b,v,g}c and make this target once for each supported +# compiler (e.g. `dmake CCTYPE=BORLAND regen_config_h`) +regen_config_h: + perl config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh + -cd .. && del /f perl.exe + cd .. && perl configpm + -del /f $(CFGH_TMPL) + -mkdir ..\lib\CORE + -perl -I..\lib config_h.PL + rename config.h $(CFGH_TMPL) $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl cd .. && miniperl configpm @@ -555,7 +574,7 @@ $(PERLDLL): perldll.def $(CORE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) perldll.def\n) $(IMPLIB) $*.lib $@ .ELIF "$(CCTYPE)" == "GCC" - $(LINK32) -dll -o $@ -Wl,--base-file -Wl,perl.base $(LINK_FLAGS) \ + $(LINK32) -mdll -o $@ -Wl,--base-file -Wl,perl.base $(LINK_FLAGS) \ $(mktmp $(LKPRE) $(CORE_OBJ:s,\,\\) $(WIN32_OBJ:s,\,\\) \ $(DLL_OBJ:s,\,\\) $(LIBFILES) $(LKPOST)) dlltool --output-lib $(PERLIMPLIB) \ @@ -563,7 +582,7 @@ $(PERLDLL): perldll.def $(CORE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) --def perldll.def \ --base-file perl.base \ --output-exp perl.exp - $(LINK32) -dll -o $@ $(LINK_FLAGS) \ + $(LINK32) -mdll -o $@ $(LINK_FLAGS) \ $(mktmp $(LKPRE) $(CORE_OBJ:s,\,\\) $(WIN32_OBJ:s,\,\\) \ $(DLL_OBJ:s,\,\\) $(LIBFILES) perl.exp $(LKPOST)) .ELSE @@ -646,6 +665,11 @@ $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs +$(B_DLL): $(PERLEXE) $(B).xs + cd $(EXTDIR)\$(*B) && \ + ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl + cd $(EXTDIR)\$(*B) && $(MAKE) + $(THREAD_DLL): $(PERLEXE) $(THREAD).xs cd $(EXTDIR)\$(*B) && \ ..\..\miniperl -I..\..\lib Makefile.PL INSTALLDIRS=perl @@ -696,16 +720,16 @@ utils: $(PERLEXE) pl2pm c2ph h2xs perldoc pstruct $(XCOPY) ..\utils\*.bat bin\*.* $(PERLEXE) -I..\lib $(PL2BAT) bin\network.pl bin\www.pl bin\runperl.pl \ - bin\pl2bat.pl + bin\pl2bat.pl bin\perlglob.pl distclean: clean -del /f $(MINIPERL) $(PERLEXE) $(PERL95EXE) $(PERLDLL) $(GLOBEXE) \ $(PERLIMPLIB) ..\miniperl.lib $(MINIMOD) -del /f *.def *.map -del /f $(SOCKET_DLL) $(IO_DLL) $(SDBM_FILE_DLL) $(FCNTL_DLL) \ - $(OPCODE_DLL) $(ATTRS_DLL) $(THREAD_DLL) + $(OPCODE_DLL) $(ATTRS_DLL) $(THREAD_DLL) $(B_DLL) -del /f $(SOCKET).c $(IO).c $(SDBM_FILE).c $(FCNTL).c $(OPCODE).c \ - $(DYNALOADER).c $(ATTRS).c $(THREAD).c + $(DYNALOADER).c $(ATTRS).c $(THREAD).c $(B).c -del /f $(PODDIR)\*.html -del /f $(PODDIR)\*.bat -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new @@ -732,7 +756,7 @@ inst_lib : $(CONFIGPM) $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto" $(RCOPY) ..\lib $(INST_LIB)\*.* -minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) +minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils $(XCOPY) $(MINIPERL) ..\t\perl.exe .IF "$(CCTYPE)" == "BORLAND" $(XCOPY) $(GLOBBAT) ..\t\$(NULL) @@ -744,7 +768,7 @@ minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) cd ..\t && \ $(MINIPERL) -I..\lib test base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t -test-prep : all +test-prep : all utils $(XCOPY) $(PERLEXE) ..\t\$(NULL) $(XCOPY) $(PERLDLL) ..\t\$(NULL) .IF "$(CCTYPE)" == "BORLAND"