From e4d64e698b24ee2549827e705afa203bd6cee3f6 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 4 Mar 2009 07:00:29 +0000 Subject: [PATCH] 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. --- harbour/ChangeLog | 33 ++++++++++++++ harbour/INSTALL | 30 ++++++++++--- harbour/config/win/cygwin.cf | 77 ++++++++++++++++++++++++++++++++ harbour/config/win/gcc.cf | 74 +----------------------------- harbour/contrib/hbssl/sslrand.c | 4 +- harbour/make_gnu.sh | 8 +++- harbour/source/common/hbprintf.c | 2 +- harbour/utils/hbmk2/hbmk2.prg | 68 ++++++++++++++-------------- 8 files changed, 178 insertions(+), 118 deletions(-) create mode 100644 harbour/config/win/cygwin.cf 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" }