2010-05-18 02:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added experimental -hbdynvm mode.
    + Added support for .def input file in -hbdyn/-hbdynvm modes.
    ; TODO: Couldn't find how to pass .def files to Open Watcom wlink.
            Anybody with an experience here?

  * src/rtl/memvarhb.prg
    + Added one initialization to NIL.
This commit is contained in:
Viktor Szakats
2010-05-18 00:26:06 +00:00
parent 7574349fe6
commit 8f6b341a49
5 changed files with 59 additions and 35 deletions

View File

@@ -17,6 +17,18 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-05-18 02:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added experimental -hbdynvm mode.
+ Added support for .def input file in -hbdyn/-hbdynvm modes.
; TODO: Couldn't find how to pass .def files to Open Watcom wlink.
Anybody with an experience here?
* src/rtl/memvarhb.prg
+ Added one initialization to NIL.
2010-05-17 22:34 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/dynsym.c
! casting for C++ mode

View File

@@ -77,14 +77,8 @@ PROCEDURE HB_MVSAVE( cFileName, cMask, lIncludeMask )
LOCAL xRecover
LOCAL nRetries
#ifdef HB_CLP_STRICT
IF PCount() == 3 .AND. ;
ISCHARACTER( cFileName ) .AND. ;
ISCHARACTER( cMask ) .AND. ;
ISLOGICAL( lIncludeMask )
#else
IF ISCHARACTER( cFileName )
#endif
IF Set( _SET_DEFEXTENSIONS )
hb_FNameSplit( cFileName, NIL, NIL, @cExt )
IF Empty( cExt )
@@ -177,12 +171,7 @@ FUNCTION HB_MVRESTORE( cFileName, lAdditive, cMask, lIncludeMask )
LOCAL xRecover
LOCAL nRetries
#ifdef HB_CLP_STRICT
IF ISCHARACTER( cFileName ) .AND. ;
ISLOGICAL( lAdditive )
#else
IF ISCHARACTER( cFileName )
#endif
IF ! ISLOGICAL( lAdditive )
lAdditive := .T.
@@ -244,6 +233,8 @@ FUNCTION HB_MVRESTORE( cFileName, lAdditive, cMask, lIncludeMask )
aVars := hb_deserialize( cBuffer )
cBuffer := NIL
xValue := NIL
IF ISARRAY( aVars )
FOR EACH item IN aVars
IF ISARRAY( item ) .AND. Len( item ) == 2 .AND. ;

View File

@@ -354,8 +354,8 @@ msgstr "Automatikusan detekt
#: hbmk2.prg:7824
#, c-format
msgid " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>"
msgstr " hbmk2 [kapcsolók] [<parancsállomány[s]>] <forrás[.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>"
msgid " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>"
msgstr " hbmk2 [kapcsolók] [<parancsállomány[s]>] <forrás[.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>"
#: hbmk2.prg:7941
#, c-format

View File

