diff options
author | Tony Cook <tony@develop-help.com> | 2016-06-22 15:43:21 +1000 |
---|---|---|
committer | Tony Cook <tony@develop-help.com> | 2016-07-28 14:32:57 +1000 |
commit | 8657e86b4fb3c8cf23a0c23b7093dda2e79b462b (patch) | |
tree | 4d61b361f9f2f93e03f1c1741f0a34014463f088 /win32 | |
parent | f525b3584353df90f0280edfb22b296ae7fdaa65 (diff) | |
download | perl-8657e86b4fb3c8cf23a0c23b7093dda2e79b462b.tar.gz |
(perl #128438) build ppport.h instead of using a dummy file
The changes to parallelize win32 perl builds with dmake and gmake
assumed that ppport.h only provided macros and functions that are
already provided by the latest perl.
This turns out not to be the case, preventing the building of
a new Scalar-List-Utils with dmake and gmake.
I only briefly considered changing Scalar-List-Utils - the difference
in build systems is what lead to the failure, so properly build ppport.h
so that all Win32 builds have a full ppport.h just as POSIXish builds
do.
Diffstat (limited to 'win32')
-rw-r--r-- | win32/.gitignore | 1 | ||||
-rw-r--r-- | win32/GNUmakefile | 21 | ||||
-rw-r--r-- | win32/makefile.mk | 20 |
3 files changed, 23 insertions, 19 deletions
diff --git a/win32/.gitignore b/win32/.gitignore index 9719332ab2..56dee9f5f8 100644 --- a/win32/.gitignore +++ b/win32/.gitignore @@ -6,6 +6,7 @@ bin/*.bat html/ mini/ Extensions_static +.coreheaders dlutils.c perllibst.h perlmain.c diff --git a/win32/GNUmakefile b/win32/GNUmakefile index 45df09c18d..76fb57f878 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -998,9 +998,8 @@ UUDMAP_H = ..\uudmap.h BITCOUNT_H = ..\bitcount.h MG_DATA_H = ..\mg_data.h GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H) -#a stub ppport.h must be generated so building XS modules, .c->.obj wise, will -#work, so this target also represents creating the COREDIR and filling it -HAVE_COREDIR = $(COREDIR)\ppport.h + +HAVE_COREDIR = .coreheaders MICROCORE_OBJ = $(MICROCORE_SRC:.c=$(o)) CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=$(o)) @@ -1419,10 +1418,13 @@ else $(EMBED_EXE_MANI) endif -#This generates a stub ppport.h & creates & fills /lib/CORE to allow for XS -#building .c->.obj wise (linking is a different thing). This target is AKA -#$(HAVE_COREDIR). -$(COREDIR)\ppport.h : $(CORE_H) +.PHONY: MakePPPort + +MakePPPort : $(HAVEMINIPERL) $(CONFIGPM) + $(MINIPERL) -I..\lib ..\mkppport + +# also known as $(HAVE_COREDIR) +.coreheaders : $(CORE_H) $(XCOPY) *.h $(COREDIR)\\*.* $(RCOPY) include $(COREDIR)\\*.* $(XCOPY) ..\\*.h $(COREDIR)\\*.* @@ -1461,7 +1463,7 @@ endif # DynaLoader.pm, so this will have to do #most of deps of this target are in DYNALOADER and therefore omitted here -Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) +Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) MakePPPort $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic !Unicode/Normalize Extensions_normalize : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) $(UNIDATAFILES) @@ -1470,7 +1472,7 @@ Extensions_normalize : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) $(UNIDATAFILES) Extensions_reonly : $(PERLDEP) $(DYNALOADER) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re -Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) +Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) MakePPPort $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static @@ -1769,6 +1771,7 @@ _clean : -@erase $(PERLDLL) -@erase $(CORE_OBJ) -@erase $(GENUUDMAP) $(GENUUDMAP_OBJ) $(GENERATED_HEADERS) + -@erase .coreheaders -if exist $(MINIDIR) rmdir /s /q $(MINIDIR) -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1) -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2) diff --git a/win32/makefile.mk b/win32/makefile.mk index 629045eb82..391112b5da 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -985,9 +985,8 @@ UUDMAP_H = ..\uudmap.h BITCOUNT_H = ..\bitcount.h MG_DATA_H = ..\mg_data.h GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H) -#a stub ppport.h must be generated so building XS modules, .c->.obj wise, will -#work, so this target also represents creating the COREDIR and filling it -HAVE_COREDIR = $(COREDIR)\ppport.h + +HAVE_COREDIR = .\.coreheaders MICROCORE_OBJ = $(MICROCORE_SRC:db:+$(o)) CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:db:+$(o)) @@ -1387,10 +1386,11 @@ $(GENUUDMAP) $(GENERATED_HEADERS) .UPDATEALL : ..\mg_raw.h .ENDIF $(GENUUDMAP) $(GENERATED_HEADERS) -#This generates a stub ppport.h & creates & fills /lib/CORE to allow for XS -#building .c->.obj wise (linking is a different thing). This target is AKA -#$(HAVE_COREDIR). -$(COREDIR)\ppport.h : $(CORE_H) +MakePPPort : $(HAVEMINIPERL) $(CONFIGPM) + $(MINIPERL) -I..\lib ..\mkppport + +# also known as $(HAVE_COREDIR) +.\.coreheaders : $(CORE_H) $(XCOPY) *.h $(COREDIR)\*.* && $(RCOPY) include $(COREDIR)\*.* && $(XCOPY) ..\*.h $(COREDIR)\*.* rem. > $@ @@ -1427,7 +1427,7 @@ $(PERLEXESTATIC): $(PERLSTATICLIB) $(CONFIGPM) $(PERLEXEST_OBJ) $(PERLEXE_RES) # DynaLoader.pm, so this will have to do #most of deps of this target are in DYNALOADER and therefore omitted here -Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) +Extensions : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) MakePPPort $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic !Unicode/Normalize Extensions_normalize : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) $(UNIDATAFILES) @@ -1436,7 +1436,7 @@ Extensions_normalize : $(PERLDEP) $(DYNALOADER) $(GLOBEXE) $(UNIDATAFILES) Extensions_reonly : $(PERLDEP) $(DYNALOADER) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re -Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) +Extensions_static : ..\make_ext.pl list_static_libs.pl $(CONFIGPM) $(GLOBEXE) $(HAVE_COREDIR) MakePPPort $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static @@ -1644,7 +1644,6 @@ install : all installbare installhtml installbare : utils ..\pod\perltoc.pod $(PERLEXE) ..\installperl - attrib -r $(INST_COREDIR)\ppport.h && del $(INST_COREDIR)\ppport.h if exist $(WPERLEXE) $(XCOPY) $(WPERLEXE) $(INST_BIN)\*.* if exist $(PERLEXESTATIC) $(XCOPY) $(PERLEXESTATIC) $(INST_BIN)\*.* $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.* @@ -1735,6 +1734,7 @@ _clean : -@erase $(PERLDLL) -@erase $(CORE_OBJ) -@erase $(GENUUDMAP) $(GENUUDMAP_OBJ) $(GENERATED_HEADERS) + -@erase .coreheaders -if exist $(MINIDIR) rmdir /s /q $(MINIDIR) -if exist $(UNIDATADIR1) rmdir /s /q $(UNIDATADIR1) -if exist $(UNIDATADIR2) rmdir /s /q $(UNIDATADIR2) |