2010-07-18 12:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Will now append a _dll postfix in -hbdyn mode (and _exe in -hbexe mode)
to implib generated when -implib option is used. This is needed
to make it not collide with statis libraries generated in parallel.
+ Added technique with which even the fatal borland C compiler can
tricked to create implibs with custom names. I didn't test it
very much, I just hope the implib is equivalent with the one
generated directly by linker. For borland users I recommend to
switch to a modern compiler.
+ Will now also install implib if -instpath is specified and
-implib is used on platforms that it's supported.
! Fixed to escape filenames in post-build command (strip on some
platforms and now implib).
* contrib/make.hbs
+ Enabled -implib hbmk2 option in HB_BUILD_CONTRIB_DLL=yes mode.
* Disabled debug stuff.
This commit is contained in:
@@ -16,7 +16,26 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-07-18 1:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
2010-07-18 12:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Will now append a _dll postfix in -hbdyn mode (and _exe in -hbexe mode)
|
||||
to implib generated when -implib option is used. This is needed
|
||||
to make it not collide with statis libraries generated in parallel.
|
||||
+ Added technique with which even the fatal borland C compiler can
|
||||
tricked to create implibs with custom names. I didn't test it
|
||||
very much, I just hope the implib is equivalent with the one
|
||||
generated directly by linker. For borland users I recommend to
|
||||
switch to a modern compiler.
|
||||
+ Will now also install implib if -instpath is specified and
|
||||
-implib is used on platforms that it's supported.
|
||||
! Fixed to escape filenames in post-build command (strip on some
|
||||
platforms and now implib).
|
||||
|
||||
* contrib/make.hbs
|
||||
+ Enabled -implib hbmk2 option in HB_BUILD_CONTRIB_DLL=yes mode.
|
||||
* Disabled debug stuff.
|
||||
|
||||
2010-07-18 11:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* config/postinst.hbs
|
||||
* Changed to only create .hbd documentation file for the
|
||||
core. This is to ensure separation of components.
|
||||
|
||||
@@ -154,7 +154,7 @@ PROCEDURE Main( ... )
|
||||
s_cHome := StrTran( hb_DirBase(), hb_ps(), "/" )
|
||||
s_cRoot := s_cHome + "../"
|
||||
|
||||
IF "migr" $ hb_cmdLine() .OR. .T.
|
||||
IF "migr" $ hb_cmdLine() // .OR. .T.
|
||||
hb_setenv( "_HB_BUILD_MIGR", "yes" )
|
||||
ENDIF
|
||||
|
||||
@@ -409,7 +409,7 @@ PROCEDURE GNUMake( ... )
|
||||
aUtils,;
|
||||
aAddons }
|
||||
|
||||
OutStd( Len( aAll ) ) ; aAll := { { "rddads/rddads.hbp" } }
|
||||
// OutStd( Len( aAll ) ) ; aAll := { { "rddads/rddads.hbp" } }
|
||||
|
||||
OutStd( "! Calculating sorting order for contribs..." + hb_eol() )
|
||||
|
||||
@@ -481,8 +481,7 @@ PROCEDURE GNUMake( ... )
|
||||
hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbc" ) ) )
|
||||
|
||||
cOptionsPre := cBaseOptions
|
||||
/* TOFIX: Add -implib option. It collides with static lib so needs to be resolved. */
|
||||
cOptionsPost := " -hbdyn -nohblib- " + FNameExtSet( cProject, ".hbc" )
|
||||
cOptionsPost := " -hbdyn -nohblib- -implib " + FNameExtSet( cProject, ".hbc" )
|
||||
|
||||
call_hbmk2( cBinDir, cProject, cOptionsPre, cOptionsPost )
|
||||
ENDIF
|
||||
|
||||
@@ -220,6 +220,9 @@ REQUEST hbmk_KEYW
|
||||
#define _HBMK_HAS_PREF "HBMK_HAS_"
|
||||
#define _HBMK_SCRIPT "__HBSCRIPT__HBMK"
|
||||
|
||||
#define _HBMK_IMPLIB_EXE_POST "_exe"
|
||||
#define _HBMK_IMPLIB_DLL_POST "_dll"
|
||||
|
||||
#define _HBMK_NEST_MAX 10
|
||||
#define _HBMK_HEAD_NEST_MAX 10
|
||||
|
||||
@@ -3455,7 +3458,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "OP map" )
|
||||
AAdd( hbmk[ _HBMK_aOPTD ], "OP map" )
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_lIMPLIB ] .AND. hbmk[ _HBMK_cPLAT ] $ "win|os2"
|
||||
IF hbmk[ _HBMK_lIMPLIB ] .AND. hbmk[ _HBMK_cPLAT ] $ "win|os2" /* dos? */
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "OP implib={OI}" )
|
||||
AAdd( hbmk[ _HBMK_aOPTD ], "OP implib={OI}" )
|
||||
ENDIF
|
||||
@@ -3571,8 +3574,14 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
AAdd( hbmk[ _HBMK_aOPTD ], "-ap" )
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_lIMPLIB ]
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "-Gi" )
|
||||
AAdd( hbmk[ _HBMK_aOPTD ], "-Gi" )
|
||||
/* NOTE: Borland C doesn't support creating implibs with a specific name,
|
||||
so it's done using post command. The resulting implib won't be
|
||||
as optimal as the generated one, but it _should_ be the same.
|
||||
[vszakats] */
|
||||
/* AAdd( hbmk[ _HBMK_aOPTL ], "-Gi" ) */
|
||||
/* AAdd( hbmk[ _HBMK_aOPTD ], "-Gi" ) */
|
||||
cBin_Post := "implib.exe "
|
||||
cOpt_Post := "{OI} {OB}"
|
||||
ENDIF
|
||||
IF ! Empty( hbmk[ _HBMK_cWorkDir ] )
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-n" + FNameEscape( hbmk[ _HBMK_cWorkDir ], hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
@@ -4202,12 +4211,12 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
IF Empty( cExt ) .AND. ! Empty( cBinExt )
|
||||
hbmk[ _HBMK_cPROGNAME ] := hb_FNameMerge( cDir, cName, cBinExt )
|
||||
ENDIF
|
||||
l_cIMPLIBNAME := hb_FNameMerge( cDir, cLibLibPrefix + cName, cLibLibExt )
|
||||
l_cIMPLIBNAME := hb_FNameMerge( cDir, cLibLibPrefix + cName + _HBMK_IMPLIB_EXE_POST, cLibLibExt )
|
||||
CASE lStopAfterCComp .AND. hbmk[ _HBMK_lCreateDyn ]
|
||||
IF Empty( cExt ) .AND. ! Empty( cDynLibExt )
|
||||
hbmk[ _HBMK_cPROGNAME ] := hb_FNameMerge( cDir, cName, cDynLibExt )
|
||||
ENDIF
|
||||
l_cIMPLIBNAME := hb_FNameMerge( cDir, cLibLibPrefix + cName, cLibLibExt )
|
||||
l_cIMPLIBNAME := hb_FNameMerge( cDir, cLibLibPrefix + cName + _HBMK_IMPLIB_DLL_POST, cLibLibExt )
|
||||
CASE lStopAfterCComp .AND. hbmk[ _HBMK_lCreateLib ]
|
||||
hbmk[ _HBMK_cPROGNAME ] := hb_FNameMerge( cDir, cLibLibPrefix + cName, iif( Empty( cLibLibExt ), cExt, cLibLibExt ) )
|
||||
ENDCASE
|
||||
@@ -5394,6 +5403,10 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
FErase( cScriptFile )
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_lIMPLIB ] .AND. hbmk[ _HBMK_nErrorLevel ] == 0 .AND. hbmk[ _HBMK_cPLAT ] $ "win|os2|dos"
|
||||
hb_AIns( hbmk[ _HBMK_aINSTFILE ], 1, { "", l_cIMPLIBNAME }, .T. )
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_nErrorLevel ] == 0 .AND. hbmk[ _HBMK_lGUI ] .AND. hbmk[ _HBMK_cPLAT ] == "darwin"
|
||||
/* Build app bundle for OS X GUI apps. (experimental) */
|
||||
tmp := FNameDirGet( hbmk[ _HBMK_cPROGNAME ] )
|
||||
@@ -5487,6 +5500,10 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
FErase( cScriptFile )
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_lIMPLIB ] .AND. hbmk[ _HBMK_nErrorLevel ] == 0 .AND. hbmk[ _HBMK_cPLAT ] $ "win|os2|dos"
|
||||
hb_AIns( hbmk[ _HBMK_aINSTFILE ], 1, { "", l_cIMPLIBNAME }, .T. )
|
||||
ENDIF
|
||||
|
||||
CASE lStopAfterCComp .AND. hbmk[ _HBMK_lCreateLib ] .AND. ! Empty( cBin_Lib )
|
||||
|
||||
PlugIn_Execute_All( hbmk, "pre_lib" )
|
||||
@@ -5604,7 +5621,8 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
|
||||
IF ! Empty( cBin_Post )
|
||||
|
||||
cOpt_Post := StrTran( cOpt_Post, "{OB}", hbmk[ _HBMK_cPROGNAME ] )
|
||||
cOpt_Post := StrTran( cOpt_Post, "{OB}", FNameEscape( hbmk[ _HBMK_cPROGNAME ], hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
cOpt_Post := StrTran( cOpt_Post, "{OI}", FNameEscape( l_cIMPLIBNAME, hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
cOpt_Post := AllTrim( cOpt_Post )
|
||||
|
||||
cCommand := cBin_Post + " " + cOpt_Post
|
||||
@@ -10604,7 +10622,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong )
|
||||
{ "-[no]optim" , I_( "toggle C compiler optimizations (default: on)" ) },;
|
||||
{ "-[no]cpp[=def]" , I_( "force C/C++ mode or reset to default" ) },;
|
||||
{ "-[no]map" , I_( "create (or not) a map file" ) },;
|
||||
{ "-[no]implib" , I_( "create (or not) an import library (in -hbdyn mode)" ) },;
|
||||
{ "-[no]implib" , I_( "create (or not) an import library (in -hbdyn/-hbexe mode). The name will have a postfix added." ) },;
|
||||
{ "-[no]strip" , I_( "strip (no strip) binaries" ) },;
|
||||
{ "-[no]trace" , I_( "show commands executed" ) },;
|
||||
{ "-[no]beep" , I_( "enable (or disable) single beep on successful exit, double beep on failure" ) },;
|
||||
|
||||
Reference in New Issue
Block a user