This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
tweaks for Win32 VC vs GCC detection makefile code
authorDaniel Dragan <bulk88@hotmail.com>
Mon, 15 Aug 2016 21:00:18 +0000 (17:00 -0400)
committerTony Cook <tony@develop-help.com>
Wed, 24 Aug 2016 05:15:16 +0000 (15:15 +1000)
-fix issue that CCHOME depends on CCTYPE, which in auto detect mode is
 set after CCHOME so CCHOME uses uninit CCTYPE var
-also fix else vs .ELSE in makefile.mk

win32/GNUmakefile
win32/makefile.mk

index 64eb07d..628f4e5 100644 (file)
@@ -238,27 +238,7 @@ USE_LARGE_FILES    := define
 # so you may have to set CCHOME explicitly (spaces in the path name should
 # not be quoted)
 #
-ifeq ($(CCTYPE),GCC)
-CCHOME         := C:\MinGW
-else
-CCHOME         := $(MSVCDIR)
-endif
-
-#
-# Following sets $Config{incpath} and $Config{libpth}
-#
-
-ifneq ($(GCCCROSS),)
-CCINCDIR := $(CCHOME)\$(GCCCROSS)\include
-CCLIBDIR := $(CCHOME)\$(GCCCROSS)\lib
-CCDLLDIR := $(CCLIBDIR)
-ARCHPREFIX := $(GCCCROSS)-
-else
-CCINCDIR := $(CCHOME)\include
-CCLIBDIR := $(CCHOME)\lib
-CCDLLDIR := $(CCHOME)\bin
-ARCHPREFIX :=
-endif
+#CCHOME                := C:\MinGW
 
 #
 # Additional compiler flags can be specified here.
@@ -370,6 +350,29 @@ CCTYPE             := MSVC$(MSVCVER)0
 endif
 endif
 
+ifeq ($(CCHOME),)
+ifeq ($(CCTYPE),GCC)
+CCHOME         := C:\MinGW
+else
+CCHOME         := $(MSVCDIR)
+endif
+endif
+
+#
+# Following sets $Config{incpath} and $Config{libpth}
+#
+
+ifneq ($(GCCCROSS),)
+CCINCDIR := $(CCHOME)\$(GCCCROSS)\include
+CCLIBDIR := $(CCHOME)\$(GCCCROSS)\lib
+CCDLLDIR := $(CCLIBDIR)
+ARCHPREFIX := $(GCCCROSS)-
+else
+CCINCDIR := $(CCHOME)\include
+CCLIBDIR := $(CCHOME)\lib
+CCDLLDIR := $(CCHOME)\bin
+ARCHPREFIX :=
+endif
 
 ifeq ($(CCTYPE),GCC)
 ifeq ($(GCCTARGET),x86_64-w64-mingw32)
index 9fd4a81..87cf715 100644 (file)
@@ -233,11 +233,8 @@ USE_LARGE_FILES    *= define
 # so you may have to set CCHOME explicitly (spaces in the path name should
 # not be quoted)
 #
-.IF "$(CCTYPE)" == "GCC"
-CCHOME         *= C:\MinGW
-.ELSE
-CCHOME         *= $(MSVCDIR)
-.ENDIF
+
+#CCHOME                *= C:\MinGW
 
 #
 # uncomment this if you are using x86_64-w64-mingw32 cross-compiler
@@ -247,20 +244,6 @@ CCHOME             *= $(MSVCDIR)
 #GCCCROSS      *= define
 
 #
-# Following sets $Config{incpath} and $Config{libpth}
-#
-
-.IF "$(GCCCROSS)" == "define"
-CCINCDIR *= $(CCHOME)\x86_64-w64-mingw32\include
-CCLIBDIR *= $(CCHOME)\x86_64-w64-mingw32\lib
-CCDLLDIR *= $(CCLIBDIR)
-.ELSE
-CCINCDIR *= $(CCHOME)\include
-CCLIBDIR *= $(CCHOME)\lib
-CCDLLDIR *= $(CCHOME)\bin
-.ENDIF
-
-#
 # Additional compiler flags can be specified here.
 #
 BUILDOPT       *= $(BUILDOPTEXTRA)
@@ -319,6 +302,7 @@ USE_64_BIT_INT      *= undef
 USE_LONG_DOUBLE        *= undef
 USE_NO_REGISTRY        *= undef
 
+
 .IF "$(USE_IMP_SYS)" == "define"
 PERL_MALLOC    = undef
 .ENDIF
@@ -361,13 +345,36 @@ GCCTARGET *= $(shell gcc -dumpmachine 2>NUL & exit /b 0)
 #do we have a GCC?
 .IF "$(GCCTARGET)" != ""
 CCTYPE         = GCC
-else
+.ELSE
 #use var to capture 1st line only, not 8th token of lines 2 & 3 in cl.exe output
 MSVCVER                := $(shell (set MSVCVER=) & (for /f "tokens=8 delims=.^ " \
        %i in ('cl ^2^>^&1') do @if not defined MSVCVER set /A "MSVCVER=%i-6"))
 CCTYPE         := MSVC$(MSVCVER)0
-endif
-endif
+.ENDIF
+.ENDIF
+
+
+.IF "$(CCHOME)" == ""
+.IF "$(CCTYPE)" == "GCC"
+CCHOME         *= C:\MinGW
+.ELSE
+CCHOME         *= $(MSVCDIR)
+.ENDIF
+.ENDIF
+
+#
+# Following sets $Config{incpath} and $Config{libpth}
+#
+
+.IF "$(GCCCROSS)" == "define"
+CCINCDIR *= $(CCHOME)\x86_64-w64-mingw32\include
+CCLIBDIR *= $(CCHOME)\x86_64-w64-mingw32\lib
+CCDLLDIR *= $(CCLIBDIR)
+.ELSE
+CCINCDIR *= $(CCHOME)\include
+CCLIBDIR *= $(CCHOME)\lib
+CCDLLDIR *= $(CCHOME)\bin
+.ENDIF
 
 PROCESSOR_ARCHITECTURE *= x86