w32

  Previous topic Next topic JavaScript is required for the print function Mail us feedback on this topic! Mail us feedback on this topic!  
c:\harbour\config\w32
c:\harbour\config\w32\bcc32.cf
#
# $Id: bcc32.cf 9382 2008-09-14 10:55:33Z vszakats $
#
# The Harbour Project
# GNU MAKE file for Borland C/C++ 32bit (4.x, 5.x)

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = bcc32.exe
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -O2 -q -d -w -w-sig-

LD = bcc32.exe
LDFLAGS = -O2
LD_OUT = -e

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -L$(LIB_DIR)
else
LINKPATHS += -L$(HB_LIB_COMPILE)
endif
LIBLIST = $(foreach lib, $(CONTRIBS), $(lib)$(LIB_EXT))
LIBLIST += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LIBLIST += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LIBLIST += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

# It's probably not necessary in native Windows but I need it
# for my Linux box because -L seems to not work with WINE
ifeq ($(HB_LIB_COMPILE),)
LINKLIBS += $(foreach lib, $(LIBLIST), $(LIB_DIR)/$(lib))
else
LINKLIBS += $(foreach lib, $(LIBLIST), $(HB_LIB_COMPILE)/$(lib))
endif

# HB_SCREEN_LIB: empty, or one of ncurses, slang
# HB_SCREEN_LIB=ncurses
# HB_SCREEN_LIB=slang

ifneq ($(HB_SCREEN_LIB),)
LINKLIBS += $(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), $(lib)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS)

AR = tlib.exe
ARFLAGS = $(A_USR)
AROBJS = $(foreach file, $(^F), -+$(file))
AR_RULE = $(AR) $(ARFLAGS) "$(subst /,\,$(LIB_DIR)/$@)" $(AROBJS),,

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\dir.cf
#
# $Id: dir.cf 6703 2006-06-20 22:54:59Z druzus $
#

ifeq ($(PM),) # Only traverse directories if not compiling a specific module

ifeq ($(SHLVL),) # COMMAND.COM

ifeq ($(DIRS),) # Empty directory list
DIR_RULE =\
	@echo Done
else
DIR_LIST := $(subst /,\,$(DIRS))
DIR_MAKE := $(subst /,\,$(MK))
DIR_RULE =\
	$(COMSPEC) /C FOR %d IN ($(DIR_LIST)) DO $(DIR_MAKE) -C %d $@
endif

else  # bash

DIR_RULE =\
	@for d in $(DIRS); do \
	  if [ -d $$d ]; then \
	    $(MAKE) -C $$d $@; \
	  fi \
	done

endif # ! Windows     

endif # ! compiling a specific program module
c:\harbour\config\w32\dm.cf
#
# $Id: dm.cf 9279 2008-08-29 08:37:04Z vszakats $
#

# GNU MAKE file for Digital Mars Compiler

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = dmc.exe
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -I. -I$(HB_INC_COMPILE)

CFLAGS = -6 -cpp -mn -x
# disabled - it causes that wrong code is generated
#CFLAGS += -o+time
# Suppressing "possible extraneous ';'" warnings. [vszakats]
#CFLAGS += -w7

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKLIBS += $(foreach lib, $(CONTRIBS), $(LIB_DIR)\$(lib)$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)\$(lib)$(LIB_EXT))
else
LINKLIBS += $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)\$(lib)$(LIB_EXT))
endif

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv)$(LIB_EXT))
endif

# Add the specified GT driver library and other RTLs
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt)$(LIB_EXT))
endif

ifneq ($(HB_SCREEN_LIB),)
LINKLIBS += $(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), $(lib)$(LIB_EXT))
endif

SYSLIBS = kernel32 user32 gdi32 wsock32 advapi32
SYSLIBS += winspool comctl32 comdlg32 ole32 oleaut32 uuid
LINKLIBS += $(SYSLIBS)


define link_exe_file
echo $(subst /,\,$(^F)) > __link__.tmp
echo $@ >> __link__.tmp
echo. >> __link__.tmp
echo $(subst /,\,$(LINKLIBS)) >> __link__.tmp
$(LD) $(LDFLAGS) @__link__.tmp
endef

