diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 35f0276d6c..35b76e4379 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,15 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-02-24 11:37 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * utils/hbmk2/hbmk2.prg + ! Refined autodetection of msvc to not be confused by + watcom binary dir in the path. + ! Refined autodetection of owatcom by also checking for + WATCOM envvar. Thanks Petr Chornyj for the hint. + % Removed hack to not prioritize MSVC compiler detection, + so it's now handled just like the others. + 2009-02-24 11:26 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + INSTALL + Installation docs kept simple. diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 9c8ea86251..e1bbcf842e 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -397,9 +397,11 @@ FUNCTION Main( ... ) /* Order is significant. owatcom also keeps a cl.exe in it's binary dir. */ aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "mingw" },; /* TODO: Add full support for g++ */ - { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */ + { {|| FindInPath( "wpp386" ) != NIL .AND. ; + ! Empty( GetEnv( "WATCOM" ) ) }, "owatcom" },; /* TODO: Add full support for wcc386 */ { {|| FindInPath( "ml64" ) != NIL }, "msvc64" },; - { {|| FindInPath( "cl" ) != NIL }, "msvc" },; + { {|| FindInPath( "cl" ) != NIL .AND. ; + FindInPath( "wpp386" ) == NIL }, "msvc" },; { {|| FindInPath( "bcc32" ) != NIL }, "bcc32" },; { {|| FindInPath( "porc64" ) != NIL }, "pocc64" },; { {|| FindInPath( "pocc" ) != NIL }, "pocc" },; @@ -435,18 +437,13 @@ FUNCTION Main( ... ) t_cCOMP := NIL ENDIF ELSEIF ! Empty( aCOMPDET ) - /* Skip it for msvc, as it creates problems for other compilers. */ - IF !( cSelfCOMP $ "msvc|msvc64" ) - /* Look for this compiler first */ - FOR tmp := 1 TO Len( aCOMPDET ) - IF aCOMPDET[ tmp ][ 2 ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ 1 ] ) - t_cCOMP := aCOMPDET[ tmp ][ 2 ] - EXIT - ENDIF - NEXT - ELSE - cSelfCOMP := "" - ENDIF + /* Look for this compiler first */ + FOR tmp := 1 TO Len( aCOMPDET ) + IF aCOMPDET[ tmp ][ 2 ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ 1 ] ) + t_cCOMP := aCOMPDET[ tmp ][ 2 ] + EXIT + ENDIF + NEXT IF Empty( t_cCOMP ) /* Check the rest of compilers */ FOR tmp := 1 TO Len( aCOMPDET )