@@ -337,25 +337,26 @@ REQUEST hbmk_KEYW
#define _HBMK_aOBJUSER 73
#define _HBMK_aICON 74
#define _HBMK_aIMPLIBSRC 75
#define _HBMK_hDEPTS 76
#define _HBMK_cDEF 76
#define _HBMK_hDEPTS 77
#define _HBMK_aPO 77
#define _HBMK_cHBL 78
#define _HBMK_cHBLDir 79
#define _HBMK_aLNG 80
#define _HBMK_cPO 81
#define _HBMK_aPO 78
#define _HBMK_cHBL 79
#define _HBMK_cHBLDir 80
#define _HBMK_aLNG 81
#define _HBMK_cPO 82
#define _HBMK_lDEBUGTIME 82
#define _HBMK_lDEBUGINC 83
#define _HBMK_lDEBUGSTUB 84
#define _HBMK_lDEBUGI18N 85
#define _HBMK_lDEBUGTIME 83
#define _HBMK_lDEBUGINC 84
#define _HBMK_lDEBUGSTUB 85
#define _HBMK_lDEBUGI18N 86
#define _HBMK_cCCPATH 86
#define _HBMK_cCCPREFIX 87
#define _HBMK_cCCPOSTFIX 88
#define _HBMK_cCCEXT 89
#define _HBMK_cCCPATH 87
#define _HBMK_cCCPREFIX 88
#define _HBMK_cCCPOSTFIX 89
#define _HBMK_cCCEXT 90
#define _HBMK_MAX_ 89
#define _HBMK_MAX_ 90
#ifndef _HBMK_EMBEDDED_
@@ -1523,6 +1524,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
hbmk[ _HBMK_aOBJUSER ] := {}
hbmk[ _HBMK_aICON ] := {}
hbmk[ _HBMK_aIMPLIBSRC ] := {}
hbmk[ _HBMK_cDEF ] := ""
l_aOBJA := {}
l_cPROGDIR := NIL
l_cPROGNAME := NIL
@@ -1621,6 +1623,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
CASE cParamL == "-hbexe" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .F. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .F.
CASE cParamL == "-hblib" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .T. ; hbmk[ _HBMK_lCreateDyn ] := .F.
CASE cParamL == "-hbdyn" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; l_lNOHBLIB := .T.
CASE cParamL == "-hbdynvm" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; l_lNOHBLIB := .F.
CASE cParamL == "-hbimplib" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterInit := .T. ; hbmk[ _HBMK_lCreateImpLib ] := .T. ; lAcceptIFlag := .T.
CASE cParamL == "-gui" .OR. ;
cParamL == "-mwindows" ; hbmk[ _HBMK_lGUI ] := .T. /* Compatibility */
@@ -2154,6 +2157,14 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cParam := PathProc( cParam, aParam[ _PAR_cFileName ] )
AAdd( l_aOBJA, PathSepToTarget( hbmk, cParam ) )
CASE FN_ExtGet( cParamL ) == ".def"
cParam := ArchCompFilter( hbmk, cParam )
IF ! Empty( cParam )
cParam := PathProc( cParam, aParam[ _PAR_cFileName ] )
hbmk[ _HBMK_cDEF ] := PathSepToTarget( hbmk, cParam )
ENDIF
CASE FN_ExtGet( cParamL ) == ".o" .OR. ;
FN_ExtGet( cParamL ) == ".obj"
@@ -2694,7 +2705,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared -o {OD} {LO} {FD} {DL} {LS}"
cOpt_Dyn := "-shared -o {OD} {IM} {LO} {FD} {DL} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {LS} {FL} {DL}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_gcc( hbmk, hbmk[ _HBMK_cCCPREFIX ] + "dlltool" + hbmk[ _HBMK_cCCPOSTFIX ] + hbmk[ _HBMK_cCCEXT ] + " {FI} -d {ID} -l {OL}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
@@ -2830,7 +2841,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared -o {OD} {LO} {LL} {LB} {FD} {DL} {LS}"
cOpt_Dyn := "-shared -o {OD} {IM} {LO} {LL} {LB} {FD} {DL} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {FL} {DL}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib | hb_FCopy( cSourceDLL, cTargetLib ) != F_ERROR }
@@ -3212,7 +3223,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cBin_Link := "ilink32.exe"
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} " + cLibBCC_CRTL + " import32.lib,, {LS}{SCRIPT}"
cOpt_Dyn := '-Gn -Tpd -L{DL} {FD} ' + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} " + cLibBCC_CRTL + " import32.lib,, {LS}{SCRIPT}"
cOpt_Dyn := '-Gn -Tpd -L{DL} {FD} ' + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command( hbmk, "implib.exe {FI} {OL} {ID}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
cLibPathPrefix := ""
cLibPathSep := ";"
@@ -3376,6 +3387,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_msvc( hbmk, cBin_Lib + " -nologo {FI} -def:{ID} -out:{OL}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
cLibPathPrefix := "-libpath:"
cLibPathSep := " "
IF ! Empty( hbmk[ _HBMK_cDEF ] )
AAdd( hbmk[ _HBMK_aOPTD ], "-def:{IM}" )
ENDIF
IF hbmk[ _HBMK_lMAP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-map" )
AAdd( hbmk[ _HBMK_aOPTD ], "-map" )
@@ -3523,6 +3537,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_Link := "-out:{OE} {LO} {DL} {FL} {LL} {LB} {LS}"
cLibPathPrefix := "-libpath:"
cLibPathSep := " "
IF ! Empty( hbmk[ _HBMK_cDEF ] )
AAdd( hbmk[ _HBMK_aOPTD ], "-def:{IM}" )
ENDIF
IF hbmk[ _HBMK_lMAP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-map" )
AAdd( hbmk[ _HBMK_aOPTD ], "-map" )
@@ -4885,6 +4902,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LS}" , ArrayToList( ArrayJoin( ListDirExt( hbmk[ _HBMK_aRESSRC ], cWorkDir, cResExt ), hbmk[ _HBMK_aRESCMP ] ),, nOpt_Esc, cResPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LL}" , ArrayToList( l_aLIB,, nOpt_Esc, cLibPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LB}" , ArrayToList( l_aLIBA,, nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{IM}" , FN_Escape( PathSepToTarget( hbmk, hbmk[ _HBMK_cDEF ] ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OD}" , FN_Escape( PathSepToTarget( hbmk, l_cPROGNAME ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OM}" , FN_Escape( PathSepToTarget( hbmk, FN_ExtSet( l_cPROGNAME, ".map" ) ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OI}" , FN_Escape( PathSepToTarget( hbmk, l_cIMPLIBNAME ), nOpt_Esc ) )
@@ -6593,6 +6611,8 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
AAddNew( hbmk[ _HBMK_aRESCMP ], PathSepToTarget( hbmk, tmp ) )
NEXT
ENDIF
CASE FN_ExtGet( cItemL ) == ".def"
hbmk[ _HBMK_cDEF ] := PathSepToSelf( cItem )
OTHERWISE /* .prg */
IF Empty( FN_ExtGet( cItem ) )
cItem := FN_ExtSet( cItem, ".prg" )
@@ -8730,7 +8750,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
LOCAL aText_Basic := {;
I_( "Syntax:" ),;
"",;
I_( " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>" ),;
I_( " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>" ),;
"",;
I_( "Options:" ) }
@@ -8760,6 +8780,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
{ "-hbexe" , I_( "create executable (default)" ) },;
{ "-hblib" , I_( "create static library" ) },;
{ "-hbdyn" , I_( "create dynamic library" ) },;
{ "-hbdynvm" , I_( "create dynamic library (EXPERIMENTAL)" ) },;
{ "-hbimplib" , I_( "create import library" ) }}
LOCAL aOpt_Help := {;

View File

@@ -368,8 +368,8 @@ msgstr "linkar com suporte multi ou single-thread na HVM"
#: hbmk2.prg:7825
#, c-format
msgid " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>"
msgstr " hbmk2 [opções] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl|@.clp|.d]>"
msgid " hbmk2 [options] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>"
msgstr " hbmk2 [opções] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d]>"
#: hbmk2.prg:7942
#, c-format