LD = link.exe
LDFLAGS = /NOMAP /EXETYPE:NT /SUBSYSTEM:CONSOLE $(LINKPATHS) $(L_USR)
ifeq ($(SHLVL),)
LNKLIBS=$(subst /,\,$(LINKLIBS))
else
LNKLIBS=$(subst /,\\,$(subst \,/,$(LINKLIBS)))
endif
LD_RULE = $(LD) $(LDFLAGS) $(^F), $@,, $(LNKLIBS)

define create_library
echo $@ > __lib__.tmp
echo $(^F) >> __lib__.tmp
$(AR) $(ARFLAGS) @__lib__.tmp
endef

AR = lib.exe
ARFLAGS = -c $(A_USR)
AROBJS = $(foreach file, $(^F), $(file))
AR_RULE = $(AR) $(ARFLAGS) $(LIB_DIR)/$@ $(AROBJS)

ifeq ($(COMMAND_COM),yes)
# workaround for command line size limit
LD_RULE = $(link_exe_file)
AR_RULE = $(create_library)
endif

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\gcc.cf
#
# $Id: gcc.cf 9516 2008-09-29 14:02:59Z vszakats $
#

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

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 -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 = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) r $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\global.cf
#
# $Id: global.cf 9484 2008-09-23 22:24:26Z vszakats $
#

all : first

HB_GT_LIST=\
	gtcgi \
	gtpca \
	gtstd \
	gtwin \
	gtwvt \
	gtgui \

#	gtcrs \
#	gtsln \

# verify if GT drivers exist
HB_GT_LIBS := $(foreach gt, $(HB_GT_LIST), $(if $(wildcard $(TOP)$(ROOT)source/rtl/$(gt)),$(gt),))

ifeq ($(SHLVL),) # COMMAND.COM

# There is a conflict with the use of '\' and '/' characters
# The MAKE requires '/' in filenames (ARCH_DIR) however some compilers
# and some DOS commands require '\' (ARCH_DOS)
ARCH_DIR = $(subst \,/,$(HB_ARCH))
ARCH_DOS = $(subst /,\,$(HB_ARCH))
LIB_DIR_DOS = $(subst /,\,$(LIB_DIR))
LIB_PATH_DOS = $(subst /,\,$(LIB_PATH))
LIB_ARCH_DOS = $(subst /,\,$(LIB_ARCH))
DIRSEP = $(subst /,\,\)

MK := $(subst \,/,$(subst \~,~,$(MAKE)))

ifeq ($(COMSPEC),) #location of command.com
	ifeq ($(OS),Windows_NT)
		COMSPEC := cmd.exe
	else
		COMSPEC := command.com
	endif
endif

ifeq ($(findstring cmd.exe,$(COMSPEC)),cmd.exe)
  CMD_EXE := yes
else
  CMD_EXE := no
endif

RM = del
RD = rmdir
MD = md
CP = $(COMSPEC) /C copy
MV = move

ifeq ($(CMD_EXE),yes)

RM = del /q /f
RD = rmdir /q /s

dirbase::
	-@$(COMSPEC) /c \
	for %d in ($(HB_ARCHITECTURE) $(ARCH_DOS)) do if not exist %d\. $(MD) %d
	$(if $(LIB_PATH_DOS),-@$(COMSPEC) /c \
	for %d in ($(LIB_PATH_DOS) $(LIB_DIR_DOS)) do if not exist %d\. $(MD) %d,)

clean::
	-@$(COMSPEC) /c \
	if exist $(ARCH_DOS) $(RD) $(ARCH_DOS)
	$(if $(LIB_ARCH_DOS),-@$(COMSPEC) /c if exist $(LIB_ARCH_DOS) $(RM) $(LIB_ARCH_DOS),)

else # command.com

dirbase::
	-@for %%d in ($(HB_ARCHITECTURE) $(ARCH_DOS)) do if not exist %%d\nul $(MD) %%d
	$(if $(LIB_PATH_DOS),-@for %%d in ($(LIB_PATH_DOS) $(LIB_DIR_DOS)) do if not exist %%d\nul $(MD) %%d,)

clean::
	-@for %%f in ($(ARCH_DOS)\*.* *.bak *.obj *.o *.tds) do $(RM) %%f
	-@for %%d in ($(ARCH_DOS) $(HB_ARCHITECTURE)) do if exist %%d\nul $(RD) %%d
	$(if $(LIB_ARCH_DOS),-@if exist $(LIB_ARCH_DOS) $(RM) $(LIB_ARCH_DOS),)

