2009-06-16 15:03 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added preliminary support for autosetup for several more
compilers: win/watcom, win/pocc, win/pocc64, wce/poccarm,
dos/djgpp, dos/watcom.
Only these were tested: dos/djgpp, win/watcom, win/pocc.
This means it's now possible to "bundle" DJGPP, watcom or
pocc _compiler tools_ with Harbour and hbmk2 will be able
to detect them, or user can choose between them using
-arch/-comp switches, then hbmk2 will just be able to use
them "as is", without the need to change anything on the
environment. zero-conf usage in essence, just like we
already had for mingw family.
; NOTE: Before the release I'll rethink placement of these
tools inside the Harbour directory tree. Currently
they are detected in the Harbour root dir, but with
multiple compilers this is not ideal.
* source/vm/thread.c
! Fixed compile error after 2009-06-16 08:55 UTC+0200.
This commit is contained in:
@@ -17,6 +17,27 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-06-16 15:03 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Added preliminary support for autosetup for several more
|
||||
compilers: win/watcom, win/pocc, win/pocc64, wce/poccarm,
|
||||
dos/djgpp, dos/watcom.
|
||||
Only these were tested: dos/djgpp, win/watcom, win/pocc.
|
||||
This means it's now possible to "bundle" DJGPP, watcom or
|
||||
pocc _compiler tools_ with Harbour and hbmk2 will be able
|
||||
to detect them, or user can choose between them using
|
||||
-arch/-comp switches, then hbmk2 will just be able to use
|
||||
them "as is", without the need to change anything on the
|
||||
environment. zero-conf usage in essence, just like we
|
||||
already had for mingw family.
|
||||
; NOTE: Before the release I'll rethink placement of these
|
||||
tools inside the Harbour directory tree. Currently
|
||||
they are detected in the Harbour root dir, but with
|
||||
multiple compilers this is not ideal.
|
||||
|
||||
* source/vm/thread.c
|
||||
! Fixed compile error after 2009-06-16 08:55 UTC+0200.
|
||||
|
||||
2009-06-16 13:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/contrib/hbct/token1.c
|
||||
% use explicit constant value instead of HB_MKULONG() macro
|
||||
|
||||
@@ -2320,6 +2320,7 @@ HB_FUNC( HB_MUTEXSUBSCRIBENOW )
|
||||
|
||||
HB_FUNC( HB_MUTEXQUEUEINFO )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
PHB_ITEM pItem = hb_mutexParam( 1 );
|
||||
|
||||
if( pItem )
|
||||
|
||||
@@ -155,6 +155,7 @@ REQUEST hbmk_KEYW
|
||||
#define _COMPDETE_cARCH 2
|
||||
#define _COMPDETE_cCOMP 3
|
||||
#define _COMPDETE_cCCPREFIX 4
|
||||
#define _COMPDETE_bSetup 5
|
||||
|
||||
#define _HBMODE_NATIVE 0
|
||||
#define _HBMODE_HB10 1
|
||||
@@ -404,6 +405,57 @@ STATIC FUNCTION hbmk_run( cCmd )
|
||||
RETURN result
|
||||
#endif
|
||||
|
||||
STATIC PROCEDURE hbmk_COMP_Setup( cARCH, cCOMP, cBasePath )
|
||||
|
||||
/* TODO: Use CCPREFIX instead of PATH modification, where possible. */
|
||||
|
||||
/* NOTE: We have to retain existing PATH as we may need some tools
|
||||
from it, like upx compressor. [vszakats] */
|
||||
|
||||
cBasePath := PathNormalize( cBasePath )
|
||||
|
||||
DO CASE
|
||||
CASE cARCH == "win" .AND. cCOMP == "watcom"
|
||||
|
||||
hb_SetEnv( "WATCOM", cBasePath )
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "BINNT;" + cBasePath + hb_osPathSeparator() + "BINW;" + hb_GetEnv( "PATH" ) )
|
||||
hb_SetEnv( "EDPATH", cBasePath + hb_osPathSeparator() + "EDDAT" )
|
||||
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "H;" + cBasePath + hb_osPathSeparator() + "H" + hb_osPathSeparator() + "NT" )
|
||||
|
||||
CASE cARCH == "win" .AND. cCOMP == "pocc"
|
||||
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
|
||||
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include;" + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
|
||||
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win" )
|
||||
|
||||
CASE cARCH == "win" .AND. cCOMP == "pocc64"
|
||||
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
|
||||
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include;" + cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "Win" )
|
||||
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "Win64" )
|
||||
|
||||
CASE cARCH == "wce" .AND. cCOMP == "poccarm"
|
||||
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "Bin;" + hb_GetEnv( "PATH" ) )
|
||||
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "Include" + hb_osPathSeparator() + "WinCE;" + cBasePath + hb_osPathSeparator() + "Include" )
|
||||
hb_SetEnv( "LIB", cBasePath + hb_osPathSeparator() + "Lib;" + cBasePath + hb_osPathSeparator() + "Lib" + hb_osPathSeparator() + "WinCE" )
|
||||
|
||||
CASE cARCH == "dos" .AND. cCOMP == "djgpp"
|
||||
|
||||
hb_SetEnv( "DJGPP", cBasePath + hb_osPathSeparator() + "djgpp.env" )
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "bin;" + hb_GetEnv( "PATH" ) )
|
||||
|
||||
CASE cARCH == "dos" .AND. cCOMP == "watcom"
|
||||
|
||||
hb_SetEnv( "WATCOM", cBasePath )
|
||||
hb_SetEnv( "PATH", cBasePath + hb_osPathSeparator() + "BINW;" + hb_GetEnv( "PATH" ) )
|
||||
hb_SetEnv( "EDPATH", cBasePath + hb_osPathSeparator() + "EDDAT" )
|
||||
hb_SetEnv( "INCLUDE", cBasePath + hb_osPathSeparator() + "H" )
|
||||
|
||||
ENDCASE
|
||||
|
||||
RETURN
|
||||
|
||||
FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
|
||||
LOCAL hbmk[ _HBMK_MAX_ ]
|
||||
@@ -1025,19 +1077,27 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
|
||||
aCOMPDET_EMBED := {}
|
||||
|
||||
IF hbmk[ _HBMK_cARCH ] $ "win|wce"
|
||||
IF hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
|
||||
|
||||
#if defined( __PLATFORM__WINDOWS )
|
||||
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingw" + hb_osPathSeparator() + "bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw" , "" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingw64" + hb_osPathSeparator() + "bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw64" , "x86_64-pc-mingw32-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingwarm" + hb_osPathSeparator() + "bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-mingw32ce-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingwarm" + hb_osPathSeparator() + "bin", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingw" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw" , "" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingw64" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "win", "mingw64" , "x86_64-pc-mingw32-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingwarm" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-mingw32ce-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "mingwarm" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc" + cCCEXT_mingw ), tmp1, NIL ) }, "wce", "mingwarm", "arm-wince-mingw32ce-" } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "pocc" + hb_osPathSeparator() + "Bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "pocc.exe" ), tmp1, NIL ) }, "win", "pocc" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "watcom" + hb_osPathSeparator() + "binnt", iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "wpp386.exe" ), tmp1, NIL ) }, "win", "watcom" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "djgpp" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos", "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
|
||||
|
||||
#elif defined( __PLATFORM__DOS )
|
||||
|
||||
AAdd( aCOMPDET_EMBED, { {| cPrefix | tmp1 := PathNormalize( l_cHB_INSTALL_PREFIX ) + "djgpp" + hb_osPathSeparator() + "bin" , iif( hb_FileExists( tmp1 + hb_osPathSeparator() + cPrefix + "gcc.exe" ), tmp1, NIL ) }, "dos", "djgpp" , "" , {| cARCH, cCOMP, cPathBin | hbmk_COMP_Setup( cARCH, cCOMP, cPathBin + hb_osPathSeparator() + ".." ) } } )
|
||||
|
||||
#elif defined( __PLATFORM__UNIX )
|
||||
|
||||
IF Empty( hbmk[ _HBMK_cCCPATH ] ) .AND. ;
|
||||
Empty( hbmk[ _HBMK_cCCPREFIX ] )
|
||||
Empty( hbmk[ _HBMK_cCCPREFIX ] ) .AND. ;
|
||||
!( hbmk[ _HBMK_cARCH ] == "dos" )
|
||||
|
||||
DO CASE
|
||||
CASE hbmk[ _HBMK_cCOMP ] $ "mingw"
|
||||
@@ -1080,7 +1140,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
IF Empty( hbmk[ _HBMK_cCOMP ] ) .AND. hbmk[ _HBMK_cARCH ] $ "win|wce"
|
||||
IF Empty( hbmk[ _HBMK_cCOMP ] ) .AND. hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
|
||||
/* Autodetect embedded MinGW installation */
|
||||
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
|
||||
IF hbmk[ _HBMK_cARCH ] == aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] .AND. ;
|
||||
@@ -1088,6 +1148,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
hbmk[ _HBMK_cCOMP ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCOMP ]
|
||||
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
|
||||
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
|
||||
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
|
||||
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
@@ -1110,7 +1173,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Compiler value unknown: %1$s" ), hbmk[ _HBMK_cCOMP ] ) )
|
||||
RETURN 2
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cARCH ] $ "win|wce"
|
||||
IF hbmk[ _HBMK_cARCH ] $ "win|wce|dos"
|
||||
/* Detect cross platform CCPREFIX and CCPATH if embedded MinGW installation is detected */
|
||||
FOR tmp := 1 TO Len( aCOMPDET_EMBED )
|
||||
IF aCOMPDET_EMBED[ tmp ][ _COMPDETE_cARCH ] == hbmk[ _HBMK_cARCH ] .AND. ;
|
||||
@@ -1118,6 +1181,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
! Empty( cPath_CompC := Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bBlock ], aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ] ) )
|
||||
hbmk[ _HBMK_cCCPATH ] := cPath_CompC
|
||||
hbmk[ _HBMK_cCCPREFIX ] := aCOMPDET_EMBED[ tmp ][ _COMPDETE_cCCPREFIX ]
|
||||
IF ISBLOCK( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ] )
|
||||
Eval( aCOMPDET_EMBED[ tmp ][ _COMPDETE_bSetup ], hbmk[ _HBMK_cARCH ], hbmk[ _HBMK_cCOMP ], cPath_CompC )
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
Reference in New Issue
Block a user