2009-02-24 13:27 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* bin/hb-mkdyn.bat
  * make_gnu.bat
  * make_gnu.sh
  * utils/hbmk2/hbmk2.prg
  * config/win/msvc.cf
  + config/win/msvc64.cf
    + Added separate HB_COMPILER for msvc x64 mode.
      This allows to keep both the 32 and 64-bit builds
      built in parallel.
      NOTE: This is only supported with GNU Make.

  * utils/hbmk2/hbmk2.prg
    + Added autodetection of msvc64.
    + Added pocc64 and msvc64 support in self-detection
      code.

  * bin/hbmk.bat
    + Added -n to stay compatible with former hbmk.bat.
This commit is contained in:
Viktor Szakats
2009-02-24 12:31:07 +00:00
parent 78c78aa2d6
commit 684c276e5a
8 changed files with 96 additions and 57 deletions

View File

@@ -8,6 +8,26 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-02-24 13:27 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-mkdyn.bat
* make_gnu.bat
* make_gnu.sh
* utils/hbmk2/hbmk2.prg
* config/win/msvc.cf
+ config/win/msvc64.cf
+ Added separate HB_COMPILER for msvc x64 mode.
This allows to keep both the 32 and 64-bit builds
built in parallel.
NOTE: This is only supported with GNU Make.
* utils/hbmk2/hbmk2.prg
+ Added autodetection of msvc64.
+ Added pocc64 and msvc64 support in self-detection
code.
* bin/hbmk.bat
+ Added -n to stay compatible with former hbmk.bat.
2009-02-24 10:20 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* ChangeLog
* Updates.

View File

@@ -22,7 +22,15 @@ set HB_DLL_LIBS=hbcommon hbpp hbrtl hbmacro hblang hbcpage hbpcre hbzlib hbexter
set HB_DLL_LIBS_ST=hbvm
set HB_DLL_LIBS_MT=hbvmmt
if not "%HB_COMPILER%" == "msvc" goto NOT_MSVC
if "%HB_COMPILER%" == "msvc" goto DO_MSVC
if "%HB_COMPILER%" == "msvc64" goto DO_MSVC
if "%HB_COMPILER%" == "bcc32" goto DO_BCC32
if "%HB_COMPILER%" == "owatcom" goto DO_OWATCOM
echo HB_COMPILER %HB_COMPILER% isn't supported.
goto END
:DO_MSVC
echo Making .dlls for %HB_COMPILER%...
@@ -107,7 +115,7 @@ rmdir _dll
goto END
:NOT_MSVC
:DO_OWATCOM
if not "%HB_COMPILER%" == "bcc32" goto NOT_BCC32
@@ -266,6 +274,4 @@ rmdir _dll
goto END
:NOT_OWATCOM
:END

View File

@@ -2,4 +2,4 @@
@rem $Id$
@rem
@"%~dp0hbmk2.exe" %*
@"%~dp0hbmk2.exe" -n %*

View File

@@ -4,50 +4,6 @@
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib
CC = cl.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -nologo -W4 -wd4127 -Gs
# -Zi
ifeq ($(HB_VISUALC_VER_PRE80),)
CFLAGS += -Ot2b1 -EHs-c-
else
CFLAGS += -Ogt2yb1p -GX- -G6 -YX
endif
LD = cl.exe
LD_OUT = -Fe
# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += /link /libpath:$(LIB_DIR)
else
LINKPATHS += /link /libpath:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))
# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif
# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif
LDFLAGS = $(LINKPATHS) user32.lib wsock32.lib advapi32.lib gdi32.lib
AR = lib.exe
ARFLAGS = $(HB_USER_AFLAGS)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/msvc.cf
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -0,0 +1,53 @@
#
# $Id$
#
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib
CC = cl.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -nologo -W4 -wd4127 -Gs
# -Zi
ifeq ($(HB_VISUALC_VER_PRE80),)
CFLAGS += -Ot2b1 -EHs-c-
else
CFLAGS += -Ogt2yb1p -GX- -G6 -YX
endif
LD = cl.exe
LD_OUT = -Fe
# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += /link /libpath:$(LIB_DIR)
else
LINKPATHS += /link /libpath:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))
# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif
# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif
LDFLAGS = $(LINKPATHS) user32.lib wsock32.lib advapi32.lib gdi32.lib
AR = lib.exe
ARFLAGS = $(HB_USER_AFLAGS)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -78,6 +78,7 @@ if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%/include
echo - rxsnt (EMX/RSXNT/Windows GNU C, Windows 32-bit)
echo - icc (IBM Visual Age C++, Windows 32-bit)
echo - msvc (Microsoft Visual C++, Windows 32-bit)
echo - msvc64 (Microsoft Visual C++, Windows 64-bit)
echo - When HB_ARCHITECTURE=linux
echo - gcc (GNU C, 32-bit)
echo - When HB_ARCHITECTURE=os2

View File

@@ -178,6 +178,7 @@ if [ -z "$HB_ARCHITECTURE" ] || [ -z "$HB_COMPILER" ]; then
echo " - rsxnt (EMX/RSXNT/Windows GNU C, Windows 32-bit)"
echo " - icc (IBM Visual Age C++, Windows 32-bit)"
echo " - msvc (Microsoft Visual C++, Windows 32-bit)"
echo " - msvc64 (Microsoft Visual C++, Windows 64-bit)"
echo " - When HB_ARCHITECTURE=linux"
echo " - gcc (GNU C, 32-bit)"
echo " - When HB_ARCHITECTURE=os2"