endif

else  # bash

ARCH_DIR = $(HB_ARCH)
MK = $(MAKE)

RM = rm -f
RD = rm -f -r
CP = cp -f
MV = mv -f
MD = mkdir
MDP = mkdir -p

dirbase::
	@[ -d $(ARCH_DIR) ] || $(MDP) $(ARCH_DIR)
	@[ -z $(LIB_DIR) ] || [ -d $(LIB_DIR) ] || $(MDP) $(LIB_DIR)

clean::
	-$(RD) $(ARCH_DIR) $(LIB_ARCH)

endif
c:\harbour\config\w32\icc.cf
#
# $Id: icc.cf 6630 2006-03-10 20:16:35Z druzus $
#
# The Harbour Project
# GNU MAKE file for IBM Visual Age for C++
#
# This code is NOT TESTED yet! (19990711)

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

$(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\\,$(GRANDP))
_HB_INC_COMPILE = $(subst /,\\,$(HB_INC_COMPILE))
_HL = $(notdir $(HB_LIB_COMPILE))
ifeq ($(_HL),)
#there is an ending slash
_HB_LIB_COMPILE = $(subst /,\,$(HB_LIB_COMPILE))
else
_HB_LIB_COMPILE = $(subst /,\,$(HB_LIB_COMPILE)/)
endif

CC = icc
CC_IN = /Tp
CC_OUT = /Fo
CPPFLAGS = /C+
CFLAGS = /W2 /Sd /Se+ /Ti+ /i. /i$(_HB_INC_COMPILE)

#Note: The empty line below HAVE TO exist!
define link_file
echo /fo$(file) >> __link__.tmp

endef


define link_exe_file
echo $(LDFLAGS) -Fe$@ > __link__.tmp
$(foreach file, $(^F), $(link_file))
echo $(LINKLIBS) >> __link__.tmp
-$(LD) @__link__.tmp
endef

LD = icc
LDFLAGS = $(CFLAGS)
LINKLIBS += $(foreach lib, $(CONTRIBS), $(_HB_LIB_COMPILE)$(lib))
LINKLIBS += $(foreach lib, $(LIBS), $(_HB_LIB_COMPILE)$(lib))
LD_RULE = $(link_exe_file)

#Note: The empty line below HAVE TO exist!
define lib_object
echo -+$(file) >> __lib__.tmp

endef

define create_library
echo $@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
$(AR) @__lib__.tmp
del __lib__.tmp
endef

AR = ilib
ARFLAGS = $(A_USR)
AR_RULE = $(create_library)

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\install.cf
#
# $Id: install.cf 9190 2008-08-19 10:50:19Z vszakats $
#

ifeq ($(INSTALL_OBJS),) # Empty install list

INSTALL_RULE = @echo Done

else

ifeq ($(SHLVL),) # command.com or cmd.exe

INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS))

ifeq ($(CMD_EXE),yes)
# cmd.exe no command line size limit
INSTALL_RULE = \
	$(COMSPEC) /c for %f in ($(INSTALL_LIST)) do copy %f $(subst /,\,$(INSTALL_DIR))
else
# We have to use script to overcome the DOS limit of max 128 characters
# NOTE: The empty line directly before 'endef' HAVE TO exist!
# It causes that every commands will be separated by LF
define inst_file
$(CP) $(file) $(subst /,\,$(INSTALL_DIR))

endef
INSTALL_RULE = \
	$(foreach file, $(INSTALL_LIST), $(inst_file))
endif

else  # bash

INSTALL_RULE =\
	@if [ ! -d $(INSTALL_DIR) ]; \
	then \
	  echo "! Can't install, path not found: $(INSTALL_DIR)" 1>&2; \
	else \
	  for i in $(INSTALL_OBJS); \
	  do \
	    if [ -r $$i ]; \
	    then \
	      echo "! Installing $$i on $(INSTALL_DIR)"; \
	      $(CP) $$i $(INSTALL_DIR); \
	    else \
	      echo "! Can't install $$i, not found" 1>&2; \
	    fi \
	  done \
	fi

