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.
This commit is contained in:
Viktor Szakats
2009-09-05 00:23:51 +00:00
parent 9a9ac3b959
commit bd2cb53a7b
18 changed files with 247 additions and 61 deletions

View File

@@ -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 ( "<alias>" )-> to <alias>-> compile time
@@ -386,8 +442,8 @@
! Demonstrated the MT support. Click on <Dialogs> 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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -5,8 +5,6 @@
include $(TOP)$(ROOT)config/instsh.mk
ifneq ($(INSTALL_RULE),)
ifneq ($(HB_INSTALL_DEF),yes)
install:: first
$(INSTALL_RULE)
endif
endif

View File

@@ -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

View File

@@ -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`"

View File

@@ -0,0 +1,8 @@
#
# $Id$
#
libs=gtallegs
{win}libs=alleg_s d3d9 dsound
{linux}ldflags="`allegro-config --static 2>/dev/null`"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 ) )