diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a40f7cd004..a8c79dd2e3 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,62 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-09-05 02:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + + Added experimental support for @.clp files. + A bit hacky and could be incomplete. I'm not a .clp file user, + so pls test and extend. + + * INSTALL + * contrib/gtalleg/Makefile + + contrib/gtalleg/gtallegs + + contrib/gtalleg/gtallegs/Makefile + * contrib/gtalleg/gtalleg.hbc + + contrib/gtalleg/gtallegs.hbc + + Added static flavour of gtalleg. This was an option until now, + now both versions are automatically built to be in sync with + rest of contribs. This also means that HB_ALLEGRO_STATIC + setting is no longer needed. + + Added separate static/dynamic .hbc files accordingly. + + * contrib/hbqt/Makefile + + contrib/hbqt/hbqts + + contrib/hbqt/hbqts/Makefile + * contrib/hbqt/hbqt.hbc + + contrib/hbqt/hbqts.hbc + + HB_QT_STATIC=yes setting will now cause building of static + flavor hbqt lib *above* the default one which links against + dynamic qt libs. Until now this setting caused that the + static version was built *instead* of the dynamic one. + NOTE: Using this setting will cause a significantly longer + build time on non-*nix systems. + + Added separate static/dynamic .hbc files accordingly. + + * config/global.mk + ! Fixed to set CXX predefined variable to empty to make + defaulting logic in rules.mk work as expected. + This fixes recent hbqt build failure with MSVC. + + * config/dos/watcom.mk + + Added watt lib support. (untested, please test) + + * source/rtl/Makefile + * source/rtl/hbsocket.c + * config/detect.mk + * config/dos/djgpp.mk + * Renamed HB_*_TCP to HB_*_WATT. + + Added HB_INC_WATT to INSTALL. (couldn't make it work locally, + so it's not very precise yet) + + * config/detect.mk + * Minor: lowercased component name for watt lib. + + * config/dos/djgpp.mk + * Minor: Using LIBPATHS to store watt lib path instead of LDLIBS. + + * config/install.mk + % Deleted no longer used/needed HB_INSTALL_DEF variable. + 2009-09-04 15:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/doc/cmpopt.txt * added information about ( "" )-> to -> compile time @@ -386,8 +442,8 @@ ! Demonstrated the MT support. Click on on main menu and play with more than one dialog. - /* Still there are few glitches in MT mode and I do request Przemek to - look into the code and suggest us what else is required. + /* Still there are few glitches in MT mode and I do request Przemek to + look into the code and suggest us what else is required. */ 2009-08-30 17:25 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) @@ -396,7 +452,7 @@ 2009-08-30 17:15 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/gtwvg/gtwvg.c - ! A small fix in caret handelling. Under certain circumstances, + ! A small fix in caret handelling. Under certain circumstances, when other modal consoles are opened, HideCaret() is issued multiple time and hence caret is diappeared. For normal console it was ok. diff --git a/harbour/INSTALL b/harbour/INSTALL index 6a836b76df..ca99d437fd 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -226,6 +226,7 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD HB_INC_SLANG= (on *nix systems) HB_INC_SQLITE3=C:\sqlite3 (defaults to locally hosted version on win/dos/os2) HB_INC_X11= (on *nix systems) + HB_INC_WATT= (on MS-DOS systems) To explicitly disable any given components, use the value 'no' (without quotes). This may be useful to avoid autodetection of installed packages @@ -239,11 +240,10 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD Windows/Windows CE ------------------ - Certain contribs support build mode in which they can be linked + Some contribs support build mode in which they can be linked *statically* with 3rd party components: - HB_ALLEGRO_STATIC=yes - HB_QT_STATIC=yes + HB_QT_STATIC=yes (only for Windows/Windows CE targets) Darwin (Mac OS X) ----------------- @@ -323,7 +323,7 @@ SUPPORTED PLATFORMS AND C COMPILERS win - MS Windows (all flavors) wce - MS Windows CE dos - MS-DOS (32-bit protected mode only) - (MS-DOS compatible system also work, like dosemu) + (MS-DOS compatible systems also work, like dosemu) os2 - OS/2 You can use HB_COMPILER values to select compilers: @@ -735,6 +735,7 @@ EXAMPLES set HB_INC_GD=C:\GD-20~1.34\include set HB_INC_MYSQL=C:\MYSQL-~1.67\include set HB_INC_PGSQL=C:\PGSQL-~1.3\include + set HB_INC_WATT=C:\WATT -->8-- --8<-- @@ -909,7 +910,7 @@ QUICK START TO BUILD YOUR OWN HARBOUR APPLICATIONS to build a Harbour application with above methods. -BUILD HOST PLATFORM/SHELL - TARGET PLATFORM/COMPILER COMPATIBILITY MATRIX +BUILD HOST-PLATFORM/SHELL - TARGET-PLATFORM/COMPILER COMPATIBILITY MATRIX ========================================================================= host target target diff --git a/harbour/config/detect.mk b/harbour/config/detect.mk index 9e47e4fa30..7c81dddae1 100644 --- a/harbour/config/detect.mk +++ b/harbour/config/detect.mk @@ -23,7 +23,7 @@ export HB_HAS_GPM := export HB_HAS_SLANG := export HB_HAS_CURSES := export HB_HAS_X11 := -export HB_HAS_TCP := +export HB_HAS_WATT := # Exclude Harbour-wide features prohibiting commercial use @@ -116,9 +116,9 @@ include $(TOP)$(ROOT)config/detfun.mk # Detect WATTCP/WATT-32 in DOS builds -_DET_DSP_NAME := WATTCP/WATT-32 -_DET_VAR_INC_ := HB_INC_TCP -_DET_VAR_HAS_ := HB_HAS_TCP +_DET_DSP_NAME := wattcp/watt-32 +_DET_VAR_INC_ := HB_INC_WATT +_DET_VAR_HAS_ := HB_HAS_WATT _DET_FLT_PLAT := dos _DET_FLT_COMP := _DET_INC_DEFP := $(if $(WATT_ROOT),$(WATT_ROOT)/inc,) /usr/include diff --git a/harbour/config/dos/djgpp.mk b/harbour/config/dos/djgpp.mk index 6b1c4d7e88..10de13271d 100644 --- a/harbour/config/dos/djgpp.mk +++ b/harbour/config/dos/djgpp.mk @@ -46,8 +46,9 @@ ifneq ($(HB_LINKING_RTL),) ifneq ($(filter gtcrs, $(LIBS)),) LDLIBS += -l$(HB_CRS_LIB) endif - ifneq ($(HB_HAS_TCP),) - LDLIBS += -L$(HB_HAS_TCP:/inc=/lib) -lwatt + ifneq ($(HB_HAS_WATT),) + LIBPATHS += -L$(HB_HAS_WATT:/inc=/lib) + LDLIBS += -lwatt endif endif diff --git a/harbour/config/dos/watcom.mk b/harbour/config/dos/watcom.mk index 31fd145ab6..66ecbd7839 100644 --- a/harbour/config/dos/watcom.mk +++ b/harbour/config/dos/watcom.mk @@ -65,4 +65,10 @@ endif LDLIBS := $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)) +ifneq ($(HB_LINKING_RTL),) + ifneq ($(HB_HAS_WATT),) + LDLIBS += $(HB_HAS_WATT:/inc=/lib)/watt + endif +endif + include $(TOP)$(ROOT)config/common/watcom.mk diff --git a/harbour/config/global.mk b/harbour/config/global.mk index a9fa54dfbf..e4f84dfd0f 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -1281,6 +1281,8 @@ endif HB_DYN_COMPILE := no +CXX := + # export some variables to eliminate repeated setting in recursive calls export HB_HOST_PLAT export HB_HOST_CPU diff --git a/harbour/config/install.mk b/harbour/config/install.mk index e48baf7ccb..bf45ec63b1 100644 --- a/harbour/config/install.mk +++ b/harbour/config/install.mk @@ -5,8 +5,6 @@ include $(TOP)$(ROOT)config/instsh.mk ifneq ($(INSTALL_RULE),) -ifneq ($(HB_INSTALL_DEF),yes) install:: first $(INSTALL_RULE) endif -endif diff --git a/harbour/contrib/gtalleg/Makefile b/harbour/contrib/gtalleg/Makefile index c45afabb62..2329855feb 100644 --- a/harbour/contrib/gtalleg/Makefile +++ b/harbour/contrib/gtalleg/Makefile @@ -6,11 +6,7 @@ ROOT := ../../ include $(TOP)$(ROOT)config/global.mk -ifeq ($(HB_ALLEGRO_STATIC),) - LIBNAME := gtalleg -else - LIBNAME := gtallegs -endif +LIBNAME := gtalleg C_SOURCES := \ gtalleg.c \ @@ -29,11 +25,10 @@ ifneq ($(HB_HAS_ALLEGRO),) HB_CFLAGS += $(foreach d,$(HB_HAS_ALLEGRO),-I$(d)) - ifneq ($(HB_ALLEGRO_STATIC),) - HB_CFLAGS += -DALLEGRO_STATICLINK - endif - include $(TOP)$(ROOT)config/lib.mk + + DIRS += gtallegs + include $(TOP)$(ROOT)config/dir.mk else HB_SKIP_REASON := $(_DET_RES_TEXT) include $(TOP)$(ROOT)config/none.mk diff --git a/harbour/contrib/gtalleg/gtalleg.hbc b/harbour/contrib/gtalleg/gtalleg.hbc index 807c74466d..9ec5bf3bc8 100644 --- a/harbour/contrib/gtalleg/gtalleg.hbc +++ b/harbour/contrib/gtalleg/gtalleg.hbc @@ -2,10 +2,7 @@ # $Id$ # -{!HB_ALLEGRO_STATIC}libs=gtalleg -{HB_ALLEGRO_STATIC}libs=gtallegs +libs=gtalleg -{win&HB_ALLEGRO_STATIC}libs=alleg_s d3d9 dsound -{win&!HB_ALLEGRO_STATIC}libs=alleg -{linux&HB_ALLEGRO_STATIC}ldflags="`allegro-config --static 2>/dev/null`" -{linux&!HB_ALLEGRO_STATIC}ldflags="`allegro-config --libs 2>/dev/null`" +{win}libs=alleg +{linux}ldflags="`allegro-config --libs 2>/dev/null`" diff --git a/harbour/contrib/gtalleg/gtallegs.hbc b/harbour/contrib/gtalleg/gtallegs.hbc new file mode 100644 index 0000000000..862450bb7e --- /dev/null +++ b/harbour/contrib/gtalleg/gtallegs.hbc @@ -0,0 +1,8 @@ +# +# $Id$ +# + +libs=gtallegs + +{win}libs=alleg_s d3d9 dsound +{linux}ldflags="`allegro-config --static 2>/dev/null`" diff --git a/harbour/contrib/gtalleg/gtallegs/Makefile b/harbour/contrib/gtalleg/gtallegs/Makefile new file mode 100644 index 0000000000..e1d490a320 --- /dev/null +++ b/harbour/contrib/gtalleg/gtallegs/Makefile @@ -0,0 +1,35 @@ +# +# $Id$ +# + +ROOT := ../../../ + +include $(TOP)$(ROOT)config/global.mk + +vpath %.c ../ + +LIBNAME := gtallegs + +C_SOURCES := \ + gtalleg.c \ + ssf.c \ + +_DET_DSP_NAME := allegro +_DET_VAR_INC_ := HB_INC_ALLEGRO +_DET_VAR_HAS_ := HB_HAS_ALLEGRO +_DET_FLT_PLAT := +_DET_FLT_COMP := !pocc !pocc64 !poccarm !xcc !dmc !watcom !mingwarm +_DET_INC_DEFP := /usr/include /opt/local/include +_DET_INC_HEAD := /allegro.h +include $(TOP)$(ROOT)config/detfun.mk + +ifneq ($(HB_HAS_ALLEGRO),) + + HB_CFLAGS += $(foreach d,$(HB_HAS_ALLEGRO),-I$(d)) + HB_CFLAGS += -DALLEGRO_STATICLINK + + include $(TOP)$(ROOT)config/lib.mk +else + HB_SKIP_REASON := $(_DET_RES_TEXT) + include $(TOP)$(ROOT)config/none.mk +endif diff --git a/harbour/contrib/hbqt/Makefile b/harbour/contrib/hbqt/Makefile index 67ff2f4f61..c54057d973 100644 --- a/harbour/contrib/hbqt/Makefile +++ b/harbour/contrib/hbqt/Makefile @@ -6,11 +6,7 @@ ROOT := ../../ include $(TOP)$(ROOT)config/global.mk -ifeq ($(HB_QT_STATIC),) - LIBNAME := hbqt -else - LIBNAME := hbqts -endif +LIBNAME := hbqt PRG_HEADERS := \ hbqt.ch \ @@ -48,15 +44,17 @@ ifneq ($(HB_HAS_QT),) HB_CFLAGS += $(foreach d,$(HB_HAS_QT),-I$(d) -I$(d)/Qt -I$(d)/QtCore -I$(d)/QtGui -I$(d)/QtNetwork -I$(d)/QtWebKit) endif - ifneq ($(HB_QT_STATIC),) - HB_CFLAGS += -DQT_NODLL - endif - include $(TOP)$(ROOT)contrib/hbqt/filelist.mk include $(TOP)$(ROOT)config/header.mk include $(TOP)$(ROOT)config/lib.mk + ifneq ($(filter $(HB_PLATFORM),win wce),) + ifneq ($(HB_QT_STATIC),) + DIRS += hbqts + include $(TOP)$(ROOT)config/dir.mk + endif + endif else HB_SKIP_REASON := $(_DET_RES_TEXT) include $(TOP)$(ROOT)config/none.mk diff --git a/harbour/contrib/hbqt/hbqt.hbc b/harbour/contrib/hbqt/hbqt.hbc index 884fc32a10..76313f94dd 100644 --- a/harbour/contrib/hbqt/hbqt.hbc +++ b/harbour/contrib/hbqt/hbqt.hbc @@ -6,11 +6,9 @@ incpaths=. {allwin}libpaths=${HB_DIR_QT}\lib -{!HB_QT_STATIC}libs=hbqt -{HB_QT_STATIC}libs=hbqts +libs=hbqt {win}libs=version shlwapi -{allwin&!HB_QT_STATIC}libs=QtCore4 QtGui4 QtNetwork4 QtWebKit4 -{allwin&HB_QT_STATIC}libs=QtCore QtGui QtNetwork QtWebKit +{allwin}libs=QtCore4 QtGui4 QtNetwork4 QtWebKit4 {linux}libs=QtCore QtGui QtNetwork QtWebKit {darwin}libs=/Library/Frameworks/QtCore.framework/QtCore {darwin}libs=/Library/Frameworks/QtGui.framework/QtGui diff --git a/harbour/contrib/hbqt/hbqts.hbc b/harbour/contrib/hbqt/hbqts.hbc new file mode 100644 index 0000000000..4c372980a0 --- /dev/null +++ b/harbour/contrib/hbqt/hbqts.hbc @@ -0,0 +1,13 @@ +# +# $Id$ +# + +incpaths=. + +{allwin}libpaths=${HB_DIR_QT}\lib + +libs=hbqts +{win}libs=version shlwapi +{allwin}libs=QtCore QtGui QtNetwork QtWebKit +gui=yes +gt=gtnul diff --git a/harbour/contrib/hbqt/hbqts/Makefile b/harbour/contrib/hbqt/hbqts/Makefile new file mode 100644 index 0000000000..293a3c2caa --- /dev/null +++ b/harbour/contrib/hbqt/hbqts/Makefile @@ -0,0 +1,58 @@ +# +# $Id$ +# + +ROOT := ../../../ + +include $(TOP)$(ROOT)config/global.mk + +vpath %.cpp ../ + +LIBNAME := hbqts + +PRG_HEADERS := \ + hbqt.ch \ + +_DET_DSP_NAME := qt +_DET_VAR_INC_ := HB_INC_QT +_DET_VAR_HAS_ := HB_HAS_QT +_DET_FLT_PLAT := !dos !os2 +_DET_FLT_COMP := !mingw64 !watcom !bcc !pocc !pocc64 !poccarm +_DET_INC_DEFP := /usr/include/qt4 /usr/lib/qt4/include /usr/include /Developer/qt/include +_DET_INC_HEAD := /Qt/qglobal.h +include $(TOP)$(ROOT)config/detfun.mk + +_QT_DARWIN := +ifeq ($(HB_PLATFORM),darwin) + ifeq ($(HB_HAS_QT),) + _DET_DSP_NAME := qt + _DET_VAR_INC_ := HB_INC_QT + _DET_VAR_HAS_ := HB_HAS_QT + _DET_INC_DEFP := /Library/Frameworks/QtCore.framework/Versions/4/Headers + _DET_INC_HEAD := /QtCore + include $(TOP)$(ROOT)config/detfun.mk + _QT_DARWIN := yes + endif +endif + +ifneq ($(HB_HAS_QT),) + + ifeq ($(_QT_DARWIN),yes) + HB_CFLAGS += -I/Library/Frameworks/QtCore.framework/Headers + HB_CFLAGS += -I/Library/Frameworks/QtGui.framework/Headers + HB_CFLAGS += -I/Library/Frameworks/QtNetwork.framework/Headers + HB_CFLAGS += -I/Library/Frameworks/QtWebKit.framework/Headers + else + HB_CFLAGS += $(foreach d,$(HB_HAS_QT),-I$(d) -I$(d)/Qt -I$(d)/QtCore -I$(d)/QtGui -I$(d)/QtNetwork -I$(d)/QtWebKit) + endif + + HB_CFLAGS += -DQT_NODLL + + include $(TOP)$(ROOT)contrib/hbqt/filelist.mk + + include $(TOP)$(ROOT)config/header.mk + include $(TOP)$(ROOT)config/lib.mk +else + HB_SKIP_REASON := $(_DET_RES_TEXT) + include $(TOP)$(ROOT)config/none.mk +endif diff --git a/harbour/source/rtl/Makefile b/harbour/source/rtl/Makefile index f6d5471bad..cae45f13ba 100644 --- a/harbour/source/rtl/Makefile +++ b/harbour/source/rtl/Makefile @@ -280,8 +280,8 @@ DIRS := \ gtwvt \ gtxwc \ -ifneq ($(HB_HAS_TCP),) - HB_CFLAGS += -DHB_HAS_TCP $(foreach d,$(HB_HAS_TCP),-I$(d)) +ifneq ($(HB_HAS_WATT),) + HB_CFLAGS += -DHB_HAS_WATT $(foreach d,$(HB_HAS_WATT),-I$(d)) endif include $(TOP)$(ROOT)config/lib.mk diff --git a/harbour/source/rtl/hbsocket.c b/harbour/source/rtl/hbsocket.c index 5fd88765a1..19c342d4cc 100644 --- a/harbour/source/rtl/hbsocket.c +++ b/harbour/source/rtl/hbsocket.c @@ -52,7 +52,7 @@ #include "hbsocket.h" -#if defined( HB_OS_DOS ) && !defined( HB_HAS_TCP ) +#if defined( HB_OS_DOS ) && !defined( HB_HAS_WATT ) # if !defined( HB_SOCKET_OFF ) # define HB_SOCKET_OFF # endif diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 4364863fe7..755d73dd91 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -1286,7 +1286,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) /* Collect all command line parameters */ FOR EACH cParam IN aArgs DO CASE - CASE ( Len( cParam ) >= 1 .AND. Left( cParam, 1 ) == "@" ) + CASE ( Len( cParam ) >= 1 .AND. Left( cParam, 1 ) == "@" ) .AND. ; + !( Lower( FN_ExtGet( cParam ) ) == ".clp" ) cParam := SubStr( cParam, 2 ) IF Empty( FN_ExtGet( cParam ) ) cParam := FN_ExtSet( cParam, ".hbm" ) @@ -1837,6 +1838,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDCASE NEXT + /* Strip leading @ char of .clp files */ + IF Left( hbmk[ _HBMK_cFIRST ], 1 ) == "@" .AND. Lower( FN_ExtGet( hbmk[ _HBMK_cFIRST ] ) ) == ".clp" + hbmk[ _HBMK_cFIRST ] := SubStr( hbmk[ _HBMK_cFIRST ], 2 ) + ENDIF + IF lCreateDyn .AND. hbmk[ _HBMK_lSHARED ] hbmk[ _HBMK_lSHARED ] := .F. ENDIF @@ -3136,7 +3142,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) /* Do entry function detection on platform required and supported */ IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ! lStopAfterCComp .AND. l_cMAIN == NIL - tmp := iif( Lower( FN_ExtGet( hbmk[ _HBMK_cFIRST ] ) ) == ".prg" .OR. Empty( FN_ExtGet( hbmk[ _HBMK_cFIRST ] ) ), FN_ExtSet( hbmk[ _HBMK_cFIRST ], ".c" ), hbmk[ _HBMK_cFIRST ] ) + tmp := iif( Lower( FN_ExtGet( hbmk[ _HBMK_cFIRST ] ) ) $ ".prg|.clp" .OR. Empty( FN_ExtGet( hbmk[ _HBMK_cFIRST ] ) ), FN_ExtSet( hbmk[ _HBMK_cFIRST ], ".c" ), hbmk[ _HBMK_cFIRST ] ) IF ! Empty( tmp := getFirstFunc( hbmk, tmp ) ) l_cMAIN := tmp ENDIF @@ -3280,7 +3286,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ELSE hbmk_OutErr( hbmk, I_( "Warning: Stub helper .c program couldn't be created." ) ) IF ! hbmk[ _HBMK_lINC ] - AEval( ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".c" ), {|tmp| FErase( tmp ) } ) + AEval( ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".c", .T. ), {|tmp| FErase( tmp ) } ) ENDIF IF hbmk[ _HBMK_lBEEP ] DoBeep( hbmk, .F. ) @@ -3334,7 +3340,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) [vszakats] */ l_aOBJ := {} ELSE - l_aOBJ := ListDirExt( ArrayJoin( hbmk[ _HBMK_aPRG ], hbmk[ _HBMK_aC ] ), cWorkDir, cObjExt ) + l_aOBJ := ListDirExt( ArrayJoin( hbmk[ _HBMK_aPRG ], hbmk[ _HBMK_aC ] ), cWorkDir, cObjExt, .T. ) ENDIF hbmk[ _HBMK_aOBJUSER ] := ListCook( hbmk[ _HBMK_aOBJUSER ], cObjExt ) @@ -3358,11 +3364,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C IF hbmk[ _HBMK_lREBUILDPO ] IF ! Empty( hbmk[ _HBMK_cPO ] ) .AND. ! Empty( hbmk[ _HBMK_aPRG ] ) - RebuildPO( hbmk, ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".pot" ) ) + RebuildPO( hbmk, ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".pot", .T. ) ) ENDIF ELSE IF ! Empty( hbmk[ _HBMK_cPO ] ) .AND. Len( l_aPRG_TODO ) > 0 - UpdatePO( hbmk, ListDirExt( l_aPRG_TODO, cWorkDir, ".pot" ) ) + UpdatePO( hbmk, ListDirExt( l_aPRG_TODO, cWorkDir, ".pot", .T. ) ) ENDIF ENDIF @@ -3576,7 +3582,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) IF "{IC}" $ cOpt_CompC aThreads := {} - FOR EACH aTODO IN ArraySplit( ArrayJoin( ListDirExt( l_aPRG_TODO, cWorkDir, ".c" ), l_aC_TODO ), l_nJOBS ) + FOR EACH aTODO IN ArraySplit( ArrayJoin( ListDirExt( l_aPRG_TODO, cWorkDir, ".c", .T. ), l_aC_TODO ), l_nJOBS ) IF hb_mtvm() .AND. Len( aTODO:__enumBase() ) > 1 AAdd( aThreads, hb_threadStart( @CompileCLoop(), hbmk, aTODO, cBin_CompC, cOpt_CompC, cWorkDir, cObjExt, nOpt_Esc, aTODO:__enumIndex(), Len( aTODO:__enumBase() ) ) ) ELSE @@ -3604,7 +3610,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) cOpt_CompC := StrTran( cOpt_CompC, "{OW}" , FN_Escape( PathSepToTarget( hbmk, cWorkDir ), nOpt_Esc ) ) aThreads := {} - FOR EACH aTODO IN ArraySplit( ArrayJoin( ListDirExt( l_aPRG_TODO, cWorkDir, ".c" ), l_aC_TODO ), l_nJOBS ) + FOR EACH aTODO IN ArraySplit( ArrayJoin( ListDirExt( l_aPRG_TODO, cWorkDir, ".c", .T. ), l_aC_TODO ), l_nJOBS ) cOpt_CompCLoop := AllTrim( StrTran( cOpt_CompC, "{LC}" , ArrayToList( aTODO,, nOpt_Esc ) ) ) @@ -3971,7 +3977,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) FErase( FN_DirExtSet( l_cRESSTUB, cWorkDir, cResExt ) ) ENDIF IF ! hbmk[ _HBMK_lINC ] .OR. l_lCLEAN - AEval( ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".c" ), {|tmp| FErase( tmp ) } ) + AEval( ListDirExt( hbmk[ _HBMK_aPRG ], cWorkDir, ".c", .T. ), {|tmp| FErase( tmp ) } ) ENDIF IF ! lStopAfterCComp .OR. lCreateLib .OR. lCreateDyn IF ! hbmk[ _HBMK_lINC ] .OR. l_lCLEAN @@ -4607,13 +4613,26 @@ STATIC FUNCTION AAddNotEmpty( array, xItem ) RETURN array -STATIC FUNCTION ListDirExt( arraySrc, cDirNew, cExtNew ) +STATIC FUNCTION ListDirExt( arraySrc, cDirNew, cExtNew, lStripClpAt ) LOCAL array := AClone( arraySrc ) LOCAL cFileName - FOR EACH cFileName IN array - cFileName := FN_DirExtSet( cFileName, cDirNew, cExtNew ) - NEXT + DEFAULT lStripClpAt TO .F. + + IF lStripClpAt + FOR EACH cFileName IN array + IF Left( cFileName, 1 ) == "@" .AND. ; + Lower( FN_ExtGet( cFileName ) ) == ".clp" + cFileName := FN_DirExtSet( SubStr( cFileName, 2 ), cDirNew, cExtNew ) + ELSE + cFileName := FN_DirExtSet( cFileName, cDirNew, cExtNew ) + ENDIF + NEXT + ELSE + FOR EACH cFileName IN array + cFileName := FN_DirExtSet( cFileName, cDirNew, cExtNew ) + NEXT + ENDIF RETURN array @@ -5483,7 +5502,8 @@ STATIC PROCEDURE HBM_Load( hbmk, aParams, cFileName, nNestingLevel ) DO CASE CASE Lower( cParam ) == "-skip" RETURN - CASE ( Len( cParam ) >= 1 .AND. Left( cParam, 1 ) == "@" ) + CASE ( Len( cParam ) >= 1 .AND. Left( cParam, 1 ) == "@" ) .AND. ; + !( Lower( FN_ExtGet( cParam ) ) == ".clp" ) IF nNestingLevel < _HBMK_NEST_MAX cParam := SubStr( cParam, 2 ) IF Empty( FN_ExtGet( cParam ) )