endif

endif  # Empty install list
c:\harbour\config\w32\mingw.cf
#
# $Id: mingw.cf 9516 2008-09-29 14:02:59Z vszakats $
#

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .o
EXE_EXT = .exe
LIB_PREF = lib
LIB_EXT = .a

CC = $(CCPREFIX)gcc
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -Wall -W -O3

LD = $(CCPREFIX)gcc
LD_OUT = -o
LINKPATHS =
LDLIBS =

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -L$(LIB_DIR)
else
LINKPATHS += -L$(HB_LIB_COMPILE)
endif

LDLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib)))
LDLIBS += $(foreach lib, $(LIBS), -l$(lib))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LDLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
endif

# Add the standard C main() entry
ifeq ($(HB_MAIN),std)
ifeq ($(findstring vm,$(LIBS)),vm)
ifneq ($(HB_GT_LIB),gtwvt)
LDLIBS += -lhbmainstd
endif
endif
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LDLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt))
endif

# HB_SCREEN_LIB: empty, or one of ncurses, slang
# HB_SCREEN_LIB=ncurses
# HB_SCREEN_LIB=slang

ifneq ($(HB_SCREEN_LIB),)
LDLIBS += -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),)
LDLIBS += $(foreach lib, $(LNK_USR_LIB), -l$(lib))
endif

# This library is needed for CharToOemBuff() and OemToCharBuff() support.
SYSLIBS = -luser32 -lgdi32 -lwsock32
SYSLIBS += -lwinspool -lcomctl32 -lcomdlg32 -lole32 -loleaut32 -luuid -lmpr -lws2_32 -lmapi32

# NOTE: The empty line directly before 'endef' HAVE TO exist!
# It causes that every echo command will be separated by LF
define lib_object
echo. ADDMOD $(file) >> __lib__.tmp

endef

# We have to use script to overcome the DOS limit of max 128 characters
# in commmand line
define create_library
echo. CREATE $(LIB_DIR)/$@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
echo. SAVE >> __lib__.tmp
echo. END >> __lib__.tmp
$(AR) $(ARFLAGS) -M < __lib__.tmp
endef

# NOTE: The empty line below HAVE TO exist!
define link_file
echo. $(file) >> __link__.tmp

endef

define search_dir
echo. SEARCH_DIR($(file)) >> __link__.tmp

endef

ifneq ($(strip $(LDLIBS)),)
define libs_list
echo. GROUP( >> __link__.tmp
$(foreach file, $(LDLIBS), $(link_file))
echo. ) >> __link__.tmp
endef
else
libs_list=
endif

define link_exe_file
echo. INPUT( >> __link__.tmp
$(foreach file, $(^F), $(link_file))
echo. ) >> __link__.tmp
$(libs_list)
$(foreach file, $(subst -L,,$(LINKPATHS)), $(search_dir))
echo. GROUP( >> __link__.tmp
$(foreach file, $(SYSLIBS), $(link_file))
echo. ) >> __link__.tmp
-$(LD) $(LDFLAGS) $(L_USR) $(LD_OUT)$@ __link__.tmp
endef

AR = $(CCPREFIX)ar
ARFLAGS = $(A_USR)

RANLIB = $(CCPREFIX)ranlib


ifeq ($(SHLVL),) # COMMAND.COM - length of command line is limited
ifneq ($(OS),Windows_NT)
AR_RULE = $(create_library)
LD_RULE = $(link_exe_file)
endif
endif

ifeq ($(AR_RULE),)
AR_RULE = $(AR) $(ARFLAGS) cr $(LIB_DIR)/$@ $(^F) && $(RANLIB) $(LIB_DIR)/$@ || $(RM) $(LIB_DIR)/$@
# our libs have a lot of cross referenced now and we have to group them
# until we won't have cleaned them
LINKLIBS = $(LINKPATHS) -Wl,--start-group $(LDLIBS) -Wl,--end-group $(SYSLIBS)
endif

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\mingwce.cf
#
# $Id: mingwce.cf 9516 2008-09-29 14:02:59Z vszakats $
#

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .o
EXE_EXT = .exe
LIB_PREF = lib
LIB_EXT = .a

CC = $(CCPREFIX)gcc
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -Wall -W -O3

