From d2ddaaf0e022b60405a9c48e7e189c9cd3cd0e88 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 17 May 2009 17:52:32 +0000 Subject: [PATCH] 2009-05-17 19:40 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * utils/hbmk2/hbmk2.prg + Added automatic bcc configuration hack to add PSDK dir to the libpath list. This is to fix bcc installations where this isn't done in bcc configuration itself in bcc32.cfg, ilink32.cfg. PSDK dir is required for hbmk2 because most libs on the standard hbmk2 list of Windows system libs (like winspool) included in link process are stored in this subdir. It's still recommended to do this tweak in local bcc environment. ; Please test it. * utils/hbmk2/examples/contribf.hbp + Added hbqt. --- harbour/ChangeLog | 23 +++++++-- harbour/utils/hbmk2/examples/contribf.hbp | 2 +- harbour/utils/hbmk2/hbmk2.prg | 59 ++++++++++++++--------- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c7734b3d57..52dd3ff915 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,21 @@ past entries belonging to these authors: Viktor Szakats. */ +2009-05-17 19:40 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * utils/hbmk2/hbmk2.prg + + Added automatic bcc configuration hack to add PSDK dir to + the libpath list. This is to fix bcc installations where + this isn't done in bcc configuration itself in bcc32.cfg, + ilink32.cfg. PSDK dir is required for hbmk2 because most + libs on the standard hbmk2 list of Windows system libs + (like winspool) included in link process are stored in + this subdir. It's still recommended to do this tweak in + local bcc environment. + ; Please test it. + + * utils/hbmk2/examples/contribf.hbp + + Added hbqt. + 2009-05-17 18:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rddsql/sddmy/mysqldd.c * harbour/contrib/rddsql/sddpg/pgsqldd.c @@ -31,8 +46,8 @@ * harbour/contrib/rddsql/hbrddsql.h * harbour/contrib/rddsql/sqlbase.c - + added NULL SDD driver. It allows to use SQLBASE, SQLMIX RDD - without any real SDD driver. It could be usefull to implement + + added NULL SDD driver. It allows to use SQLBASE, SQLMIX RDD + without any real SDD driver. It could be usefull to implement memory/array RDD * unspecified SDD methods are "inherited" from NULL SDD @@ -43,7 +58,7 @@ * harbour/contrib/rddsql/sddmy/mysqldd.c * harbour/contrib/rddsql/sddodbc/odbcdd.c * harbour/contrib/rddsql/sddpg/pgsqldd.c - * deleted empty or default SDD methods. They are inherited from + * deleted empty or default SDD methods. They are inherited from NULL SDD now * harbour/contrib/rddsql/sddodbc/tests/test1.prg @@ -75,7 +90,7 @@ 2009-05-16 16:55 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/contrib/rddsql/hbrddsql.h - + added field to connection structure to store database dependent + + added field to connection structure to store database dependent data + harbour/contrib/rddsql/sddodbc diff --git a/harbour/utils/hbmk2/examples/contribf.hbp b/harbour/utils/hbmk2/examples/contribf.hbp index 6297bb3d30..ee0ef33404 100644 --- a/harbour/utils/hbmk2/examples/contribf.hbp +++ b/harbour/utils/hbmk2/examples/contribf.hbp @@ -9,7 +9,7 @@ libs=hbbmcdx hbbtree hbclipsm hbcrypt hbct hbgt hbmisc hbmzip hbnf hbvpdf hbziparc rddsql xhb # contribs portable, with external dependencies: -libs=hbcurl hbfbird hbgd hbmsql hbmysql hbpgsql sddfb sddmy sddpg +libs=hbcurl hbfbird hbgd hbmsql hbmysql hbpgsql hbqt sddfb sddmy sddpg # contribs with limited availability (some with external dependencies): {!pocc&!xcc&!dmc&!owatcom}libs=gtalleg diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index ad6b905e13..d308f7a18e 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -154,6 +154,9 @@ REQUEST hbmk_KEYW #define _WORKDIR_DEF_ ".hbmk" +#define _BCC_BIN_DETECT() FindInPath( "bcc32" ) +#define _BCC_PSDK_LIBPATH( p ) PathNormalize( FN_DirGet( p ) + ".." + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "PSDK" ) + #define _HBMK_lQuiet 1 #define _HBMK_lInfo 2 #define _HBMK_cARCH 3 @@ -708,8 +711,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) OTHERWISE ; cDynLibExt := ".so" ENDSWITCH CASE hbmk[ _HBMK_cARCH ] == "dos" - aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "djgpp" },; - { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" } } /* TODO: Add full support for wcc386 */ + aCOMPDET := { { {|| FindInPath( "gcc" ) }, "djgpp" },; + { {|| FindInPath( "wpp386" ) }, "owatcom" } } /* TODO: Add full support for wcc386 */ aCOMPSUP := { "djgpp", "gcc", "owatcom" } cBin_CompPRG := "harbour" + s_cHBPOSTFIX + ".exe" s_aLIBHBGT := { "gtdos" } @@ -723,8 +726,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) cOpt_CprsMin := "-1" cOpt_CprsMax := "-9" CASE hbmk[ _HBMK_cARCH ] == "os2" - aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "gcc" },; - { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" } } /* TODO: Add full support for wcc386 */ + aCOMPDET := { { {|| FindInPath( "gcc" ) }, "gcc" },; + { {|| FindInPath( "wpp386" ) }, "owatcom" } } /* TODO: Add full support for wcc386 */ aCOMPSUP := { "gcc", "owatcom" } cBin_CompPRG := "harbour" + s_cHBPOSTFIX + ".exe" s_aLIBHBGT := { "gtos2" } @@ -736,19 +739,21 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) CASE hbmk[ _HBMK_cARCH ] == "win" /* Order is significant. owatcom also keeps a cl.exe in its binary dir. */ - aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) != NIL }, "mingw" },; /* TODO: Add full support for g++ */ - { {|| FindInPath( "wpp386" ) != NIL .AND. ; - ! Empty( GetEnv( "WATCOM" ) ) }, "owatcom" },; /* TODO: Add full support for wcc386 */ - { {|| FindInPath( "ml64" ) != NIL }, "msvc64" },; - { {|| FindInPath( "cl" ) != NIL .AND. ; - FindInPath( "wpp386" ) == NIL }, "msvc" },; - { {|| FindInPath( "bcc32" ) != NIL }, "bcc" },; - { {|| FindInPath( "porc64" ) != NIL }, "pocc64" },; - { {|| FindInPath( "pocc" ) != NIL }, "pocc" },; - { {|| ( tmp1 := FindInPath( "icl" ) ) != NIL .AND. "itanium" $ Lower( tmp1 ) }, "iccia64" },; - { {|| FindInPath( "icl" ) != NIL }, "icc" },; - { {|| FindInPath( "cygstart" ) != NIL }, "cygwin" },; - { {|| FindInPath( "xcc" ) != NIL }, "xcc" } } + aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingw" },; /* TODO: Add full support for g++ */ + { {|| iif( ! Empty( GetEnv( "WATCOM" ) ),; + FindInPath( "wpp386" ),; + NIL ) }, "owatcom" },; /* TODO: Add full support for wcc386 */ + { {|| FindInPath( "ml64" ) }, "msvc64" },; + { {|| iif( FindInPath( "wpp386" ) == NIL,; + FindInPath( "cl" ),; + NIL ) }, "msvc" },; + { {|| _BCC_BIN_DETECT() }, "bcc" },; + { {|| FindInPath( "porc64" ) }, "pocc64" },; + { {|| FindInPath( "pocc" ) }, "pocc" },; + { {|| iif( ( tmp1 := FindInPath( "icl" ) ) != NIL .AND. "itanium" $ Lower( tmp1 ), tmp1, NIL ) }, "iccia64" },; + { {|| FindInPath( "icl" ) }, "icc" },; + { {|| FindInPath( "cygstart" ) }, "cygwin" },; + { {|| FindInPath( "xcc" ) }, "xcc" } } aCOMPSUP := { "mingw", "msvc", "bcc", "owatcom", "icc", "pocc", "xcc", "cygwin",; "mingw64", "msvc64", "msvcia64", "iccia64", "pocc64" } cBin_CompPRG := "harbour" + s_cHBPOSTFIX + ".exe" @@ -766,9 +771,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) s_aLIBSYSCORE := { "kernel32", "user32", "gdi32", "advapi32", "ws2_32" } s_aLIBSYSMISC := { "winspool", "comctl32", "comdlg32", "shell32", "ole32", "oleaut32", "uuid", "mpr", "winmm", "mapi32", "imm32", "msimg32" } CASE hbmk[ _HBMK_cARCH ] == "wce" - aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) != NIL }, "mingwarm" },; - { {|| FindInPath( "cl" ) != NIL }, "msvcarm" },; - { {|| FindInPath( "pocc" ) != NIL }, "poccarm" } } + aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingwarm" },; + { {|| FindInPath( "cl" ) }, "msvcarm" },; + { {|| FindInPath( "pocc" ) }, "poccarm" } } aCOMPSUP := { "mingwarm", "msvcarm", "poccarm" } cBin_CompPRG := "harbour" + s_cHBPOSTFIX + ".exe" s_aLIBHBGT := { "gtwvt", "gtgui" } @@ -848,6 +853,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) { {| cPrefix | tmp1 := PathNormalize( s_cHB_INSTALL_PREFIX ) + "mingwce" + hb_osPathSeparator() + "bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-" } } ENDIF + hbmk[ _HBMK_aLIBPATH ] := {} + hbmk[ _HBMK_aINCPATH ] := {} + /* Autodetect compiler */ IF lStopAfterHarbour @@ -866,8 +874,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) IF Empty( hbmk[ _HBMK_cCOMP ] ) .AND. ! Empty( aCOMPDET ) /* Check compilers */ FOR tmp := 1 TO Len( aCOMPDET ) - IF Eval( aCOMPDET[ tmp ][ _COMPDET_bBlock ] ) + IF ! Empty( tmp1 := Eval( aCOMPDET[ tmp ][ _COMPDET_bBlock ] ) ) hbmk[ _HBMK_cCOMP ] := aCOMPDET[ tmp ][ _COMPDET_cCOMP ] + IF hbmk[ _HBMK_cCOMP ] == "bcc" + AAdd( hbmk[ _HBMK_aLIBPATH ], _BCC_PSDK_LIBPATH( tmp1 ) ) + ENDIF EXIT ENDIF NEXT @@ -902,6 +913,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) hbmk_OutErr( hb_StrFormat( I_( "Error: Compiler value unknown: %1$s" ), hbmk[ _HBMK_cCOMP ] ) ) RETURN 2 ENDIF + IF hbmk[ _HBMK_cCOMP ] == "bcc" + AAdd( hbmk[ _HBMK_aLIBPATH ], _BCC_PSDK_LIBPATH( _BCC_BIN_DETECT() ) ) + ENDIF IF hbmk[ _HBMK_cARCH ] $ "win|wce" /* Detect cross platform CCPREFIX and CCPATH if embedded MinGW installation is detected */ FOR tmp := 1 TO Len( aCOMPDET_LOCAL ) @@ -920,9 +934,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) /* Finish detecting bin/lib/include dirs */ - hbmk[ _HBMK_aLIBPATH ] := {} - hbmk[ _HBMK_aINCPATH ] := {} - IF Empty( s_cHB_BIN_INSTALL ) s_cHB_BIN_INSTALL := PathNormalize( s_cHB_INSTALL_PREFIX ) + "bin" ENDIF