2003-11-24 18:32 UTC+0100 Lorenzo Fiorini <lorenzo_fiorini@tin.it>

* source/compiler/gencobj.c
    ! fixed to allow = for the C compiler options
    ( suggested by Przemyslaw Czerpak )
    ! added support of OpenWatcom C
    ! cleaned the verbose option
  * source/rdd/dbfcdx/dbfcdx1.h
    ! changed to allow OpenWatcom C build
    ( suggested by Przemyslaw Czerpak )
  * source/vm/itemapi.c
    ! added support of OpenWatcom C
This commit is contained in:
Lorenzo Fiorini
2003-11-24 18:02:18 +00:00
parent 1d13f77438
commit e43a44c18e
4 changed files with 63 additions and 60 deletions

View File

@@ -8,6 +8,18 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2003-11-24 18:32 UTC+0100 Lorenzo Fiorini <lorenzo_fiorini@tin.it>
* source/compiler/gencobj.c
! fixed to allow = for the C compiler options
( suggested by Przemyslaw Czerpak )
! added support of OpenWatcom C
! cleaned the verbose option
* source/rdd/dbfcdx/dbfcdx1.h
! changed to allow OpenWatcom C build
( suggested by Przemyslaw Czerpak )
* source/vm/itemapi.c
! added support of OpenWatcom C
2003-11-14 16:45 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbmath.h
* fixed to compile under OpenWatcom

View File