LD = $(CCPREFIX)gcc
LD_OUT = -o
LINKPATHS =
LDLIBS =

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -L$(LIB_DIR)
else
LINKPATHS += -L$(HB_LIB_COMPILE)
endif

LDLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib)))
LDLIBS += $(foreach lib, $(LIBS), -l$(lib))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LDLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LDLIBS += $(foreach gt, $(HB_GT_LIBS), -l$(gt))
endif

# HB_SCREEN_LIB: empty, or one of ncurses, slang
# HB_SCREEN_LIB=ncurses
# HB_SCREEN_LIB=slang

ifneq ($(HB_SCREEN_LIB),)
LDLIBS += -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),)
LDLIBS += $(foreach lib, $(LNK_USR_LIB), -l$(lib))
endif

SYSLIBS = -lwininet -lws2
# for contribs
SYSLIBS += -lcommdlg -lcommctrl -luuid -lole32

# NOTE: The empty line directly before 'endef' HAVE TO exist!
# It causes that every echo command will be separated by LF
define lib_object
echo. ADDMOD $(file) >> __lib__.tmp

endef

# We have to use script to overcome the DOS limit of max 128 characters
# in commmand line
define create_library
echo. CREATE $(LIB_DIR)/$@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
echo. SAVE >> __lib__.tmp
echo. END >> __lib__.tmp
$(AR) $(ARFLAGS) -M < __lib__.tmp
endef

# NOTE: The empty line below HAVE TO exist!
define link_file
echo. $(file) >> __link__.tmp

endef

define search_dir
echo. SEARCH_DIR($(file)) >> __link__.tmp

endef

ifneq ($(strip $(LDLIBS)),)
define libs_list
echo. GROUP( >> __link__.tmp
$(foreach file, $(LDLIBS), $(link_file))
echo. ) >> __link__.tmp
endef
else
libs_list=
endif

define link_exe_file
echo. INPUT( >> __link__.tmp
$(foreach file, $(^F), $(link_file))
echo. ) >> __link__.tmp
$(libs_list)
$(foreach file, $(subst -L,,$(LINKPATHS)), $(search_dir))
echo. GROUP( >> __link__.tmp
$(foreach file, $(SYSLIBS), $(link_file))
echo. ) >> __link__.tmp
-$(LD) $(LDFLAGS) $(L_USR) $(LD_OUT)$@ __link__.tmp
endef

LDFLAGS =

AR = $(CCPREFIX)ar
ARFLAGS = $(A_USR)

RANLIB = $(CCPREFIX)ranlib

AR = $(CCPREFIX)ar
ARFLAGS = $(A_USR)

ifeq ($(SHLVL),) # COMMAND.COM - length of command line is limited
ifneq ($(OS),Windows_NT)
AR_RULE = $(create_library)
LD_RULE = $(link_exe_file)
endif
endif

ifeq ($(AR_RULE),)
AR_RULE = $(AR) $(ARFLAGS) cr $(LIB_DIR)/$@ $(^F) && $(RANLIB) $(LIB_DIR)/$@ || $(RM) $(LIB_DIR)/$@
# our libs have a lot of cross referenced now and we have to group them
# until we won't have cleaned them
LINKLIBS = $(LINKPATHS) -Wl,--start-group $(LDLIBS) -Wl,--end-group $(SYSLIBS)
endif

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\msvc.cf
#
# $Id: msvc.cf 9522 2008-09-30 00:08:07Z vszakats $
#

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = cl.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -nologo -W4 -Gs -Zi

ifeq ($(HB_VISUALC_VER_PRE80),)
CFLAGS += -Ot2b1 -EHs-c- -D_CRT_SECURE_NO_DEPRECATE
else
CFLAGS += -Ogt2yb1p -GX- -G6 -YX
endif

LD = cl.exe
LD_OUT = -Fe

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -link -LIBPATH:$(LIB_DIR)
else
LINKPATHS += -link -LIBPATH:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS)

AR = lib.exe
ARFLAGS = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\msvcce.cf
#
# $Id: msvcce.cf 9522 2008-09-30 00:08:07Z vszakats $
#

