2010-07-30 20:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Will now autodetect /bin/plat/comp bin dir, if present.
! Fixed to set dynlib dir to bin dir on non-*nix platforms.
As a conseqeunce bin dir will now be added to the libpath
list on these platforms. Allowing to access .dlls directly
in compilers that support it (mingw).
! Fixed to use HB_INSTALL_PREFIX instead of bin dir as a base
to find addons/contribs dir structures (for .hbc autofind).
! Fixed to really include hbmaindllp stub added in recent commit.
Anyhow, loading contrib .dlls dynamically still don't work.
* contrib/make.hbs
! Fixed to honor user setting when creating dynlib in stdalone mode.
* contrib/hbcomm/hbcomm.prg
* space @ EOL.
This commit is contained in:
@@ -16,6 +16,24 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-07-30 20:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Will now autodetect /bin/plat/comp bin dir, if present.
|
||||
! Fixed to set dynlib dir to bin dir on non-*nix platforms.
|
||||
As a conseqeunce bin dir will now be added to the libpath
|
||||
list on these platforms. Allowing to access .dlls directly
|
||||
in compilers that support it (mingw).
|
||||
! Fixed to use HB_INSTALL_PREFIX instead of bin dir as a base
|
||||
to find addons/contribs dir structures (for .hbc autofind).
|
||||
! Fixed to really include hbmaindllp stub added in recent commit.
|
||||
Anyhow, loading contrib .dlls dynamically still don't work.
|
||||
|
||||
* contrib/make.hbs
|
||||
! Fixed to honor user setting when creating dynlib in stdalone mode.
|
||||
|
||||
* contrib/hbcomm/hbcomm.prg
|
||||
* space @ EOL.
|
||||
|
||||
2010-07-30 18:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Added -depimplib[-] option to contrib implib creation for
|
||||
|
||||
@@ -74,7 +74,7 @@ FUNCTION INIT_PORT( cPort, nBaud, nData, nParity, nStop, nBufferSize )
|
||||
hb_comSetDevice( nPort, cPort )
|
||||
ENDIF
|
||||
|
||||
hb_comClose( nPort )
|
||||
hb_comClose( nPort )
|
||||
|
||||
IF hb_comOpen( nPort )
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ PROCEDURE Standalone( aParams, hPackageList )
|
||||
GetEnv( "HB_BUILD_CONTRIB_DYN" ) == "yes" .AND. ;
|
||||
hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbc" ) ) )
|
||||
|
||||
call_hbmk2( cProject, cOptions, " " + FNameExtSet( cProject, ".hbc" ) )
|
||||
call_hbmk2( cProject, cOptions + cOptionsUser, " " + FNameExtSet( cProject, ".hbc" ) )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
@@ -1686,7 +1686,15 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
/* Finish detecting bin/lib/include dirs */
|
||||
|
||||
IF Empty( l_cHB_INSTALL_BIN )
|
||||
l_cHB_INSTALL_BIN := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "bin" )
|
||||
/* Autodetect multi-compiler/platform bin structure (also .dlls are in bin dir on non-*nix platforms) */
|
||||
IF hb_DirExists( tmp := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) ) + "bin" +;
|
||||
hb_ps() + hbmk[ _HBMK_cPLAT ] +;
|
||||
hb_ps() + hbmk[ _HBMK_cCOMP ] +;
|
||||
iif( Empty( hbmk[ _HBMK_cBUILD ] ), "", PathSepToSelf( hbmk[ _HBMK_cBUILD ] ) ) )
|
||||
l_cHB_INSTALL_BIN := tmp
|
||||
ELSE
|
||||
l_cHB_INSTALL_BIN := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "bin" )
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF Empty( l_cHB_INSTALL_LIB )
|
||||
/* Autodetect multi-compiler/platform lib structure */
|
||||
@@ -1703,7 +1711,13 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
l_cHB_INSTALL_INC := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "include" )
|
||||
ENDIF
|
||||
|
||||
DEFAULT l_cHB_INSTALL_DYN TO l_cHB_INSTALL_LIB
|
||||
IF l_cHB_INSTALL_DYN == NIL
|
||||
IF hbmk[ _HBMK_cPLAT ] $ "win|wce|os2|dos"
|
||||
l_cHB_INSTALL_DYN := l_cHB_INSTALL_BIN
|
||||
ELSE
|
||||
l_cHB_INSTALL_DYN := l_cHB_INSTALL_LIB
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_lInfo ]
|
||||
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Using Harbour: %1$s %2$s %3$s %4$s" ), l_cHB_INSTALL_BIN, l_cHB_INSTALL_INC, l_cHB_INSTALL_LIB, l_cHB_INSTALL_DYN ) )
|
||||
@@ -1730,9 +1744,9 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
AAddNotEmpty( hbmk[ _HBMK_aINCPATH ], l_cHB_INSTALL_INC )
|
||||
|
||||
/* Add default search paths for .hbc files */
|
||||
l_cHB_INSTALL_ADD := PathNormalize( l_cHB_INSTALL_BIN + hb_ps() + ".." )
|
||||
AAdd( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_ADD + hb_ps() + "contrib" + hb_ps() + "%{hb_name}" )
|
||||
AAdd( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_ADD + hb_ps() + "addons" + hb_ps() + "%{hb_name}" )
|
||||
l_cHB_INSTALL_ADD := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) )
|
||||
AAdd( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_ADD + "contrib" + hb_ps() + "%{hb_name}" )
|
||||
AAdd( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_ADD + "addons" + hb_ps() + "%{hb_name}" )
|
||||
|
||||
/* Build with shared libs by default, if we're installed to default system locations. */
|
||||
|
||||
@@ -4333,6 +4347,15 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-DHB_DYNLIB" )
|
||||
ENDIF
|
||||
ENDIF
|
||||
#if 0
|
||||
IF hbmk[ _HBMK_lCreateDyn ]
|
||||
IF !( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) .OR. ;
|
||||
hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ;
|
||||
hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB20 )
|
||||
AAdd( hbmk[ _HBMK_aOPTPRG ], "-DHB_DYNLIB" )
|
||||
ENDIF
|
||||
ENDIF
|
||||
#endif
|
||||
ENDIF
|
||||
|
||||
/* Call plugins */
|
||||
@@ -4733,16 +4756,16 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
lHBMAINDLLP := AScan( hbmk[ _HBMK_aLIBUSER ], {| tmp | hb_FileMatch( tmp, "hbmaindllp" ) } ) > 0
|
||||
lHBMAINDLLP := lStopAfterCComp .AND. hbmk[ _HBMK_lCreateDyn ] .AND. ;
|
||||
AScan( hbmk[ _HBMK_aLIBUSER ], {| tmp | hb_FileMatch( tmp, "hbmaindllp" ) } ) > 0
|
||||
|
||||
/* HACK: Override entry point requested by user or detected by us,
|
||||
and override the GT if requested by user. */
|
||||
IF ( ! lStopAfterCComp .OR. hbmk[ _HBMK_lDynVM ] ) .AND. ;
|
||||
( l_cMAIN != NIL .OR. ;
|
||||
! Empty( hbmk[ _HBMK_aLIBUSERGT ] ) .OR. ;
|
||||
hbmk[ _HBMK_cGT ] != NIL .OR. ;
|
||||
l_cCMAIN != NIL .OR. ;
|
||||
lHBMAINDLLP )
|
||||
IF ( ( ! lStopAfterCComp .OR. hbmk[ _HBMK_lDynVM ] ) .AND. ;
|
||||
( l_cMAIN != NIL .OR. ;
|
||||
! Empty( hbmk[ _HBMK_aLIBUSERGT ] ) .OR. ;
|
||||
hbmk[ _HBMK_cGT ] != NIL .OR. ;
|
||||
l_cCMAIN != NIL ) ) .OR. lHBMAINDLLP
|
||||
|
||||
l_cCSTUB := DirAddPathSep( hbmk[ _HBMK_cWorkDir ] ) + "_hbmkaut.c"
|
||||
|
||||
@@ -4786,10 +4809,11 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
cFile := '/* This temp source file was generated by hbmk2 tool. */' + Chr( 10 ) +;
|
||||
'/* You can safely delete it. */' + Chr( 10 ) +;
|
||||
'' + Chr( 10 ) +;
|
||||
'#include "hbapi.h"' + Chr( 10 )
|
||||
'#include "hbapi.h"' + Chr( 10 ) +;
|
||||
'' + Chr( 10 )
|
||||
|
||||
IF ! Empty( array ) .OR. l_cCMAIN != NIL
|
||||
AEval( array, {| tmp, i | array[ i ] := FuncNameEncode( tmp ) } )
|
||||
cFile += '' + Chr( 10 )
|
||||
AEval( array, {| tmp | cFile += 'HB_FUNC_EXTERN( ' + tmp + ' );' + Chr( 10 ) } )
|
||||
IF l_cCMAIN != NIL
|
||||
IF ! Empty( array )
|
||||
|
||||
Reference in New Issue
Block a user