View File

@@ -333,6 +333,7 @@ FUNCTION Main( ... )
should be automatically extracted from a comp/arch matrix. */
SWITCH t_cCOMP
CASE "msvc"
CASE "msvc64"
CASE "bcc32"
CASE "xcc"
CASE "pocc"
@@ -410,6 +411,7 @@ FUNCTION Main( ... )
owatcom also keeps a cl.exe in it's binary dir. */
aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "mingw" },; /* TODO: Add full support for g++ */
{ {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */
{ {|| FindInPath( "ml64" ) != NIL }, "msvc64" },;
{ {|| FindInPath( "cl" ) != NIL }, "msvc" },;
{ {|| FindInPath( "bcc32" ) != NIL }, "bcc32" },;
{ {|| FindInPath( "pocc" ) != NIL }, "pocc" },;
@@ -417,7 +419,7 @@ FUNCTION Main( ... )
{ {|| FindInPath( "icc" ) != NIL }, "icc" },;
{ {|| FindInPath( "xcc" ) != NIL }, "xcc" } }
/* TODO: "mingwce", "msvcce", "poccce" */
aCOMPSUP := { "gcc", "mingw", "msvc", "bcc32", "owatcom", "pocc", "pocc64", "rsxnt", "xcc", "dmc", "icc" }
aCOMPSUP := { "gcc", "mingw", "msvc", "msvc64", "bcc32", "owatcom", "pocc", "pocc64", "rsxnt", "xcc", "dmc", "icc" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtwin", "gtwvt", "gtgui" }
t_cGTDEFAULT := "gtwin"
@@ -448,7 +450,7 @@ FUNCTION Main( ... )
/* Which compiler was used to compile ourselves? */
cSelfCOMP := SelfCOMP()
/* Skip it for msvc, as it creates problems for other compilers. */
IF !( cSelfCOMP $ "msvc" )
IF !( cSelfCOMP $ "msvc|msvc64" )
/* Look for this compiler first */
FOR tmp := 1 TO Len( aCOMPDET )
IF aCOMPDET[ tmp ][ 2 ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ 1 ] )
@@ -1322,7 +1324,7 @@ FUNCTION Main( ... )
"hbmainwin",;
"hbcommon" }
CASE t_cARCH == "win" .AND. t_cCOMP == "msvc"
CASE t_cARCH == "win" .AND. t_cCOMP $ "msvc|msvc64"
IF s_lDEBUG
AAdd( s_aOPTC, "-MTd -Zi" )
ENDIF
@@ -1433,7 +1435,7 @@ FUNCTION Main( ... )
/* NOTE: This has to be kept synced with Harbour HB_IMPORT values. */
DO CASE
CASE !( t_cARCH == "win" ) .OR. t_cCOMP $ "msvc|rsxnt"
CASE !( t_cARCH == "win" ) .OR. t_cCOMP $ "msvc|msvc64|rsxnt"
/* NOTE: MSVC gives the warning:
"LNK4217: locally defined symbol ... imported in function ..."
if using 'dllimport'. [vszakats] */
@@ -1760,7 +1762,7 @@ STATIC FUNCTION SelfCOMP()
LOCAL cCompiler := hb_Compiler()
/* Order is significant */
IF "Microsoft Visual C" $ cCompiler ; RETURN "msvc"
IF "Microsoft Visual C" $ cCompiler ; RETURN iif( "(64-bit)" $ cCompiler, "msvc64", "msvc" )
ELSEIF "Borland" $ cCompiler ; RETURN "bcc32"
ELSEIF "CodeGear" $ cCompiler ; RETURN "bcc32"
ELSEIF "DJGPP" $ cCompiler ; RETURN "djgpp"
@@ -1769,7 +1771,7 @@ STATIC FUNCTION SelfCOMP()
ELSEIF "GNU C" $ cCompiler ; RETURN "gcc"
ELSEIF "Watcom C++" $ cCompiler ; RETURN "owatcom"
ELSEIF "Watcom C" $ cCompiler ; RETURN "owatcom"
ELSEIF "Pelles ISO C" $ cCompiler ; RETURN "pocc"
ELSEIF "Pelles ISO C" $ cCompiler ; RETURN iif( "(64-bit)" $ cCompiler, "pocc64", "pocc" )
ELSEIF "Digital Mars" $ cCompiler ; RETURN "dmc"
ELSEIF "(XCC)" $ cCompiler ; RETURN "xcc"
ENDIF
@@ -2581,7 +2583,7 @@ STATIC PROCEDURE ShowHelp( lLong )
" - Supported <comp> values for each supported <arch> value:" ,;
" linux : gcc, gpp, owatcom, mingw, mingwce" ,;
" darwin : gcc" ,;
" win : gcc, mingw, msvc, bcc32, owatcom, pocc, pocc64," ,;
" win : gcc, mingw, msvc, msvc64, bcc32, owatcom, pocc, pocc64," ,;
" dmc, rsxnt, xcc, icc" ,; /* poccce, mingwce, msvcce */
" os2 : gcc, owatcom, icc" ,;
" dos : gcc, djgpp, owatcom, rsx32" ,;