diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index 0c62a2087b..30250e2423 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -8,6 +8,39 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
+2009-03-04 08:00 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
+ * INSTALL
+ * HB_INC_OPENSSL sample corrected to point to real-life header dir.
+ + Added cygwin compiler. gcc temply removed from doc list.
+ % Removed unnecessary -n hbmk2 switches.
+ + Added cygwin section.
+
+ * utils/hbmk2/hbmk2.prg
+ + Don't add gtnul as a real library.
+ Please test, I've never used GTNUL.
+ + Added support for cygwin compiler value.
+ (works the same as current 'win/gcc' combination)
+ ! Typo in rare error messages.
+ ! Removed -no-cygwin option from cygwin gcc command line.
+
+ * source/common/hbprintf.c
+ * contrib/hbssl/sslrand.c
+ ! Fixed to compile with cygwin.
+ ; TOFIX:
+ when running hbtest.exe:
+ Error DBFNTX/1011 Write error: _hbtmp_.dbf
+ Called from DBCREATE(0)
+ Called from TEST_BEGIN(0)
+ Called from MAIN(0)
+
+ * make_gnu.sh
+ + Added cygwin detection.
+
+ * config/win/gcc.cf
+ + config/win/cygwin.cf
+ + Added separate cygwin make config.
+ gcc is now just a map to cygwin.
+
2009-03-04 02:16 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* mpkg_win.bat
! Fixed dirs inside the .zip file.
diff --git a/harbour/INSTALL b/harbour/INSTALL
index 4ecbeb4eee..719b8bf431 100644
--- a/harbour/INSTALL
+++ b/harbour/INSTALL
@@ -29,7 +29,7 @@ HOW TO BUILD AND INSTALL HARBOUR
$ sudo ./make_gnu.sh install
To test it, go to
/bin directory and type:
- $ ./hbmk2 -n ../tests/hello.prg
+ $ ./hbmk2 ../tests/hello.prg
$ ./hello
You should see 'Hello world!' on screen.
@@ -37,17 +37,33 @@ HOW TO BUILD AND INSTALL HARBOUR
-------------------------
This is the recommended way to build with MinGW.
- Make sure to have msys and MinGW properly installed
- and setup. msys should be put in PATH _before_ MinGW.
+ Make sure to have msys and MinGW properly configured.
+ msys should be put in PATH _before_ MinGW.
> set HB_INSTALL_PREFIX=
> sh make_gnu.sh install
To test it, go to /bin directory and type:
- > hbmk2 -n ../tests/hello.prg
+ > hbmk2 ../tests/hello.prg
> hello
You should see 'Hello world!' on screen.
+ Windows with Cygwin
+ -------------------
+ Make sure to have Cygwin properly properly configured.
+ Make sure to use Harbour sources with LF line termination,
+ if you see a bash error, try 'dos2unix make_gnu.sh'.
+
+ > set HB_INSTALL_PREFIX=
+ > sh make_gnu.sh install
+
+ To test it, go to /bin directory and type:
+ > hbmk2 ../tests/hello.prg
+ > hello
+ You should see 'Hello world!' on screen.
+
+ NOTE: should use Cygwin drive notation: /cygdrive/c/
+
Windows with other compilers
----------------------------
Platform specific prerequisites:
@@ -75,7 +91,7 @@ HOW TO BUILD AND INSTALL HARBOUR
> make_gnu.bat install
To test it, go to \bin directory and type:
- > hbmk2 -n ..\tests\hello.prg
+ > hbmk2 ..\tests\hello.prg
> hello
You should see 'Hello world!' on screen.
@@ -131,7 +147,7 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD
HB_INC_GD=C:\gd\include
HB_INC_LIBHARU=C:\libharu\include
HB_INC_MYSQL=C:\mysql\include
- HB_INC_OPENSSL=C:\openssl
+ HB_INC_OPENSSL=C:\openssl\inc32
HB_INC_PGSQL=C:\pgsql\include
@@ -157,7 +173,7 @@ SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
msvc - Microsoft Visual C++
owatcom - Open Watcom C++
bcc - Borland/CodeGear C++ 4.x and above
- gcc - Cygwin GNU C
+ cygwin - Cygwin GNU C
rxsnt - EMX/RSXNT/Windows GNU C
icc - IBM Visual Age C++
dmc - Digital Mars C
diff --git a/harbour/config/win/cygwin.cf b/harbour/config/win/cygwin.cf
new file mode 100644
index 0000000000..b1f7bee126
--- /dev/null
+++ b/harbour/config/win/cygwin.cf
@@ -0,0 +1,77 @@
+#
+# $Id$
+#
+
+include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
+
+OBJ_EXT = .o
+EXE_EXT = .exe
+LIB_PREF = lib
+LIB_EXT = .a
+
+CC = gcc
+CC_IN = -c
+CC_OUT = -o
+CPPFLAGS = -I. -I$(HB_INC_COMPILE)
+CFLAGS = -Wall -W -O3 -march=i586 -mtune=pentiumpro
+
+LD = gcc
+LD_OUT = -o
+
+# Add all libraries specified in CONTRIBS and LIBS.
+ifeq ($(HB_LIB_COMPILE),)
+LINKPATHS += -L$(LIB_DIR)
+else
+LINKPATHS += -L$(HB_LIB_COMPILE)
+endif
+
+# The -( option could be appropriate to link against libraries with
+# cyclic dependencies, but I think it is not really necessary if the
+# libraries are kept in proper order.
+# LINKLIBS += -Wl,-(
+LINKLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib)))
+LINKLIBS += $(foreach lib, $(LIBS), -l$(lib))
+
+# This library is needed for CharToOemBuff() and OemToCharBuff() support.
+LINKLIBS += -luser32 -lgdi32 -lwsock32
+
+# If LIBS specifies the rdd library, add all DB drivers.
+ifeq ($(findstring rdd,$(LIBS)),rdd)
+LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
+endif
+
+# Add the specified GT driver library
+ifeq ($(findstring rtl,$(LIBS)),rtl)
+LINKLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt)) -lhbrtl
+endif
+
+# HB_SCREEN_LIB: empty, or one of ncurses, slang
+# HB_SCREEN_LIB=ncurses
+# HB_SCREEN_LIB=slang
+
+ifneq ($(HB_SCREEN_LIB),)
+LINKLIBS += -l$(HB_SCREEN_LIB)
+endif
+
+# Add the optional user path(s)
+ifneq ($(LNK_USR_PATH),)
+LINKPATHS += $(foreach path, $(LNK_USR_PATH), -L$(path))
+endif
+
+# Add the optional user libarary (or libraries)
+ifneq ($(LNK_USR_LIB),)
+LINKLIBS += $(foreach lib, $(LNK_USR_LIB), -l$(lib))
+endif
+
+# The -) option could be appropriate to link against libraries with
+# cyclic dependencies, but I think it is not really necessary if the
+# libraries are kept in proper order.
+# LINKLIBS += -Wl,-)
+
+LDFLAGS = $(LINKPATHS)
+
+AR = ar
+ARFLAGS = $(HB_USER_AFLAGS)
+AR_RULE = $(AR) $(ARFLAGS) r $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
+
+include $(TOP)$(ROOT)config/rules.cf
diff --git a/harbour/config/win/gcc.cf b/harbour/config/win/gcc.cf
index b1f7bee126..9c2b94ab85 100644
--- a/harbour/config/win/gcc.cf
+++ b/harbour/config/win/gcc.cf
@@ -2,76 +2,4 @@
# $Id$
#
-include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
-
-OBJ_EXT = .o
-EXE_EXT = .exe
-LIB_PREF = lib
-LIB_EXT = .a
-
-CC = gcc
-CC_IN = -c
-CC_OUT = -o
-CPPFLAGS = -I. -I$(HB_INC_COMPILE)
-CFLAGS = -Wall -W -O3 -march=i586 -mtune=pentiumpro
-
-LD = gcc
-LD_OUT = -o
-
-# Add all libraries specified in CONTRIBS and LIBS.
-ifeq ($(HB_LIB_COMPILE),)
-LINKPATHS += -L$(LIB_DIR)
-else
-LINKPATHS += -L$(HB_LIB_COMPILE)
-endif
-
-# The -( option could be appropriate to link against libraries with
-# cyclic dependencies, but I think it is not really necessary if the
-# libraries are kept in proper order.
-# LINKLIBS += -Wl,-(
-LINKLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib)))
-LINKLIBS += $(foreach lib, $(LIBS), -l$(lib))
-
-# This library is needed for CharToOemBuff() and OemToCharBuff() support.
-LINKLIBS += -luser32 -lgdi32 -lwsock32
-
-# If LIBS specifies the rdd library, add all DB drivers.
-ifeq ($(findstring rdd,$(LIBS)),rdd)
-LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
-endif
-
-# Add the specified GT driver library
-ifeq ($(findstring rtl,$(LIBS)),rtl)
-LINKLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt)) -lhbrtl
-endif
-
-# HB_SCREEN_LIB: empty, or one of ncurses, slang
-# HB_SCREEN_LIB=ncurses
-# HB_SCREEN_LIB=slang
-
-ifneq ($(HB_SCREEN_LIB),)
-LINKLIBS += -l$(HB_SCREEN_LIB)
-endif
-
-# Add the optional user path(s)
-ifneq ($(LNK_USR_PATH),)
-LINKPATHS += $(foreach path, $(LNK_USR_PATH), -L$(path))
-endif
-
-# Add the optional user libarary (or libraries)
-ifneq ($(LNK_USR_LIB),)
-LINKLIBS += $(foreach lib, $(LNK_USR_LIB), -l$(lib))
-endif
-
-# The -) option could be appropriate to link against libraries with
-# cyclic dependencies, but I think it is not really necessary if the
-# libraries are kept in proper order.
-# LINKLIBS += -Wl,-)
-
-LDFLAGS = $(LINKPATHS)
-
-AR = ar
-ARFLAGS = $(HB_USER_AFLAGS)
-AR_RULE = $(AR) $(ARFLAGS) r $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
-
-include $(TOP)$(ROOT)config/rules.cf
+include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/cygwin.cf
diff --git a/harbour/contrib/hbssl/sslrand.c b/harbour/contrib/hbssl/sslrand.c
index fcf9d0dbba..9954378a6d 100644
--- a/harbour/contrib/hbssl/sslrand.c
+++ b/harbour/contrib/hbssl/sslrand.c
@@ -74,7 +74,7 @@ HB_FUNC( SSL_RAND_STATUS )
HB_FUNC( SSL_RAND_EVENT )
{
-#if defined( HB_OS_WIN )
+#if defined( HB_OS_WIN ) && ! defined( __CYGWIN__ )
hb_retni( RAND_event( hb_parni( 1 ), ( WPARAM ) hb_parnint( 2 ), ( LPARAM ) hb_parnint( 3 ) ) );
#else
hb_retni( 0 );
@@ -83,7 +83,7 @@ HB_FUNC( SSL_RAND_EVENT )
HB_FUNC( SSL_RAND_SCREEN )
{
-#if defined( HB_OS_WIN )
+#if defined( HB_OS_WIN ) && ! defined( __CYGWIN__ )
RAND_screen();
#endif
}
diff --git a/harbour/make_gnu.sh b/harbour/make_gnu.sh
index ef9e6f7592..d781100fee 100755
--- a/harbour/make_gnu.sh
+++ b/harbour/make_gnu.sh
@@ -22,6 +22,7 @@ if [ -z "$HB_ARCHITECTURE" ]; then
hb_arch=`uname -s | tr -d "[-]" | tr '[A-Z]' '[a-z]' 2>/dev/null`
case "$hb_arch" in
*windows*|*mingw32*|msys*) hb_arch="win" ;;
+ cygwin*) hb_arch="cyg" ;;
*os/2*) hb_arch="os2" ;;
*dos) hb_arch="dos" ;;
*bsd) hb_arch="bsd" ;;
@@ -33,12 +34,18 @@ fi
if [ -z "$HB_COMPILER" ]; then
case "$HB_ARCHITECTURE" in
win) HB_COMPILER="mingw" ;;
+ cyg) HB_COMPILER="cygwin" ;;
dos) HB_COMPILER="djgpp" ;;
*) HB_COMPILER="gcc" ;;
esac
export HB_COMPILER
fi
+if [ "$HB_ARCHITECTURE" == "cyg" ]
+then
+ export HB_ARCHITECTURE=win
+fi
+
if [ -z "$HB_GPM_MOUSE" ]; then
if [ "$HB_ARCHITECTURE" = "linux" ] && \
( [ -f /usr/include/gpm.h ] || [ -f /usr/local/include/gpm.h ]); then
@@ -159,7 +166,6 @@ if [ "$HB_ARCHITECTURE" == "win" ] || \
mkdir -p $HB_LIB_INSTALL
mkdir -p $HB_INC_INSTALL
mkdir -p $HB_DOC_INSTALL
- echo !!! $HB_BIN_INSTALL
fi
if [ -z "$HB_ARCHITECTURE" ]; then
diff --git a/harbour/source/common/hbprintf.c b/harbour/source/common/hbprintf.c
index f445fbd200..bc1e54d5f0 100644
--- a/harbour/source/common/hbprintf.c
+++ b/harbour/source/common/hbprintf.c
@@ -271,7 +271,7 @@ optimized.
# define _MODFD( x, p ) modf( x, p )
# else
# define _x_long_dbl long double
-# if defined( __WATCOMC__ ) || defined( __MINGW32CE__ )
+# if defined( __WATCOMC__ ) || defined( __MINGW32CE__ ) || defined( __CYGWIN__ )
# define _HB_WRAP_MODFL_
# define _MODFD( x, p ) _hb_modfl( x, p )
# else
diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg
index 56d08e0e3d..eb09dc0d8c 100644
--- a/harbour/utils/hbmk2/hbmk2.prg
+++ b/harbour/utils/hbmk2/hbmk2.prg
@@ -405,8 +405,8 @@ FUNCTION Main( ... )
OTHERWISE ; cDynLibExt := ".so"
ENDSWITCH
CASE t_cARCH == "dos"
- aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "djgpp" },;
- { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" } } /* TODO: Add full support for wcc386 */
+ aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "djgpp" },;
+ { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" } } /* TODO: Add full support for wcc386 */
aCOMPSUP := { "djgpp", "gcc", "owatcom", "rsx32" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtdos" }
@@ -415,9 +415,9 @@ FUNCTION Main( ... )
cDynLibExt := ""
cBinExt := ".exe"
CASE t_cARCH == "os2"
- aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "gcc" },;
- { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */
- { {|| FindInPath( "icc" ) != NIL }, "icc" } }
+ aCOMPDET := { { {|| FindInPath( "gcc" ) != NIL }, "gcc" },;
+ { {|| FindInPath( "wpp386" ) != NIL }, "owatcom" },; /* TODO: Add full support for wcc386 */
+ { {|| FindInPath( "icc" ) != NIL }, "icc" } }
aCOMPSUP := { "gcc", "owatcom", "icc" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtos2" }
@@ -428,20 +428,22 @@ FUNCTION Main( ... )
CASE t_cARCH == "win"
/* 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 .AND. ;
+ aCOMPDET := { { {|| FindInPath( "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" },;
- { {|| FindInPath( "dmc" ) != NIL }, "dmc" },;
- { {|| FindInPath( "icc" ) != NIL }, "icc" },;
- { {|| FindInPath( "xcc" ) != NIL }, "xcc" } }
- /* TODO: "mingwce", "msvcce", "poccce" */
- aCOMPSUP := { "gcc", "mingw", "msvc", "msvc64", "msvcia64", "bcc", "owatcom", "pocc", "pocc64", "rsxnt", "xcc", "dmc", "icc" }
+ { {|| FindInPath( "ml64" ) != NIL }, "msvc64" },;
+ { {|| FindInPath( "cl" ) != NIL .AND. ;
+ FindInPath( "wpp386" ) == NIL }, "msvc" },;
+ { {|| FindInPath( "bcc32" ) != NIL }, "bcc" },;
+ { {|| FindInPath( "porc64" ) != NIL }, "pocc64" },;
+ { {|| FindInPath( "pocc" ) != NIL }, "pocc" },;
+ { {|| FindInPath( "dmc" ) != NIL }, "dmc" },;
+ { {|| FindInPath( "icc" ) != NIL }, "icc" },;
+ { {|| FindInPath( "cygstart" ) != NIL }, "cygwin" },;
+ { {|| FindInPath( "xcc" ) != NIL }, "xcc" } }
+ aCOMPSUP := { "gcc", "mingw", "msvc", "bcc", "owatcom", "pocc", "rsxnt", "xcc", "dmc", "icc", "cygwin",;
+ "msvc64", "msvcia64", "pocc64",;
+ "mingwce", "msvcce", "poccce" }
cBin_CompPRG := "harbour.exe"
s_aLIBHBGT := { "gtwin", "gtwvt", "gtgui" }
t_cGTDEFAULT := "gtwin"
@@ -756,7 +758,7 @@ FUNCTION Main( ... )
cParam := NIL
ENDIF
ENDIF
- IF ! Empty( cParam )
+ IF ! Empty( cParam ) .AND. !( Lower( cParam ) == "gtnul" )
IF AScan( t_aLIBCOREGT, {|tmp| Lower( tmp ) == cParamL } ) == 0 .AND. ;
AScan( s_aLIBUSERGT, {|tmp| Lower( tmp ) == cParamL } ) == 0
AAddNotEmpty( s_aLIBUSERGT, PathSepToTarget( cParam ) )
@@ -1149,6 +1151,7 @@ FUNCTION Main( ... )
CASE ( t_cARCH == "win" .AND. t_cCOMP == "gcc" ) .OR. ;
( t_cARCH == "win" .AND. t_cCOMP == "mingw" ) .OR. ;
+ ( t_cARCH == "win" .AND. t_cCOMP == "cygwin" ) .OR. ;
( t_cARCH == "win" .AND. t_cCOMP == "rsxnt" )
cLibPrefix := "-l"
@@ -1169,9 +1172,6 @@ FUNCTION Main( ... )
IF s_lSHARED
AAdd( s_aLIBPATH, "{DB}" )
ENDIF
- IF t_cCOMP == "gcc"
- cOpt_CompC += " -mno-cygwin"
- ENDIF
IF t_cCOMP == "rsxnt"
cOpt_CompC += " -Zwin32"
ENDIF
@@ -1205,7 +1205,7 @@ FUNCTION Main( ... )
cOpt_Res := "{LR} -o {LS}"
cResExt := ".o"
ELSE
- OutErr( "hbmk: Warning: Resource files ignored. Multiple ones not support for mingw." + hb_osNewLine() )
+ OutErr( "hbmk: Warning: Resource files ignored. Multiple ones not supported with mingw." + hb_osNewLine() )
ENDIF
ENDIF
@@ -1290,7 +1290,7 @@ FUNCTION Main( ... )
cResPrefix := "OP res="
cResExt := ".res"
ELSE
- OutErr( "hbmk: Warning: Resource files ignored. Multiple ones not support for owatcom." + hb_osNewLine() )
+ OutErr( "hbmk: Warning: Resource files ignored. Multiple ones not supported with owatcom." + hb_osNewLine() )
ENDIF
ENDIF
@@ -1562,9 +1562,9 @@ FUNCTION Main( ... )
"LNK4217: locally defined symbol ... imported in function ..."
if using 'dllimport'. [vszakats] */
tmp := ""
- CASE t_cCOMP $ "gcc|mingw" ; tmp := "__attribute__ (( dllimport ))"
- CASE t_cCOMP == "bcc|owatcom" ; tmp := "__declspec( dllimport )"
- OTHERWISE ; tmp := "_declspec( dllimport )"
+ CASE t_cCOMP $ "gcc|mingw|cygwin" ; tmp := "__attribute__ (( dllimport ))"
+ CASE t_cCOMP == "bcc|owatcom" ; tmp := "__declspec( dllimport )"
+ OTHERWISE ; tmp := "_declspec( dllimport )"
ENDCASE
/* Create list of requested symbols */
@@ -1984,7 +1984,7 @@ STATIC FUNCTION ListCookLib( arraySrc, cPrefix, cExtNew )
LOCAL cDir
LOCAL cLibName
- IF t_cCOMP $ "gcc|gpp|mingw|djgpp|rsxnt|rsx32"
+ IF t_cCOMP $ "gcc|gpp|mingw|djgpp|rsxnt|rsx32|cygwin"
FOR EACH cLibName IN array
hb_FNameSplit( cLibName, @cDir )
IF Empty( cDir )
@@ -2120,7 +2120,7 @@ STATIC FUNCTION PathSepToSelf( cFileName )
STATIC FUNCTION PathSepToTarget( cFileName )
- IF t_cARCH $ "win|dos|os2" .AND. !( t_cCOMP $ "mingw|mingwce" )
+ IF t_cARCH $ "win|dos|os2" .AND. !( t_cCOMP $ "mingw|mingwce|cygwin" )
RETURN StrTran( cFileName, "/", "\" )
ENDIF
@@ -2432,7 +2432,7 @@ STATIC PROCEDURE HBP_ProcessOne( cFileName,;
IF ! SetupForGT( cLine, @t_cGTDEFAULT, @lGUI )
cLine := NIL
ENDIF
- IF ! Empty( cLine )
+ IF ! Empty( cLine ) .AND. !( Lower( cLine ) == "gtnul" )
IF AScan( t_aLIBCOREGT, {|tmp| Lower( tmp ) == Lower( cLine ) } ) == 0 .AND. ;
AScan( aLIBUSERGT , {|tmp| Lower( tmp ) == Lower( cLine ) } ) == 0
AAddNotEmpty( aLIBUSERGT, PathSepToTarget( cLine ) )
@@ -2447,7 +2447,7 @@ STATIC PROCEDURE HBP_ProcessOne( cFileName,;
cLine := NIL
ENDIF
ENDIF
- IF ! Empty( cLine )
+ IF ! Empty( cLine ) .AND. !( Lower( cLine ) == "gtnul" )
IF AScan( t_aLIBCOREGT, {|tmp| Lower( tmp ) == Lower( cLine ) } ) == 0 .AND. ;
AScan( aLIBUSERGT , {|tmp| Lower( tmp ) == Lower( cLine ) } ) == 0
AAddNotEmpty( aLIBUSERGT, PathSepToTarget( cLine ) )
@@ -2658,7 +2658,7 @@ STATIC FUNCTION getFirstFunc( cFile )
LOCAL cFuncList, cExecNM, cFuncName, cExt, cLine, n, c
cFuncName := ""
- IF t_cCOMP $ "gcc|gpp|mingw"
+ IF t_cCOMP $ "gcc|gpp|mingw|cygwin"
hb_FNameSplit( cFile,,, @cExt )
IF cExt == ".c"
FOR EACH cLine IN hb_ATokens( StrTran( hb_MemoRead( cFile ), Chr( 13 ), Chr( 10 ) ), Chr( 10 ) )
@@ -2790,8 +2790,8 @@ STATIC PROCEDURE ShowHelp( lLong )
" - Supported values for each supported value:" ,;
" linux : gcc, gpp, owatcom, icc, mingw, mingwce" ,;
" darwin : gcc" ,;
- " win : gcc, mingw, msvc, bcc, owatcom, pocc, dmc, rsxnt, xcc, icc" ,;
- " mingwce, msvc64, msvcia64, msvcce, pocc64, poccce" ,;
+ " win : gcc, mingw, msvc, bcc, owatcom, pocc, dmc, rsxnt, icc, cygwin" ,;
+ " mingwce, msvc64, msvcia64, msvcce, pocc64, poccce, xcc" ,;
" os2 : gcc, owatcom, icc" ,;
" dos : gcc, djgpp, owatcom, rsx32" ,;
" bsd, hpux, sunos: gcc" }