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:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
@rem $Id$
|
||||
@rem
|
||||
|
||||
@"%~dp0hbmk2.exe" %*
|
||||
@"%~dp0hbmk2.exe" -n %*
|
||||
|
||||
@@ -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
|
||||
|
||||
53
harbour/config/win/msvc64.cf
Normal file
53
harbour/config/win/msvc64.cf
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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" ,;
|
||||
|
||||
Reference in New Issue
Block a user