# Work in progress. Please test.

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = cl.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I. -I$(HB_INC_COMPILE)
CFLAGS = -nologo -W4 -D"_WIN32_WCE=0x420" -D"UNDER_CE=0x420" -D"WIN32_PLATFORM_PSPC" -D"WINCE" -D"_WINCE" -D"_WINDOWS" -D"ARM" -D"_ARM_" -D"ARMV4" -D"POCKETPC2003_UI_MODEL" -D"_M_ARM" -D"UNICODE" -D"_UNICODE" -D_UWIN

ifeq ($(HB_VISUALC_VER_PRE80),)
CFLAGS += -Od -Os -Gy -GS- -EHsc- -Gm -Zi -GR- -D_CRT_SECURE_NO_DEPRECATE
else
CFLAGS += -Oxsb1 -EHsc -YX -GF
endif

LD = cl.exe
LD_OUT = -Fe

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -link -LIBPATH:$(LIB_DIR)
else
LINKPATHS += -link -LIBPATH:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS)

AR = lib.exe
ARFLAGS = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\owatcom.cf
#
# $Id: owatcom.cf 9397 2008-09-14 20:16:03Z druzus $
#
# The Harbour project
# GNU MAKE file for Open Watcom C/C++ compiler

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = wpp386
CC_IN =
CC_OUT = -fo=

#CPPFLAGS = -j -w3 -d2 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=NT
CPPFLAGS = -w2 -d1 -zq -bt=NT

#architecture flags
CPPFLAGS += -5 -fp5

# optimization flags
# don't enable -ol optimization in OpenWatcom 1.1 - gives buggy code
CPPFLAGS += -onaehtzr -oi+ -ei -zp8 -s -zt0

CPPFLAGS += -i. -i$(TOP)include -i$(TOP)$(ROOT)include -iinclude
ifneq ($(HB_LIB_COMPILE),)
	CPPFLAGS += -i$(HB_INC_COMPILE)
endif

# work arround to DOS command line size limit
export WPP386 := $(strip $(CPPFLAGS))
CPPFLAGS =

# Note: The empty line directly before 'endef' HAVE TO exist!
# It causes that the 'echo' command is separated by LF
define link_file
echo FILE $(file) >> __link__.tmp

endef

#Note: The empty line directly before 'endef' HAVE TO exist!
define link_lib
echo LIB $(lib) >> __link__.tmp

endef

define link_exe_file
echo $(LDFLAGS) NAME $@ > __link__.tmp
$(foreach file, $(^F), $(link_file))
$(foreach lib, $(LINKLIBS), $(link_lib))
$(foreach lib, $(RDDLIBS), $(link_lib))
$(foreach lib, $(GTLIBS), $(link_lib))
echo @%watcom%/binnt/wlink.lnk >> __link__.tmp
echo LIB kernel32.lib, user32.lib, wsock32.lib, winspool.lib, oleaut32.lib, uuid.lib, comctl32.lib, mapi32.lib >> __link__.tmp
-$(LD) @__link__.tmp
endef

LD = wlink
LDFLAGS = debug all OP osn=NT OP stack=65536 OP CASEEXACT

ifeq ($(HB_LIB_COMPILE),)
   LINKLIBS = $(foreach lib, $(CONTRIBS), $(LIB_DIR)/$(lib))
   LINKLIBS += $(foreach lib, $(LIBS), $(LIB_DIR)/$(lib))
else
   LINKLIBS = $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)/$(lib))
   LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)/$(lib))
endif

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
   ifeq ($(HB_LIB_COMPILE),)
      RDDLIBS = $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv))
   else
      RDDLIBS = $(foreach drv, $(HB_DB_DRIVERS), $(HB_LIB_COMPILE)/$(drv))
   endif
endif

ifeq ($(findstring rtl,$(LIBS)),rtl)
   ifeq ($(HB_LIB_COMPILE),)
      GTLIBS = $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt))
   else
      GTLIBS = $(foreach gt, $(HB_GT_LIBS), $(HB_LIB_COMPILE)/$(gt))
   endif
endif

LD_RULE = $(link_exe_file)

#Note: The empty line below HAVE TO exist!
define lib_object
echo -+$(file) >> __lib__.tmp

endef

define create_library
echo $(LIB_DIR)/$@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
$(AR) $(ARFLAGS) @__lib__.tmp
endef

