From 2b5d2600aa063ed1710b45d30f2bbd6663b1fdf7 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 6 Jun 2009 14:07:51 +0000 Subject: [PATCH] 2009-06-06 16:07 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL * Made clear that GNU Make installation isn't needed for mingw targets. * include/hbextern.ch + Added HB_EXECMSG(). * contrib/xhb/tests/xhb.hbc + Added hbct, hbtip and hbwin (on Windows) to emulate xhb, which has these libs as part of the core. * utils/hbmk2/hbmk2.prg + Environment variables can not be used as filters. If an envvar with the name of the filter exists and it's value isn't "0" or "no", it's considered a match. - Deleted -EHsc-/-EHsc/-EHs-c- switch variant from msvc C flag list. This was copied from Harbour Make files, and most probably they aren't necessary even there, especially since they are set inconsistently (differently) for depending on msvc compiler version and win/wce target. These flags deal with exception handling, so I doubt any core code (with the exception of hbqt) would need it. + Added some level of internal support for build modes (release, debug, fulldebug) and unicode/ascii selection. Added to TODO anyway, will continue with them in the future. --- harbour/ChangeLog | 27 +++++++++++++++ harbour/INSTALL | 8 +++-- harbour/contrib/xhb/tests/xhb.hbc | 5 +++ harbour/include/hbextern.ch | 1 + harbour/utils/hbmk2/hbmk2.prg | 56 ++++++++++++++++++++----------- 5 files changed, 75 insertions(+), 22 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e97320bbb1..3097f3957e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,33 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-06-06 16:07 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * INSTALL + * Made clear that GNU Make installation isn't needed for mingw + targets. + + * include/hbextern.ch + + Added HB_EXECMSG(). + + * contrib/xhb/tests/xhb.hbc + + Added hbct, hbtip and hbwin (on Windows) to emulate xhb, which + has these libs as part of the core. + + * utils/hbmk2/hbmk2.prg + + Environment variables can not be used as filters. + If an envvar with the name of the filter exists and it's + value isn't "0" or "no", it's considered a match. + - Deleted -EHsc-/-EHsc/-EHs-c- switch variant from msvc C flag list. + This was copied from Harbour Make files, and most probably they + aren't necessary even there, especially since they are set + inconsistently (differently) for depending on msvc compiler + version and win/wce target. These flags deal with exception + handling, so I doubt any core code (with the exception of hbqt) + would need it. + + Added some level of internal support for build modes + (release, debug, fulldebug) and unicode/ascii selection. Added + to TODO anyway, will continue with them in the future. + 2009-06-06 14:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbvm.h * harbour/source/vm/hvm.c diff --git a/harbour/INSTALL b/harbour/INSTALL index b00d6dfc7d..6c034c9429 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -48,9 +48,11 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE belonging to other C compilers are interfering with your setup. For the list of supported compilers, please look up the relevant section in this file. - 3.) Make sure to have GNU Make. Certain older versions and builds - are untested and may not work. We recommend the one distributed - by MinGW team. Use this link to get it: + 3.) Make sure to have GNU Make. If you build for MinGW target, + you can skip this point, since you already have GNU Make ready + to use. Certain older GNU Make versions and builds are untested + and may not work. We recommend the one distributed by MinGW team. + Use this link to get it: https://sourceforge.net/project/showfiles.php?group_id=2435&package_id=23918 If you have it, you have three choices: - Copy mingw32-make.exe or make.exe into a separate directory diff --git a/harbour/contrib/xhb/tests/xhb.hbc b/harbour/contrib/xhb/tests/xhb.hbc index 976cbc7434..2eafaf3308 100644 --- a/harbour/contrib/xhb/tests/xhb.hbc +++ b/harbour/contrib/xhb/tests/xhb.hbc @@ -3,3 +3,8 @@ # libs=xhb + +# xhb has these as part of core, so we're adding them to emulate it. +# They are not needed to use xhb lib itself. +libs=hbct hbtip +{allwin}libs=hbwin diff --git a/harbour/include/hbextern.ch b/harbour/include/hbextern.ch index b44f0b3ccf..9723ea7a77 100644 --- a/harbour/include/hbextern.ch +++ b/harbour/include/hbextern.ch @@ -889,6 +889,7 @@ EXTERNAL HB_APARAMS EXTERNAL HB_PVALUE EXTERNAL HB_FORNEXT EXTERNAL HB_EXECFROMARRAY +EXTERNAL HB_EXECMSG EXTERNAL HB_METHODNAME EXTERNAL HB_SETMACRO EXTERNAL HB_STOD diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index f72351fd93..054ce31e5e 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -79,6 +79,9 @@ writing, most of them has one created. Thank you. [vszakats] */ +/* TODO: Support debug/release modes. Some default setting can be set + accordingly, and user can use it to further tweak settings. */ +/* TODO: Support unicode/non-unicode build modes. */ /* TODO: Create temporary .c files with mangled names, to avoid incidentally overwriting existing .c file with the same name. Problems to solve: -hbcc compatibility (the feature has to be @@ -160,6 +163,10 @@ REQUEST hbmk_KEYW #define _HBMODE_HB10 1 #define _HBMODE_XHB 2 +#define _CONF_RELEASE 0 /* No debug */ +#define _CONF_DEBUG 1 /* Harbour level debug */ +#define _CONF_FULLDEBUG 2 /* Harbour + C level debug */ + #define _LNG_MARKER "${lng}" #define _HBMK_CFG_NAME "hbmk.cfg" @@ -231,23 +238,25 @@ REQUEST hbmk_KEYW #define _HBMK_lINC 44 #define _HBMK_lREBUILDPO 45 #define _HBMK_lMINIPO 46 +#define _HBMK_lUNICODE 47 +#define _HBMK_nCONF 48 -#define _HBMK_aPO 47 -#define _HBMK_cHBL 48 -#define _HBMK_aLNG 49 -#define _HBMK_cPO 50 +#define _HBMK_aPO 49 +#define _HBMK_cHBL 50 +#define _HBMK_aLNG 51 +#define _HBMK_cPO 52 -#define _HBMK_lDEBUGTIME 51 -#define _HBMK_lDEBUGINC 52 -#define _HBMK_lDEBUGSTUB 53 -#define _HBMK_lDEBUGI18N 54 +#define _HBMK_lDEBUGTIME 53 +#define _HBMK_lDEBUGINC 54 +#define _HBMK_lDEBUGSTUB 55 +#define _HBMK_lDEBUGI18N 56 -#define _HBMK_cCCPATH 55 -#define _HBMK_cCCPREFIX 56 +#define _HBMK_cCCPATH 57 +#define _HBMK_cCCPREFIX 58 -#define _HBMK_lUTF8 57 +#define _HBMK_lUTF8 59 -#define _HBMK_MAX_ 58 +#define _HBMK_MAX_ 59 #ifndef _HBMK_EMBEDDED_ @@ -577,6 +586,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) hbmk[ _HBMK_lINC ] := .F. hbmk[ _HBMK_lREBUILDPO ] := .F. hbmk[ _HBMK_lMINIPO ] := .F. + hbmk[ _HBMK_lUNICODE ] := .F. + hbmk[ _HBMK_nCONF ] := _CONF_RELEASE hbmk[ _HBMK_lDEBUGTIME ] := .F. hbmk[ _HBMK_lDEBUGINC ] := .F. @@ -2572,13 +2583,13 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) IF hbmk[ _HBMK_lOPTIM ] IF hbmk[ _HBMK_cCOMP ] == "msvcarm" IF Empty( GetEnv( "HB_VISUALC_VER_PRE80" ) ) - cOpt_CompC += " -Od -Os -Gy -GS- -EHsc- -Gm -Zi -GR-" + cOpt_CompC += " -Od -Os -Gy -GS- -Gm -Zi -GR-" ELSE - cOpt_CompC += " -Oxsb1 -EHsc -YX -GF" + cOpt_CompC += " -Oxsb1 -YX -GF" ENDIF ELSE IF Empty( GetEnv( "HB_VISUALC_VER_PRE80" ) ) - cOpt_CompC += " -Ot2b1 -EHs-c-" + cOpt_CompC += " -Ot2b1" ELSE cOpt_CompC += " -Ogt2yb1p -GX- -G6 -YX" ENDIF @@ -5872,11 +5883,13 @@ FUNCTION hbmk_CPU( hbmk ) RETURN "" FUNCTION hbmk_KEYW( hbmk, cKeyword ) + LOCAL tmp - IF cKeyword == iif( hbmk[ _HBMK_lMT ] , "mt" , "st" ) .OR. ; - cKeyword == iif( hbmk[ _HBMK_lGUI ] , "gui" , "std" ) .OR. ; - cKeyword == iif( hbmk[ _HBMK_lDEBUG ] , "debug" , "nodebug" ) .OR. ; - cKeyword == iif( hbmk[ _HBMK_lSHARED ], "shared", "static" ) + IF cKeyword == iif( hbmk[ _HBMK_lMT ] , "mt" , "st" ) .OR. ; + cKeyword == iif( hbmk[ _HBMK_lGUI ] , "gui" , "std" ) .OR. ; + cKeyword == iif( hbmk[ _HBMK_lDEBUG ] , "debug" , "nodebug" ) .OR. ; + cKeyword == iif( hbmk[ _HBMK_lSHARED ] , "shared" , "static" ) .OR. ; + cKeyword == iif( hbmk[ _HBMK_lUNICODE ], "unicode" , "ascii" ) RETURN .T. ENDIF @@ -5899,6 +5912,11 @@ FUNCTION hbmk_KEYW( hbmk, cKeyword ) RETURN .T. ENDIF + tmp := GetEnv( cKeyword ) + IF ! Empty( tmp ) .AND. !( tmp == "0" ) .AND. !( Lower( tmp ) == "no" ) + RETURN .T. + ENDIF + RETURN .F. STATIC PROCEDURE GetUILangCDP( /* @ */ cLNG, /* @ */ cCDP )