From 9d9ba429256e52941e39edce46b5edbd984cd960 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 3 Dec 2009 15:04:28 +0000 Subject: [PATCH] 2009-12-03 16:03 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk * utils/hbmk2/hbmk2.prg + Added autodetection of DWARF-2 build of mingw. This is mingw build is required for QT 4.6.0. * utils/hbmk2/hbmk2.prg ! Fixed to consider HB_CCPOSTFIX setting when trying to autodetect gcc/win, gcc/wce. --- harbour/ChangeLog | 9 +++ harbour/config/global.mk | 117 ++++++++++++++++++---------------- harbour/utils/hbmk2/hbmk2.prg | 9 ++- 3 files changed, 78 insertions(+), 57 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 5289be25fe..1a5ae842b0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,15 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-12-03 16:03 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * config/global.mk + * utils/hbmk2/hbmk2.prg + + Added autodetection of DWARF-2 build of mingw. + This is mingw build is required for QT 4.6.0. + + * utils/hbmk2/hbmk2.prg + ! Fixed to consider HB_CCPOSTFIX setting when trying to autodetect gcc/win, gcc/wce. + 2009-12-03 14:56 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * bin/hb-mkimp.bat - Deleted creation of QT implibs for mingw. Enough to use what's diff --git a/harbour/config/global.mk b/harbour/config/global.mk index 29d14ad8cd..9189be6183 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -713,88 +713,94 @@ ifeq ($(HB_COMPILER),) $(error ! Error: DJGPP cross-builds are only possible on 32-bit Windows hosts) endif else - HB_COMP_PATH := $(call find_in_path,gcc) + HB_COMP_PATH := $(call find_in_path,gcc-dw2) ifneq ($(HB_COMP_PATH),) HB_COMPILER := mingw + HB_CCPOSTFIX := -dw2 else - HB_COMP_PATH := $(call find_in_path,wpp386) + HB_COMP_PATH := $(call find_in_path,gcc) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := watcom - $(eval $(call detect_watcom_platform)) + HB_COMPILER := mingw else - HB_COMP_PATH := $(call find_in_path,clarm) + HB_COMP_PATH := $(call find_in_path,wpp386) ifneq ($(HB_COMP_PATH),) - HB_COMPILER_VER := 710 - HB_COMPILER := msvcarm - HB_PLATFORM := wce + HB_COMPILER := watcom + $(eval $(call detect_watcom_platform)) else - HB_COMP_PATH := $(call find_in_path,armasm) + HB_COMP_PATH := $(call find_in_path,clarm) ifneq ($(HB_COMP_PATH),) + HB_COMPILER_VER := 710 HB_COMPILER := msvcarm HB_PLATFORM := wce else - HB_COMP_PATH := $(call find_in_path,idis) + HB_COMP_PATH := $(call find_in_path,armasm) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := iccia64 + HB_COMPILER := msvcarm + HB_PLATFORM := wce else - HB_COMP_PATH := $(call find_in_path,icl) + HB_COMP_PATH := $(call find_in_path,idis) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := icc + HB_COMPILER := iccia64 else - HB_COMP_PATH := $(call find_in_path,ml64) + HB_COMP_PATH := $(call find_in_path,icl) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvc64 + HB_COMPILER := icc else - HB_COMP_PATH := $(call find_in_path,ias) + HB_COMP_PATH := $(call find_in_path,ml64) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvcia64 + HB_COMPILER := msvc64 else - HB_COMP_PATH := $(call find_in_path,cl) + HB_COMP_PATH := $(call find_in_path,ias) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := msvc - ifneq ($(findstring VC98,$(HB_COMP_PATH)),) - HB_COMPILER_VER := 600 - else ifneq ($(findstring 2003,$(HB_COMP_PATH)),) - HB_COMPILER_VER := 700 - else ifneq ($(findstring 8/,$(HB_COMP_PATH)),) - HB_COMPILER_VER := 800 - else ifneq ($(findstring 9.0,$(HB_COMP_PATH)),) - HB_COMPILER_VER := 900 - else ifneq ($(findstring 10.0,$(HB_COMP_PATH)),) - HB_COMPILER_VER := 1000 - endif + HB_COMPILER := msvcia64 else - HB_COMP_PATH := $(call find_in_path,bcc32) + HB_COMP_PATH := $(call find_in_path,cl) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := bcc + HB_COMPILER := msvc + ifneq ($(findstring VC98,$(HB_COMP_PATH)),) + HB_COMPILER_VER := 600 + else ifneq ($(findstring 2003,$(HB_COMP_PATH)),) + HB_COMPILER_VER := 700 + else ifneq ($(findstring 8/,$(HB_COMP_PATH)),) + HB_COMPILER_VER := 800 + else ifneq ($(findstring 9.0,$(HB_COMP_PATH)),) + HB_COMPILER_VER := 900 + else ifneq ($(findstring 10.0,$(HB_COMP_PATH)),) + HB_COMPILER_VER := 1000 + endif else - HB_COMP_PATH := $(call find_in_path,pocc) + HB_COMP_PATH := $(call find_in_path,bcc32) ifneq ($(HB_COMP_PATH),) - ifneq ($(call find_in_path_raw,coredll.lib,$(LIB)),) - HB_PLATFORM := wce - HB_COMPILER := poccarm - else - ifneq ($(call find_in_path_raw,dbgeng.lib,$(LIB)),) - HB_COMPILER := pocc64 - else - HB_COMPILER := pocc - endif - endif + HB_COMPILER := bcc else - HB_COMP_PATH := $(call find_in_path,xcc) + HB_COMP_PATH := $(call find_in_path,pocc) ifneq ($(HB_COMP_PATH),) - HB_COMPILER := xcc - else - HB_COMP_PATH := $(call find_in_path,i686-w64-mingw32-gcc) - ifneq ($(HB_COMP_PATH),) - HB_COMPILER := mingw64 - HB_CCPREFIX := i686-w64-mingw32- + ifneq ($(call find_in_path_raw,coredll.lib,$(LIB)),) + HB_PLATFORM := wce + HB_COMPILER := poccarm else - ifeq ($(HB_HOST_CPU),x86_64) - HB_COMP_PATH := $(call find_in_path,x86_64-w64-mingw32-gcc) - ifneq ($(HB_COMP_PATH),) - HB_COMPILER := mingw64 - HB_CCPREFIX := x86_64-w64-mingw32- + ifneq ($(call find_in_path_raw,dbgeng.lib,$(LIB)),) + HB_COMPILER := pocc64 + else + HB_COMPILER := pocc + endif + endif + else + HB_COMP_PATH := $(call find_in_path,xcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := xcc + else + HB_COMP_PATH := $(call find_in_path,i686-w64-mingw32-gcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := mingw64 + HB_CCPREFIX := i686-w64-mingw32- + else + ifeq ($(HB_HOST_CPU),x86_64) + HB_COMP_PATH := $(call find_in_path,x86_64-w64-mingw32-gcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := mingw64 + HB_CCPREFIX := x86_64-w64-mingw32- + endif endif endif endif @@ -903,6 +909,7 @@ ifeq ($(HB_COMPILER),) endif export HB_CCPATH export HB_CCPREFIX + export HB_CCPOSTFIX endif ifeq ($(HB_PLATFORM),) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index a680f60e6a..2a85fe4390 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -176,6 +176,7 @@ REQUEST hbmk_KEYW #define _COMPDET_bBlock 1 #define _COMPDET_cCOMP 2 #define _COMPDET_cCCPREFIX 3 /* optional */ +#define _COMPDET_cCCPOSTFIX 4 /* optional */ #define _COMPDETE_bBlock 1 #define _COMPDETE_cPLAT 2 @@ -1018,7 +1019,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) watcom also keeps a cl.exe in its binary dir. */ #if ! defined( __PLATFORM__UNIX ) aCOMPDET := { { {|| FindInPath( "cygstart" ) }, "cygwin" },; - { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingw" },; + { {|| FindInPath( "gcc-dw2" ) }, "mingw", "", "-dw2" },; + { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" + hbmk[ _HBMK_cCCPOSTFIX ] ) }, "mingw" },; { {|| iif( ! Empty( GetEnv( "WATCOM" ) ),; FindInPath( "wpp386" ),; NIL ) }, "watcom" },; @@ -1051,7 +1053,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) l_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "uuid", "ole32", "oleaut32", "mpr", "winmm", "mapi32", "imm32", "msimg32", "wininet" } CASE hbmk[ _HBMK_cPLAT ] == "wce" #if ! defined( __PLATFORM__UNIX ) - aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingwarm" },; + aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" + hbmk[ _HBMK_cCCPOSTFIX ] ) }, "mingwarm" },; { {|| FindInPath( "clarm" ) }, "msvcarm" },; { {|| FindInPath( "armasm" ) }, "msvcarm" },; { {|| FindInPath( "pocc" ) }, "poccarm" },; @@ -1257,6 +1259,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) IF Len( aCOMPDET[ tmp ] ) >= _COMPDET_cCCPREFIX hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET[ tmp ][ _COMPDET_cCCPREFIX ] ENDIF + IF Len( aCOMPDET[ tmp ] ) >= _COMPDET_cCCPOSTFIX + hbmk[ _HBMK_cCCPOSTFIX ] := aCOMPDET[ tmp ][ _COMPDET_cCCPOSTFIX ] + ENDIF EXIT ELSE IF hbmk[ _HBMK_lInfo ]