AR = wlib
ARFLAGS = -p=64 -c -n $(A_USR)
AR_RULE = $(create_library)

include $(TOP)$(ROOT)config/rules.cf

# work arround to DOS command line size limit
export HARBOURCMD := $(HB_FLAGS)
HB_FLAGS =
c:\harbour\config\w32\pocc.cf
#
# $Id: pocc.cf 9501 2008-09-24 22:22:57Z vszakats $
#
# The Harbour Project
# GNU MAKE file for Pelles ISO C Compiler

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = pocc.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I.

CPPFLAGS += -Ze -Go

# optimizations
CPPFLAGS += -Ot -Ox

# For Pocket PC and ARM processors (including XScale)
#CPPFLAGS += -Tarm-coff

# For x86 based CPUs
#CPPFLAGS += -Tx86-coff

ifneq ($(HB_INC_COMPILE),)
CPPFLAGS += -I$(HB_INC_COMPILE)
endif

CFLAGS = 

LD = polink.exe
LD_OUT = -OUT:

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -LIBPATH:$(LIB_DIR)
else
LINKPATHS += -LIBPATH:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib wsock32.lib ws2_32.lib advapi32.lib
LDFLAGS += winspool.lib ole32.lib oleaut32.lib uuid.lib \
           comctl32.lib mapi32.lib mpr.lib

ifeq ($(HB_GT_LIB),gtgui)
LDFLAGS += /SUBSYSTEM:WINDOWS
endif

AR = polib.exe
ARFLAGS = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F)

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\poccce.cf
#
# $Id: poccce.cf 9501 2008-09-24 22:22:57Z vszakats $
#

# The Harbour Project
# GNU MAKE file for Pelles ISO C Compiler for WinCE

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = pocc.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I.

CPPFLAGS += -Ze -Go

# optimizations
CPPFLAGS += -Ot -Ox

# For Pocket PC and ARM processors (including XScale)
CPPFLAGS += -Tarm-coff -DSTRSAFE_NO_DEPRECATE

ifneq ($(HB_INC_COMPILE),)
CPPFLAGS += -I$(HB_INC_COMPILE)
endif

CFLAGS = 

LD = polink.exe
LD_OUT = -OUT:

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -LIBPATH:$(LIB_DIR)
else
LINKPATHS += -LIBPATH:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS) coredll.lib corelibc.lib winsock.lib ws2.lib

ifeq ($(HB_GT_LIB),gtgui)
LDFLAGS += /SUBSYSTEM:WINDOWS
endif

AR = polib.exe
ARFLAGS = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F)

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\rsxnt.cf
#
# $Id: rsxnt.cf 9516 2008-09-29 14:02:59Z vszakats $
#

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .o
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .a

CC = gcc
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -I. -I$(HB_INC_COMPILE) -Zwin32
CFLAGS = -Wall -W -O3

LD = gcc
LDFLAGS = -Zwin32
# Note the space after -o
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.
# it's automatically added by RSXNT
#LINKLIBS += -luser32

# 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 = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) r $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@

include $(TOP)$(ROOT)config/rules.cf
c:\harbour\config\w32\watcom.cf
#
# $Id: watcom.cf 9227 2008-08-25 12:19:06Z vszakats $
#
# The Harbour project
# GNU MAKE file for Watcom C/C++ 10.x

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

$(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\,$(GRANDP))

CC = wpp386
CC_IN =
CC_OUT = -fo=

#CPPFLAGS = -j -w3 -d2 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=NT
CPPFLAGS = -w2 -d1 -zq -bt=NT

#architecture flags
CPPFLAGS += -5 -fp5

# optimization flags
# don't enable -ol optimization in OpenWatcom 1.1 - gives buggy code
CPPFLAGS += -onaehtzr -oi+ -ei -zp8 -s -zt0

CPPFLAGS += -i. -i$(TOP)include -i$(TOP)$(ROOT)include -iinclude
ifneq ($(HB_LIB_COMPILE),)
	CPPFLAGS += -i$(HB_INC_COMPILE)
endif

# work arround to DOS command line size limit
export WPP386 := $(strip $(CPPFLAGS))
CPPFLAGS =

# Note: The empty line directly before 'endef' HAVE TO exist!
# It causes that the 'echo' command is separated by LF
define link_file
echo. FILE $(file) >> __link__.tmp