@@ -50,6 +50,11 @@ void hb_compGenCObj( PHB_FNAME pFileName )
char szOutPath[ _POSIX_PATH_MAX ] = "\0";
#if defined( OS_UNIX_COMPATIBLE )
char szDefaultUnixPath[ _POSIX_PATH_MAX ] = "/etc:/usr/local/etc";
#define HB_NULL_STR " > /dev/null"
#define HB_ACCESS_FLAG F_OK
#elif defined( OS_DOS_COMPATIBLE )
#define HB_NULL_STR " >nul"
#define HB_ACCESS_FLAG 0
#endif
FILE * yyc;
char * pszCfg;
@@ -68,7 +73,7 @@ void hb_compGenCObj( PHB_FNAME pFileName )
/* Begin second pass */
/* Set up things */
#if defined(__MSDOS__) || defined(__WIN32__) || defined(_Windows)
#if defined( OS_DOS_COMPATIBLE )
pszEnv = hb_getenv( "PATH" );
#elif defined( OS_UNIX_COMPATIBLE )
pszEnv = szDefaultUnixPath;
@@ -113,52 +118,46 @@ void hb_compGenCObj( PHB_FNAME pFileName )
szStr[ ulLen ] = '\0';
/* TODO: Check for comments within macros, i.e: CC=bcc32 #comment */
if( szStr )
{
szToken = strtok( szStr, "=" );
if( szToken )
if( *szStr )
{
/* Checks compiler name */
if( ! hb_stricmp( szToken, "CC" ) )
szToken = strchr( szStr, '=' );
if( szToken )
{
szToken = strtok( NULL, "=" );
if( szToken ) /* If empty, preserve last value */
sprintf( szCompiler, "%s", szToken );
*szToken++ = '\0';
if ( *szToken )
{
/* Checks compiler name */
if( ! hb_stricmp( szStr, "CC" ) )
{
sprintf( szCompiler, "%s", szToken );
}
/* Checks optional switches */
else if( ! hb_stricmp( szStr, "CFLAGS" ) )
{
sprintf( szOptions, "%s", szToken );
}
/* Wanna see C compiler output ? */
else if( ! hb_stricmp( szStr, "VERBOSE" ) )
{
if( ! hb_stricmp( szToken, "YES" ) )
bVerbose = TRUE;
}
/* Delete intermediate C file ? */
else if( ! hb_stricmp( szStr, "DELTMP" ) )
{
if( ! hb_stricmp( szToken, "NO" ) )
bDelTmp = FALSE;
}
}
}
/* Checks optional switches */
if( szToken && ! hb_stricmp( szToken, "CFLAGS" ) )
{
szToken = strtok( NULL, "=" );
if( szToken )
sprintf( szOptions, "%s", szToken );
}
/* Wanna see C compiler output ? */
if( szToken && ! hb_stricmp( szToken, "VERBOSE" ) )
{
szToken = strtok( NULL, "=" );
if( szToken && ! hb_stricmp( szToken, "YES" ) )
bVerbose = TRUE;
}
/* Delete intermediate C file ? */
if( szToken && ! hb_stricmp( szToken, "DELTMP" ) )
{
szToken = strtok( NULL, "=" );
if( szToken && ! hb_stricmp( szToken, "NO" ) )
bDelTmp = FALSE;
}
}
}
}
fclose( yyc );
}
#if defined(__MSDOS__) || defined(__WIN32__) || defined(_Windows)
#if defined( OS_DOS_COMPATIBLE )
{
if( pszEnv )
hb_xfree( ( void * ) pszEnv );
@@ -181,7 +180,7 @@ void hb_compGenCObj( PHB_FNAME pFileName )
if( hb_comp_pOutPath->szPath )
pOut->szPath = hb_comp_pOutPath->szPath;
#if defined(__BORLANDC__) || defined(_MSC_VER)
#if defined(__BORLANDC__) || defined(_MSC_VER) || defined(__WATCOMC__)
pOut->szExtension = ".obj";
#else
pOut->szExtension = ".o"; /* Don't know if we can hardcode it for Un*x */
@@ -190,6 +189,8 @@ void hb_compGenCObj( PHB_FNAME pFileName )
#if defined(_MSC_VER)
strcat( szOutPath, "-Fo" );
#elif defined(__WATCOMC__)
strcat( szOutPath, "-fo=" );
#else
strcat( szOutPath, "-o" );
#endif
@@ -201,19 +202,15 @@ void hb_compGenCObj( PHB_FNAME pFileName )
if( *szCompiler )
{
sprintf( szCommandLine, "%s %s %s %s", szCompiler, szOptions, szOutPath, szFileName );
if( bVerbose )
{
printf( "\n" ) ;
sprintf( szCommandLine, "%s %s %s %s", szCompiler, szOptions, szOutPath, szFileName );
printf( "\n" ) ;
printf( "\n%s\n", szCommandLine ) ;
}
else
{
#if defined(__MSDOS__) || defined(__WIN32__) || defined(_Windows)
sprintf( szCommandLine, "%s %s %s %s > nul", szCompiler, szOptions, szOutPath, szFileName );
#elif defined( OS_UNIX_COMPATIBLE )
sprintf( szCommandLine, "%s %s %s %s > /dev/null", szCompiler, szOptions, szOutPath, szFileName );
#endif
strcat( szCommandLine, HB_NULL_STR );
}
/* Compile it! */
@@ -248,11 +245,7 @@ static char * hb_searchpath( const char * pszFile, char * pszEnv, char * pszCfg
BOOL bFound = FALSE;
/* Check current dir first */
#if defined( OS_UNIX_COMPATIBLE )
if( access( ( const char * ) pszFile, F_OK ) == 0 )
#else
if( access( ( const char * ) pszFile, 0 ) == 0 )
#endif
if( access( ( const char * ) pszFile, HB_ACCESS_FLAG ) == 0 )
{
sprintf( pszCfg, "%s", pszFile );
return ( char * ) pszFile;
@@ -266,11 +259,7 @@ static char * hb_searchpath( const char * pszFile, char * pszEnv, char * pszCfg
while( pszPath )
{
sprintf( pszCfg, "%s%c%s", pszPath, OS_PATH_DELIMITER, pszFile );
#if defined( OS_UNIX_COMPATIBLE )
if( access( ( const char * ) pszCfg, F_OK ) == 0 )
#else
if( access( ( const char * ) pszCfg, 0 ) == 0 )
#endif
if( access( ( const char * ) pszCfg, HB_ACCESS_FLAG ) == 0 )
{
bFound = TRUE;
break;

View File

@@ -130,11 +130,12 @@ typedef struct _SORTSWAPPAGE
ULONG keysLeft;
ULONG tmpRecNo; /* to speed up access */
BYTE tmpKeyLen;
char * tmpKeyVal;
char page[ 512 ];
BYTE * tmpKeyVal;
BYTE page[ 512 ];
} SORTSWAPPAGE;
typedef SORTSWAPPAGE * LPSORTSWAPPAGE;
typedef struct _SORTSWAPITEM
{
ULONG recno;

View File

@@ -86,7 +86,7 @@
#if !defined(__DJGPP__)
#include <math.h> /* For log() */
#endif
#if defined(_MSC_VER) || defined(__IBMCPP__) || (__BORLANDC__ > 1040) /* Use this only above Borland C++ 3.1 */
#if defined(_MSC_VER) || defined(__IBMCPP__) || (__BORLANDC__ > 1040) || defined(__WATCOMC__) /* Use this only above Borland C++ 3.1 */
#include <float.h> /* for _finite() and _isnan() */
#endif
@@ -1237,6 +1237,7 @@ char * hb_itemStr( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec )
#endif
if( pNumber->item.asDouble.length == 99
#if defined(__WATCOMC__)
|| !_finite( dNumber )
#elif defined(_MSC_VER) || (__BORLANDC__ > 1040) /* Use this only above Borland C++ 3.1 */
|| !_finite(dNumber)
#elif defined(__DJGPP__) || defined(__MINGW32__)