2012-12-16 03:07 UTC+0100 Viktor Szakats (harbour syenar.net)
+ config/win/bcc64.mk
* config/global.mk
* config/postinst.hb
* config/win/bcc.mk
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* README.txt
* utils/hbmk2/hbmk2.prg
+ added rough cut support for bcc64 to the two make systems.
Untested. Autodetection and some 32-bit specific tricks
not implemented.
bcc64 is based on clang and it's only a bcc "emulation"
layer on top of it. At least it will be a good compiler
now, but it's important to see that it's internally
a clang compiler, so its behavior and raw options are
gcc-like.
Changes are based on xhb patches and bcc64 online docs:
http://docwiki.embarcadero.com/RADStudio/XE3/en/Command_Line_Utilities_Index
This commit is contained in:
@@ -10,6 +10,26 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2012-12-16 03:07 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
+ config/win/bcc64.mk
|
||||
* config/global.mk
|
||||
* config/postinst.hb
|
||||
* config/win/bcc.mk
|
||||
* package/winuni/mpkg_win_uni.bat
|
||||
* package/winuni/mpkg_win_uni.nsi
|
||||
* README.txt
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ added rough cut support for bcc64 to the two make systems.
|
||||
Untested. Autodetection and some 32-bit specific tricks
|
||||
not implemented.
|
||||
bcc64 is based on clang and it's only a bcc "emulation"
|
||||
layer on top of it. At least it will be a good compiler
|
||||
now, but it's important to see that it's internally
|
||||
a clang compiler, so its behavior and raw options are
|
||||
gcc-like.
|
||||
Changes are based on xhb patches and bcc64 online docs:
|
||||
http://docwiki.embarcadero.com/RADStudio/XE3/en/Command_Line_Utilities_Index
|
||||
|
||||
2012-12-16 00:35 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* include/hbcomp.h
|
||||
* include/hbcompdf.h
|
||||
|
||||
@@ -656,6 +656,7 @@ TABLE OF CONTENT
|
||||
|
||||
watcom - Open Watcom C/C++
|
||||
bcc - Borland/CodeGear/Embarcadero C++ 4.x and above
|
||||
bcc64 - Embarcadero C++ 6.5 and above
|
||||
icc - Intel(R) C/C++
|
||||
iccia64 - Intel(R) C/C++ IA-64 (Itanium)
|
||||
pocc - Pelles C 4.5 and above
|
||||
@@ -1490,6 +1491,7 @@ TABLE OF CONTENT
|
||||
| host<br />plat | target<br />plat/comp | target<br />cpu
|
||||
:---- | :------------- | :-------------------- | :---------------------------------------
|
||||
| win | win/bcc | x86
|
||||
| win | win/bcc64 | x86-64
|
||||
| win | win/gcc | x86
|
||||
| win | win/global | x86
|
||||
| win | win/icc | x86
|
||||
@@ -1542,6 +1544,7 @@ TABLE OF CONTENT
|
||||
x | linux | win/mingw64 | x86-64
|
||||
x | linux | win/watcom | x86
|
||||
x | linux | win/bcc | x86 (requires WINE)
|
||||
x | linux | win/bcc64 | x86-64 (requires WINE)
|
||||
x | linux | os2/watcom | x86
|
||||
x | linux | dos/watcom | x86
|
||||
x | linux | dos/djgpp | x86
|
||||
|
||||
@@ -499,7 +499,7 @@ ifeq ($(HB_PLATFORM),)
|
||||
ifneq ($(filter $(HB_COMPILER),msvcarm msvcmips msvcsh mingwarm poccarm),)
|
||||
HB_PLATFORM := wce
|
||||
else
|
||||
ifneq ($(filter $(HB_COMPILER),mingw mingw64 msvc msvc64 msvcia64 bcc xcc pocc pocc64),)
|
||||
ifneq ($(filter $(HB_COMPILER),mingw mingw64 msvc msvc64 msvcia64 bcc bcc64 xcc pocc pocc64),)
|
||||
HB_PLATFORM := win
|
||||
endif
|
||||
endif
|
||||
@@ -749,6 +749,7 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
# TODO: Add bcc64 autodetection
|
||||
HB_COMP_PATH := $(call find_in_path_raw,bcc32.exe)
|
||||
ifneq ($(HB_COMP_PATH),)
|
||||
HB_COMPILER := bcc
|
||||
|
||||
@@ -601,6 +601,8 @@ STATIC FUNCTION __hb_extern_get_list( cInputName )
|
||||
cCommand := "wlib {I}"
|
||||
CASE GetEnv( "HB_COMPILER" ) == "bcc"
|
||||
cCommand := "tlib {I}, {T}"
|
||||
CASE GetEnv( "HB_COMPILER" ) == "bcc64"
|
||||
cCommand := "tlib64 {I}, {T}"
|
||||
ENDCASE
|
||||
|
||||
IF ! Empty( cCommand ) .AND. ;
|
||||
|
||||
@@ -4,13 +4,23 @@
|
||||
|
||||
# GNU Make file for Borland/CodeGear/Embarcadero C/C++ 32-bit (4.x-)
|
||||
|
||||
OBJ_EXT := .obj
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
OBJ_EXT := .o
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .a
|
||||
else
|
||||
OBJ_EXT := .obj
|
||||
LIB_PREF :=
|
||||
LIB_EXT := .lib
|
||||
endif
|
||||
|
||||
HB_DYN_COPT := -DHB_DYNLIB
|
||||
|
||||
CC := bcc32.exe
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
CC := bcc64.exe
|
||||
else
|
||||
CC := bcc32.exe
|
||||
endif
|
||||
CC_IN := -c
|
||||
CC_OUT := -o
|
||||
|
||||
@@ -25,9 +35,13 @@ else
|
||||
endif
|
||||
|
||||
ifneq ($(HB_BUILD_OPTIM),no)
|
||||
# for some reason -6 generates the exact same code as -4 with both 5.5 and 5.8.
|
||||
# -5 seems to be significantly slower than both. [vszakats]
|
||||
CFLAGS += -d -6 -O2 -OS -Ov -Oi -Oc
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
CFLAGS += -d -O2 -OS -Ov -Oc
|
||||
else
|
||||
# for some reason -6 generates the exact same code as -4 with both 5.5 and 5.8.
|
||||
# -5 seems to be significantly slower than both. [vszakats]
|
||||
CFLAGS += -d -O2 -OS -Ov -Oc -Oi -6
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HB_BUILD_MODE),cpp)
|
||||
@@ -35,7 +49,11 @@ ifeq ($(HB_BUILD_MODE),cpp)
|
||||
endif
|
||||
|
||||
ifeq ($(HB_BUILD_DEBUG),yes)
|
||||
CFLAGS += -y -v
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
CFLAGS += -g
|
||||
else
|
||||
CFLAGS += -v -y
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(HB_HOST_PLAT_UNIX),)
|
||||
@@ -71,14 +89,26 @@ RC := brcc32.exe
|
||||
RC_OUT := -fo
|
||||
RCFLAGS += -I. -I$(HB_HOST_INC)
|
||||
|
||||
LD := ilink32.exe
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
LD := ilink64.exe
|
||||
else
|
||||
LD := ilink32.exe
|
||||
endif
|
||||
LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),$(subst /,$(BACKSLASH),-L"$(dir)"))
|
||||
LDFLAGS += $(LIBPATHS) -Gn -Tpe
|
||||
LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x32.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw32mt import32,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP)
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x64.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw64mt import64,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP)
|
||||
else
|
||||
LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x32.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw32mt import32,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP)
|
||||
endif
|
||||
|
||||
LDLIBS := $(strip $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS))
|
||||
|
||||
AR := tlib.exe
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
AR := tlib64.exe
|
||||
else
|
||||
AR := tlib.exe
|
||||
endif
|
||||
ARFLAGS += /P128
|
||||
AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,$(BACKSLASH),$(LIB_DIR)/$@)" $(foreach file,$(?F),-+$(file))
|
||||
|
||||
@@ -113,11 +143,19 @@ ifneq ($(HB_SHELL),sh)
|
||||
endif
|
||||
endif
|
||||
|
||||
DY := ilink32.exe
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
DY := ilink64.exe
|
||||
else
|
||||
DY := ilink32.exe
|
||||
endif
|
||||
DFLAGS += -q -Gn -C -aa -Tpd -Gi -x $(LIBPATHS)
|
||||
DY_OUT :=
|
||||
# NOTE: .lib extension not added to keep line short enough to work on Win9x/ME
|
||||
DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw32mt import32
|
||||
ifeq ($(HB_COMPILER),bcc64)
|
||||
DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw64mt import64
|
||||
else
|
||||
DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw32mt import32
|
||||
endif
|
||||
|
||||
# NOTE: The empty line directly before 'endef' HAVE TO exist!
|
||||
define dynlib_object
|
||||
|
||||
5
harbour/config/win/bcc64.mk
Normal file
5
harbour/config/win/bcc64.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
include $(TOP)$(ROOT)config/$(HB_PLATFORM)/bcc.mk
|
||||
@@ -48,6 +48,7 @@ xcopy /y /s %~dp0..\..\pkg\dos\watcom\hb%HB_VL%wa\lib
|
||||
xcopy /y /s %~dp0..\..\pkg\os2\watcom\harbour-%HB_VF%-os2-watcom\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\wce\mingwarm\harbour-%HB_VF%-wce-mingwarm\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\win\bcc\harbour-%HB_VF%-win-bcc\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\win\bcc64\harbour-%HB_VF%-win-bcc64\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\win\mingw\harbour-%HB_VF%-win-mingw\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\win\mingw64\harbour-%HB_VF%-win-mingw64\lib %HB_ABSROOT%lib\
|
||||
xcopy /y /s %~dp0..\..\pkg\win\msvc\harbour-%HB_VF%-win-msvc\lib %HB_ABSROOT%lib\
|
||||
@@ -142,6 +143,7 @@ echo "%HB_DR%lib\win\msvc\*.*" >> _hbfiles
|
||||
echo "%HB_DR%lib\win\msvc64\*.*" >> _hbfiles
|
||||
rem echo "%HB_DR%bin\harbour-%HB_VS%-bcc.dll" >> _hbfiles
|
||||
echo "%HB_DR%lib\win\bcc\*.*" >> _hbfiles
|
||||
echo "%HB_DR%lib\win\bcc64\*.*" >> _hbfiles
|
||||
echo "%HB_DR%lib\win\watcom\*.*" >> _hbfiles
|
||||
rem echo "%HB_DR%lib\win\pocc\*.*" >> _hbfiles
|
||||
rem echo "%HB_DR%lib\win\pocc64\*.*" >> _hbfiles
|
||||
|
||||
@@ -207,6 +207,14 @@ Section "Libs for Borland C" hb_lib_bcc
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
!ifndef PKG_NO_COMP_BCC64
|
||||
Section "Libs for Borland C x64" hb_lib_bcc64
|
||||
SetOutPath $INSTDIR\bin
|
||||
SetOutPath $INSTDIR\lib\win\bcc64
|
||||
File "$%HB_ABSROOT%lib\win\bcc64\*.*"
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
!ifndef PKG_NO_COMP_WATCOM
|
||||
Section /o "Libs for Open Watcom" hb_lib_watcom
|
||||
SetOutPath $INSTDIR\lib\win\watcom
|
||||
@@ -385,6 +393,9 @@ SectionEnd
|
||||
!ifndef PKG_NO_COMP_BCC
|
||||
LangString DESC_hb_lib_bcc ${LANG_ENGLISH} "Harbour libs for Borland C"
|
||||
!endif
|
||||
!ifndef PKG_NO_COMP_BCC64
|
||||
LangString DESC_hb_lib_bcc64 ${LANG_ENGLISH} "Harbour libs for Borland C x64"
|
||||
!endif
|
||||
!ifndef PKG_NO_COMP_WATCOM
|
||||
LangString DESC_hb_lib_watcom ${LANG_ENGLISH} "Harbour libs for Open Watcom"
|
||||
!endif
|
||||
@@ -447,6 +458,9 @@ SectionEnd
|
||||
!ifndef PKG_NO_COMP_BCC
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${hb_lib_bcc} $(DESC_hb_lib_bcc)
|
||||
!endif
|
||||
!ifndef PKG_NO_COMP_BCC64
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${hb_lib_bcc64} $(DESC_hb_lib_bcc64)
|
||||
!endif
|
||||
!ifndef PKG_NO_COMP_WATCOM
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${hb_lib_watcom} $(DESC_hb_lib_watcom)
|
||||
!endif
|
||||
|
||||
@@ -1620,6 +1620,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
CASE "msvc64"
|
||||
CASE "msvcia64"
|
||||
CASE "bcc"
|
||||
CASE "bcc64"
|
||||
CASE "xcc"
|
||||
CASE "pocc"
|
||||
CASE "pocc64"
|
||||
@@ -1762,7 +1763,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
{ {|| iif( FindInPath( "wcc386" ) == NIL, ;
|
||||
FindInPath( "cl.exe" ), ;
|
||||
NIL ) }, "msvc" }, ;
|
||||
{ {|| _BCC_BIN_DETECT() }, "bcc" }, ;
|
||||
{ {|| _BCC_BIN_DETECT() }, "bcc" }, ; /* TODO: Add bcc64 autodetection */
|
||||
{ {|| iif( FindInPath( "dbgeng.lib", GetEnv( "LIB" ) ) != NIL .AND. ( tmp1 := FindInPath( "pocc.exe" ) ) != NIL, tmp1, NIL ) }, "pocc64" }, ;
|
||||
{ {|| FindInPath( "pocc.exe" ) }, "pocc" }, ;
|
||||
{ {|| iif( ( tmp1 := FindInPath( "icl.exe" ) ) != NIL .AND. "itanium" $ Lower( tmp1 ), tmp1, NIL ) }, "iccia64" }, ;
|
||||
@@ -1772,7 +1773,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
#endif
|
||||
aCOMPSUP := { ;
|
||||
"mingw", "msvc", "bcc", "watcom", "icc", "pocc", "xcc", ;
|
||||
"mingw64", "msvc64", "msvcia64", "iccia64", "pocc64" }
|
||||
"mingw64", "msvc64", "msvcia64", "bcc64", "iccia64", "pocc64" }
|
||||
l_aLIBHBGT := { "gtwin", "gtwvt", "gtgui" }
|
||||
hbmk[ _HBMK_cGTDEFAULT ] := "gtwin"
|
||||
hbmk[ _HBMK_cDynLibPrefix ] := ""
|
||||
@@ -2047,7 +2048,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
|
||||
/* Tweaks to compiler/platform environments */
|
||||
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc" /* TODO: Add support for bcc64 */
|
||||
/* NOTE: Hack to tweak bcc setup to include one additional
|
||||
compiler lib dir to lib search path. */
|
||||
IF Empty( cPath_CompC )
|
||||
@@ -4562,7 +4563,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
cResPrefix := "OP res="
|
||||
ENDIF
|
||||
|
||||
CASE hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
CASE hbmk[ _HBMK_cPLAT ] == "win" .AND. HBMK_ISCOMP( "bcc|bcc64" )
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BCKSLASH
|
||||
#if defined( __PLATFORM__UNIX )
|
||||
hbmk[ _HBMK_nCmd_Esc ] := _ESC_NIX
|
||||
@@ -4570,7 +4571,11 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
hbmk[ _HBMK_nCmd_Esc ] := _ESC_DBLQUOTE
|
||||
#endif
|
||||
IF hbmk[ _HBMK_lDEBUG ]
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-y -v" )
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-g" )
|
||||
ELSE
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-v -y" )
|
||||
ENDIF
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "-v" )
|
||||
ELSE
|
||||
AAdd( l_aCLEAN, PathSepToSelf( hb_FNameExtSet( hbmk[ _HBMK_cPROGNAME ], ".tds" ) ) )
|
||||
@@ -4582,9 +4587,15 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-P" )
|
||||
ENDIF
|
||||
cLibPrefix := NIL
|
||||
cLibExt := ".lib"
|
||||
cObjExt := ".obj"
|
||||
cBin_Lib := "tlib.exe"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cLibExt := ".a"
|
||||
cObjExt := ".o"
|
||||
cBin_Lib := "tlib64.exe"
|
||||
ELSE
|
||||
cLibExt := ".lib"
|
||||
cObjExt := ".obj"
|
||||
cBin_Lib := "tlib.exe"
|
||||
ENDIF
|
||||
/* Only forward slash is accepted here as option prefix. */
|
||||
cOpt_Lib := "/P128 {FA} {OL} {LO}{SCRIPT}"
|
||||
cBin_LibHBX := cBin_Lib
|
||||
@@ -4593,13 +4604,25 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
cImpLibExt := cLibLibExt
|
||||
cLibObjPrefix := "-+ "
|
||||
cOptIncMask := "-I{DI}"
|
||||
cBin_CompC := "bcc32.exe"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cBin_CompC := "bcc64.exe"
|
||||
ELSE
|
||||
cBin_CompC := "bcc32.exe"
|
||||
ENDIF
|
||||
cBin_CompCPP := cBin_CompC
|
||||
cOpt_CompC := "-c -q -CP437"
|
||||
IF hbmk[ _HBMK_lOPTIM ]
|
||||
cOpt_CompC += " -d -6 -O2 -OS -Ov -Oi -Oc"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cOpt_CompC += " -d -O2 -OS -Ov -Oc"
|
||||
ELSE
|
||||
cOpt_CompC += " -d -O2 -OS -Ov -Oc -Oi -6"
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cLibBCC_CRTL := "cw64mt.lib"
|
||||
ELSE
|
||||
cLibBCC_CRTL := "cw32mt.lib"
|
||||
ENDIF
|
||||
cLibBCC_CRTL := "cw32mt.lib"
|
||||
IF hbmk[ _HBMK_lWINUNI ]
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-DUNICODE" )
|
||||
ENDIF
|
||||
@@ -4608,7 +4631,11 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
IF AScan( hbmk[ _HBMK_aOPTC ], {| tmp | tmp == "-tW" } ) == 0
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" )
|
||||
ELSE
|
||||
cLibBCC_CRTL := "cw32.lib"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cLibBCC_CRTL := "cw64.lib"
|
||||
ELSE
|
||||
cLibBCC_CRTL := "cw32.lib"
|
||||
ENDIF
|
||||
ENDIF
|
||||
ELSE
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" )
|
||||
@@ -4623,11 +4650,23 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
cBin_Res := "brcc32.exe"
|
||||
cOpt_Res := "{FR} {IR} -fo{OS}"
|
||||
cResExt := ".res"
|
||||
cBin_Link := "ilink32.exe"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cBin_Link := "ilink64.exe"
|
||||
ELSE
|
||||
cBin_Link := "ilink32.exe"
|
||||
ENDIF
|
||||
cBin_Dyn := cBin_Link
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w32.obj", "c0x32.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_bcc( hbmk, "implib.exe -c {FI} {OL} {ID}", cSourceDLL, cTargetLib, cFlags ) }
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w64.obj", "c0x64.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d64.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.lib, {IM}, {LS}{SCRIPT}"
|
||||
ELSE
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w32.obj", "c0x32.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
/* TODO: Add support for bcc64/mkexp */
|
||||
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_bcc( hbmk, "implib.exe -c {FI} {OL} {ID}", cSourceDLL, cTargetLib, cFlags ) }
|
||||
ENDIF
|
||||
cLibPathPrefix := ""
|
||||
cLibPathSep := ";"
|
||||
IF hbmk[ _HBMK_lMAP ]
|
||||
@@ -4649,8 +4688,13 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
[vszakats] */
|
||||
/* AAdd( hbmk[ _HBMK_aOPTL ], "-Gi" ) */
|
||||
/* AAdd( hbmk[ _HBMK_aOPTD ], "-Gi" ) */
|
||||
cBin_Post := "implib.exe"
|
||||
cOpt_Post := "-c {OI} {OB}"
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cBin_Post := "mkexp.exe"
|
||||
cOpt_Post := "{OI} {OB}"
|
||||
ELSE
|
||||
cBin_Post := "implib.exe"
|
||||
cOpt_Post := "-c {OI} {OB}"
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF ! Empty( hbmk[ _HBMK_cWorkDir ] )
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-n" + FNameEscape( hbmk[ _HBMK_cWorkDir ], hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
@@ -4663,7 +4707,9 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
l_aLIBSHARED := { cHarbourDyn + cDL_Version_Alter + "-bcc" + cLibExt }
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
l_aLIBSHARED := { cHarbourDyn + cDL_Version_Alter + "-bcc" + cLibExt }
|
||||
ENDIF
|
||||
l_aLIBSHAREDPOST := { "hbmainstd", "hbmainwin" }
|
||||
l_aLIBSYS := ArrayAJoin( { l_aLIBSYS, l_aLIBSYSCORE, l_aLIBSYSMISC } )
|
||||
|
||||
@@ -5698,7 +5744,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
tmp := ""
|
||||
CASE HBMK_ISCOMP( "gcc|mingw|mingw64|mingwarm" )
|
||||
tmp := "__attribute__ (( dllimport ))"
|
||||
CASE HBMK_ISCOMP( "bcc|watcom" )
|
||||
CASE HBMK_ISCOMP( "bcc|bcc64|watcom" )
|
||||
tmp := "__declspec( dllimport )"
|
||||
OTHERWISE
|
||||
tmp := "_declspec( dllimport )"
|
||||
@@ -6144,7 +6190,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
cFile += "#endif" + Chr( 10 )
|
||||
cFile += 'CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "' + PathSepToForward( hbmk[ _HBMK_cMANIFEST ] ) + '"' + Chr( 10 )
|
||||
ENDIF
|
||||
IF ! Empty( hbmk[ _HBMK_aICON ] ) .AND. !( hbmk[ _HBMK_cCOMP ] == "bcc" ) /* BCC cannot handle certain new .ico files */
|
||||
IF ! Empty( hbmk[ _HBMK_aICON ] ) .AND. ! HBMK_ISCOMP( "bcc|bcc64" ) /* BCC cannot handle certain new .ico files */
|
||||
IF hbmk[ _HBMK_cPLAT ] == "os2"
|
||||
AEval( hbmk[ _HBMK_aICON ], {| tmp, tmp1 | cFile += "ICON " + hb_ntos( tmp1 ) + ' DISCARDABLE "' + PathSepToForward( tmp ) + '"' + Chr( 10 ) } )
|
||||
ELSE
|
||||
@@ -8716,7 +8762,7 @@ STATIC FUNCTION FindLib( hbmk, cLib, aLIBPATH, cLibPrefix, cLibExt )
|
||||
LOCAL tmp
|
||||
|
||||
/* Check libs in their full paths */
|
||||
IF HBMK_ISCOMP( "msvc|msvc64|msvcarm|bcc|pocc|pocc64|poccarm|watcom" )
|
||||
IF HBMK_ISCOMP( "msvc|msvc64|msvcarm|bcc|bcc64|pocc|pocc64|poccarm|watcom" )
|
||||
IF ! Empty( hb_FNameDir( cLib ) )
|
||||
IF hb_FileExists( cLib := hb_FNameExtSet( cLib, cLibExt ) )
|
||||
RETURN cLib
|
||||
@@ -8731,7 +8777,7 @@ STATIC FUNCTION FindLib( hbmk, cLib, aLIBPATH, cLibPrefix, cLibExt )
|
||||
ENDIF
|
||||
|
||||
/* Check in current dir */
|
||||
IF HBMK_ISCOMP( "msvc|msvc64|msvcarm|bcc|pocc|pocc64|poccarm|watcom" )
|
||||
IF HBMK_ISCOMP( "msvc|msvc64|msvcarm|bcc|bcc64|pocc|pocc64|poccarm|watcom" )
|
||||
IF ! Empty( tmp := LibExists( hbmk, "", cLib, cLibPrefix, cLibExt ) )
|
||||
RETURN tmp
|
||||
ENDIF
|
||||
@@ -12121,6 +12167,7 @@ STATIC FUNCTION hbmk_CPU( hbmk )
|
||||
RETURN "x86"
|
||||
CASE hbmk[ _HBMK_cCOMP ] == "mingw64" .OR. ;
|
||||
hbmk[ _HBMK_cCOMP ] == "msvc64" .OR. ;
|
||||
hbmk[ _HBMK_cCOMP ] == "bcc64" .OR. ;
|
||||
hbmk[ _HBMK_cCOMP ] == "pocc64"
|
||||
RETURN "x86_64"
|
||||
CASE hbmk[ _HBMK_cCOMP ] == "msvcia64" .OR. ;
|
||||
@@ -12186,6 +12233,7 @@ FUNCTION hbmk_KEYW( hbmk, cFileName, cKeyword, cValue, cOperator )
|
||||
CASE "allgcc" ; RETURN HBMK_ISCOMP( "gcc|mingw|mingw64|mingwarm|djgpp|gccomf|clang|open64|pcc" )
|
||||
CASE "allmingw" ; RETURN HBMK_ISCOMP( "mingw|mingw64|mingwarm" )
|
||||
CASE "allmsvc" ; RETURN HBMK_ISCOMP( "msvc|msvc64|msvcia64|msvcarm" )
|
||||
CASE "allbcc" ; RETURN HBMK_ISCOMP( "bcc|bcc64" )
|
||||
CASE "allpocc" ; RETURN HBMK_ISCOMP( "pocc|pocc64|poccarm" )
|
||||
CASE "allicc" ; RETURN HBMK_ISCOMP( "icc|iccia64" )
|
||||
CASE "xhb" ; RETURN _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] )
|
||||
@@ -12205,7 +12253,7 @@ FUNCTION hbmk_KEYW( hbmk, cFileName, cKeyword, cValue, cOperator )
|
||||
"|bsd|hpux|sunos|beos|qnx|android|vxworks|symbian|linux|darwin|cygwin|minix|aix" +;
|
||||
"|msvc|msvc64|msvcia64|msvcarm" +;
|
||||
"|pocc|pocc64|poccarm|xcc" +;
|
||||
"|mingw|mingw64|mingwarm|bcc|watcom" +;
|
||||
"|mingw|mingw64|mingwarm|bcc|bcc64|watcom" +;
|
||||
"|gcc|gccomf|djgpp" +;
|
||||
"|hblib|hbdyn|hbdynvm|hbimplib|hbexe" +;
|
||||
"|icc|iccia64|clang|open64|sunpro|diab|pcc" +;
|
||||
@@ -14505,7 +14553,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
|
||||
I_( "Supported <comp> values for each supported <plat> value:" ), ;
|
||||
" - linux : gcc, clang, icc, watcom, sunpro, open64, pcc", ;
|
||||
" - darwin : gcc, clang, icc, pcc", ;
|
||||
" - win : mingw, msvc, bcc, watcom, icc, pocc, xcc,", ;
|
||||
" - win : mingw, msvc, bcc, bcc64, watcom, icc, pocc, xcc,", ;
|
||||
" mingw64, msvc64, msvcia64, iccia64, pocc64", ;
|
||||
" - wce : mingwarm, mingw, msvcarm, poccarm", ;
|
||||
" - os2 : gcc, gccomf, watcom", ;
|
||||
|
||||
Reference in New Issue
Block a user