endef

#Note: The empty line directly before 'endef' HAVE TO exist!
define link_lib
echo. LIB $(lib) >> __link__.tmp

endef

define link_exe_file
echo. $(LDFLAGS) NAME $@ > __link__.tmp
echo. LIB kernel32.lib, user32.lib, wsock32.lib, winspool.lib, oleaut32.lib, uuid.lib, comctl32.lib, mapi32.lib >> __link__.tmp
$(foreach file, $(^F), $(link_file))
$(foreach lib, $(LINKLIBS), $(link_lib))
$(foreach lib, $(RDDLIBS), $(link_lib))
$(foreach lib, $(GTLIBS), $(link_lib))
-$(LD) @__link__.tmp
endef

LD = wlink
LDFLAGS = debug all OP osn=NT OP stack=65536 OP CASEEXACT

ifeq ($(HB_LIB_COMPILE),)
   LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(LIB_DIR)/$(lib)))
   LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(LIB_DIR)/$(lib)))
else
   LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib)))
   LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib)))
endif

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
   ifeq ($(HB_LIB_COMPILE),)
      RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv))
   else
      RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(HB_LIB_COMPILE)/$(drv))
   endif
   RDDLIBS := $(subst /,\,$(RDDLIBS))
endif

ifeq ($(findstring rtl,$(LIBS)),rtl)
   ifeq ($(HB_LIB_COMPILE),)
      GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt))
   else
      GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(HB_LIB_COMPILE)/$(gt))
   endif
   GTLIBS := $(subst /,\,$(GTLIBS))
endif

LD_RULE = $(link_exe_file)

#Note: The empty line below HAVE TO exist!
define lib_object
echo. -+$(file) >> __lib__.tmp

endef

LIB_DDIR := $(subst /,\,$(LIB_DIR))

define create_library
echo. $(LIB_DDIR)\$@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
$(AR) $(ARFLAGS) @__lib__.tmp
endef

AR = wlib
ARFLAGS = -p=64 -c -n $(A_USR)
AR_RULE = $(create_library)

include $(TOP)$(ROOT)config/rules.cf

HB := $(subst /,\,$(HB))
HB_FLAGS := $(subst /,\,$(HB_FLAGS))

# work arround to DOS command line size limit
export HARBOURCMD := $(HB_FLAGS)
HB_FLAGS =
c:\harbour\config\w32\xcc.cf
#
# $Id: xcc.cf 9501 2008-09-24 22:22:57Z vszakats $
#
# The Harbour Project
# GNU MAKE file for xHarbour.com POCC compiler

include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf

OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib

CC = xcc.exe
CC_IN = -c
CC_OUT = -Fo
CPPFLAGS = -I$(HB_INC_COMPILE) -I$(TOP) -I$(TOP)$(ROOT)
# disabled - it produces bad code
#CPPFLAGS += -Ot

# For Pocket PC and ARM processors (including XScale)
#CPPFLAGS += /Tarm-coff

CFLAGS = 

LD = xlink.exe
LD_OUT = -OUT:

# Add all libraries specified in CONTRIBS and LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += -LIBPATH:$(LIB_DIR)
else
LINKPATHS += -LIBPATH:$(HB_LIB_COMPILE)
endif
LINKLIBS += $(foreach lib, $(CONTRIBS), $(subst lib,,$(lib))$(LIB_EXT))
LINKLIBS += $(foreach lib, $(LIBS), $(lib)$(LIB_EXT))

# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), $(drv)$(LIB_EXT))
endif

# Add the specified GT driver library
ifeq ($(findstring rtl,$(LIBS)),rtl)
LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT))
endif

LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib wsock32.lib ws2_32.lib advapi32.lib
LDFLAGS += winspool.lib ole32.lib oleaut32.lib uuid.lib \
           comctl32.lib mapi32.lib mpr.lib

ifeq ($(HB_GT_LIB),gtgui)
LDFLAGS += /SUBSYSTEM:WINDOWS
endif

AR = xlib.exe
ARFLAGS = $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) /out:$(LIB_DIR)/$@ $(^F)

include $(TOP)$(ROOT)config/rules.cf

Page url: http://www.yourdomain.com/help/index.html?w32.htm