MAK Files

  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
c:\harbour\common.mak
#
# $Id: common.mak 9530 2008-10-02 12:34:36Z druzus $
#

# ---------------------------------------------------------------
# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl)
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------

#**********************************************************
# Common makefile.bc and makefile.vc definitions
#**********************************************************

#
# Macro to show/hide executed commands
#
!if "$(HB_BUILD_VERBOSE)" != "yes"
.SILENT:
!endif

#**********************************************************

# ---------------------------------------------------------------
# "echo." intentionally used instead of "echo", to avoid conflicts
# with external commands named echo.
# using macros for ECHO and DEL to allow overiding such as:
#
#    set ECHO=cmd /c echo
#    set DEL=cmd /c del
#
# The above might be needed on Windows 2000 and XP.
# The macros are referenced in makefile.bc
# ---------------------------------------------------------------

!ifndef ECHO
ECHO = echo.
!endif
!ifndef DEL
DEL = del
!endif

#**********************************************************

#
# binary file suffixes and prefixes
#
!ifndef OBJEXT
OBJEXT=.obj
!endif

!ifndef EXEEXT
EXEEXT=.exe
!endif

!ifndef DLLEXT
DLLEXT=.dll
!endif

!ifndef LIBEXT
LIBEXT=.lib
!endif

!ifndef LIBPREF
LIBPREF=
!endif

#**********************************************************
# Install directory defaults.
#**********************************************************

!ifndef HB_INSTALL_PREFIX
HB_INSTALL_PREFIX = .
!endif

!ifndef HB_BIN_INSTALL
HB_BIN_INSTALL = $(HB_INSTALL_PREFIX)\bin
!endif
!ifndef HB_INC_INSTALL
HB_INC_INSTALL = $(HB_INSTALL_PREFIX)\include
!endif
!ifndef HB_LIB_INSTALL
HB_LIB_INSTALL = $(HB_INSTALL_PREFIX)\lib
!endif

#**********************************************************
# Directory macros. These should never have to change.
#**********************************************************

!ifdef _HB_CC_NAME
HB_CC_NAME = $(_HB_CC_NAME)
!endif

BIN_DIR = bin\$(HB_CC_NAME)
OBJ_DIR = obj\$(HB_CC_NAME)
LIB_DIR = lib\$(HB_CC_NAME)

MT_OBJ_DIR = obj\$(HB_CC_NAME)_mt

DLL_ROOTDIR = obj\dll
DLL_OBJ_DIR = $(DLL_ROOTDIR)\$(HB_CC_NAME)

# Targets Destination Directories
HB_DEST_DIRS = \
    $(BIN_DIR)      \
    $(OBJ_DIR)      \
    $(LIB_DIR)      \
    \
    $(MT_OBJ_DIR)   \
    \
    $(DLL_ROOTDIR)  \
    $(DLL_OBJ_DIR)

MAIN_DIR     = source\main
COMMON_DIR   = source\common
COMPILER_DIR = source\compiler
PP_DIR       = source\pp
VM_DIR       = source\vm
RTL_DIR      = source\rtl
MACRO_DIR    = source\macro
DEBUG_DIR    = source\debug
LANG_DIR     = source\lang
CODEPAGE_DIR = source\codepage
PCRE_DIR     = source\hbpcre
HBZLIB_DIR   = source\hbzlib
HBEXTERN_DIR = source\hbextern
RDD_DIR      = source\rdd
NULSYS_DIR   = source\rdd\nulsys
DBFNTX_DIR   = source\rdd\dbfntx
DBFCDX_DIR   = source\rdd\dbfcdx
DBFFPT_DIR   = source\rdd\dbffpt
HBSIX_DIR    = source\rdd\hbsix
HSX_DIR      = source\rdd\hsx
USRRDD_DIR   = source\rdd\usrrdd

GTCGI_DIR    = source\rtl\gtcgi
GTSTD_DIR    = source\rtl\gtstd
GTPCA_DIR    = source\rtl\gtpca
GTDOS_DIR    = source\rtl\gtdos
GTWIN_DIR    = source\rtl\gtwin
GTWVT_DIR    = source\rtl\gtwvt
GTGUI_DIR    = source\rtl\gtgui
GTOS2_DIR    = source\rtl\gtos2
GTTRM_DIR    = source\rtl\gttrm
GTCRS_DIR    = source\rtl\gtcrs
GTSLN_DIR    = source\rtl\gtsln
GTXWC_DIR    = source\rtl\gtxwc

HBRUN_DIR    = utils\hbrun
HBTEST_DIR   = utils\hbtest
HBDOC_DIR    = utils\hbdoc
HBMAKE_DIR   = utils\hbmake

#**********************************************************

# Where Bcc-Make should look for C and PRG sources
ALL_LIB_SRC_DIRS_TMP=\
$(OBJ_DIR);\
$(MAIN_DIR);\
$(COMMON_DIR);\
$(COMPILER_DIR);\
$(PP_DIR);\
$(VM_DIR);\
$(RTL_DIR);\
$(MACRO_DIR);\
$(DEBUG_DIR);\
$(LANG_DIR);\
$(CODEPAGE_DIR);\
$(PCRE_DIR);\
$(HBZLIB_DIR);\
$(HBEXTERN_DIR);\
$(RDD_DIR);\
$(NULSYS_DIR);\
$(DBFNTX_DIR);\
$(DBFCDX_DIR);\
$(DBFFPT_DIR);\
$(HBSIX_DIR);\
$(HSX_DIR);\
$(USRRDD_DIR);\
$(GTCGI_DIR);\
$(GTSTD_DIR);\
$(GTPCA_DIR);\
$(GTDOS_DIR);\
$(GTWIN_DIR);\
$(GTWVT_DIR);\
$(GTGUI_DIR);\
$(GTOS2_DIR);\
$(GTTRM_DIR);\
$(GTCRS_DIR);\
$(GTSLN_DIR);\
$(GTXWC_DIR)\

ALL_EXE_SRC_DIRS_TMP=\
$(HBRUN_DIR);\
$(HBTEST_DIR);\
$(HBDOC_DIR);\
$(HBMAKE_DIR)\

ALL_SRC_DIRS_TMP=\
$(ALL_LIB_SRC_DIRS_TMP);\
$(ALL_EXE_SRC_DIRS_TMP)\

ALL_LIB_SRC_DIRS = $(ALL_LIB_SRC_DIRS_TMP: =)
ALL_EXE_SRC_DIRS = $(ALL_EXE_SRC_DIRS_TMP: =)
ALL_SRC_DIRS     = $(ALL_SRC_DIRS_TMP: =)

#**********************************************************
#**********************************************************
#**********************************************************

#
# Macros to define our library and executable names
#

COMMON_LIB   = $(LIB_DIR)\$(LIBPREF)hbcommon$(LIBEXT)
COMPILER_LIB = $(LIB_DIR)\$(LIBPREF)hbcplr$(LIBEXT)
PP_LIB       = $(LIB_DIR)\$(LIBPREF)hbpp$(LIBEXT)
VM_LIB       = $(LIB_DIR)\$(LIBPREF)hbvm$(LIBEXT)
VMMT_LIB     = $(LIB_DIR)\$(LIBPREF)hbvmmt$(LIBEXT)
RTL_LIB      = $(LIB_DIR)\$(LIBPREF)hbrtl$(LIBEXT)
MACRO_LIB    = $(LIB_DIR)\$(LIBPREF)hbmacro$(LIBEXT)
DEBUG_LIB    = $(LIB_DIR)\$(LIBPREF)hbdebug$(LIBEXT)
LANG_LIB     = $(LIB_DIR)\$(LIBPREF)hblang$(LIBEXT)
CODEPAGE_LIB = $(LIB_DIR)\$(LIBPREF)hbcpage$(LIBEXT)
PCRE_LIB     = $(LIB_DIR)\$(LIBPREF)hbpcre$(LIBEXT)
HBZLIB_LIB   = $(LIB_DIR)\$(LIBPREF)hbzlib$(LIBEXT)
HBEXTERN_LIB = $(LIB_DIR)\$(LIBPREF)hbextern$(LIBEXT)
RDD_LIB      = $(LIB_DIR)\$(LIBPREF)hbrdd$(LIBEXT)
HBSIX_LIB    = $(LIB_DIR)\$(LIBPREF)hbsix$(LIBEXT)
HSX_LIB      = $(LIB_DIR)\$(LIBPREF)hbhsx$(LIBEXT)
NULSYS_LIB   = $(LIB_DIR)\$(LIBPREF)hbnulrdd$(LIBEXT)
USRRDD_LIB   = $(LIB_DIR)\$(LIBPREF)hbusrrdd$(LIBEXT)

DBFNTX_LIB   = $(LIB_DIR)\$(LIBPREF)rddntx$(LIBEXT)
DBFCDX_LIB   = $(LIB_DIR)\$(LIBPREF)rddcdx$(LIBEXT)
DBFFPT_LIB   = $(LIB_DIR)\$(LIBPREF)rddfpt$(LIBEXT)

GTCGI_LIB    = $(LIB_DIR)\$(LIBPREF)gtcgi$(LIBEXT)
GTSTD_LIB    = $(LIB_DIR)\$(LIBPREF)gtstd$(LIBEXT)
GTDOS_LIB    = $(LIB_DIR)\$(LIBPREF)gtdos$(LIBEXT)
GTPCA_LIB    = $(LIB_DIR)\$(LIBPREF)gtpca$(LIBEXT)
GTWIN_LIB    = $(LIB_DIR)\$(LIBPREF)gtwin$(LIBEXT)
GTWVT_LIB    = $(LIB_DIR)\$(LIBPREF)gtwvt$(LIBEXT)
GTGUI_LIB    = $(LIB_DIR)\$(LIBPREF)gtgui$(LIBEXT)
GTOS2_LIB    = $(LIB_DIR)\$(LIBPREF)gtos2$(LIBEXT)
GTTRM_LIB    = $(LIB_DIR)\$(LIBPREF)gttrm$(LIBEXT)
GTCRS_LIB    = $(LIB_DIR)\$(LIBPREF)gtcrs$(LIBEXT)
GTSLN_LIB    = $(LIB_DIR)\$(LIBPREF)gtsln$(LIBEXT)
GTXWC_LIB    = $(LIB_DIR)\$(LIBPREF)gtxwc$(LIBEXT)

HARBOUR_EXE  = $(BIN_DIR)\harbour$(EXEEXT)
# required (intermediate) utility
#     to generate pptable.c
HBPP_EXE     = $(BIN_DIR)\hbpp$(EXEEXT)
HBRUN_EXE    = $(BIN_DIR)\hbrun$(EXEEXT)
HBTEST_EXE   = $(BIN_DIR)\hbtest$(EXEEXT)
HBDOC_EXE    = $(BIN_DIR)\hbdoc$(EXEEXT)
HBMAKE_EXE   = $(BIN_DIR)\hbmake$(EXEEXT)

HB_DLLVER    = 11
HARBOUR_DLL  = $(BIN_DIR)\$(LIBPREF)harbour-$(HB_DLLVER)-$(HB_CC_NAME)$(DLLEXT)
HBTESTDLL_EXE= $(BIN_DIR)\hbtest-dll$(EXEEXT)

#**********************************************************

!ifndef HB_GT_LIBS

#
# GT drivers supported by all platforms
#
HB_STD_GT = $(GTCGI_LIB) $(GTSTD_LIB) $(GTPCA_LIB)

#
# WinOS's GT driver list
#
HB_WINOS_GT = \
    $(GTWIN_LIB) \
    $(GTWVT_LIB) \
    $(GTGUI_LIB)

!ifdef HB_GT_LIST
HB_GT_LIBS = $(HB_STD_GT) $(HB_GT_LIST)
!else
HB_GT_LIBS = $(HB_STD_GT) $(HB_WINOS_GT)
!endif

!endif

#**********************************************************
#**********************************************************
#**********************************************************

# Minimal Libs for HB-based executables
MINIMAL_STATIC_HBLIBS = \
    $(COMMON_LIB)        \
    $(VM_LIB)            \
    $(RTL_LIB)           \
    $(HB_GT_LIBS)        \
    $(NULSYS_LIB)        \
    $(MACRO_LIB)         \
    $(DEBUG_LIB)         \

# Standard Libs for HB-based executables
STANDARD_STATIC_HBLIBS = \
    $(COMMON_LIB)        \
    $(PP_LIB)            \
    $(COMPILER_LIB)      \
    $(VM_LIB)            \
    $(RTL_LIB)           \
    $(HB_GT_LIBS)        \
    $(LANG_LIB)          \
    $(CODEPAGE_LIB)      \
    $(PCRE_LIB)          \
    $(HBZLIB_LIB)        \
    $(HBEXTERN_LIB)      \
    $(RDD_LIB)           \
    $(MACRO_LIB)         \
    $(DEBUG_LIB)         \
    $(DBFNTX_LIB)        \
    $(DBFCDX_LIB)        \
    $(DBFFPT_LIB)        \
    $(HBSIX_LIB)         \
    $(HSX_LIB)           \
    $(USRRDD_LIB)        \

#**********************************************************
#**********************************************************
#**********************************************************

# OBJECT LIST definitions

#**********************************************************

COMMON_LIB_OBJS = \
    $(OBJ_DIR)\expropt1$(OBJEXT) \
    $(OBJ_DIR)\expropt2$(OBJEXT) \
    $(OBJ_DIR)\hbarch$(OBJEXT)   \
    $(OBJ_DIR)\hbfsapi$(OBJEXT)  \
    $(OBJ_DIR)\hbfopen$(OBJEXT)  \
    $(OBJ_DIR)\hbgete$(OBJEXT)   \
    $(OBJ_DIR)\hbwince$(OBJEXT)  \
    $(OBJ_DIR)\hbhash$(OBJEXT)   \
    $(OBJ_DIR)\hbdate$(OBJEXT)   \
    $(OBJ_DIR)\hbstr$(OBJEXT)    \
    $(OBJ_DIR)\hbtrace$(OBJEXT)  \
    $(OBJ_DIR)\hbver$(OBJEXT)    \
    $(OBJ_DIR)\hbverdsp$(OBJEXT) \
    $(OBJ_DIR)\reserved$(OBJEXT)

#**********************************************************

PP_LIB_OBJS = \
    $(OBJ_DIR)\pptable$(OBJEXT)  \
    $(OBJ_DIR)\ppcore$(OBJEXT)   \
    $(OBJ_DIR)\pplib$(OBJEXT)    \
    $(OBJ_DIR)\pplib2$(OBJEXT)   \
    $(OBJ_DIR)\pplib3$(OBJEXT)   \

#**********************************************************

COMPILER_LIB_OBJS = \
    $(OBJ_DIR)\hbmain$(OBJEXT)   \
    $(OBJ_DIR)\harboury$(OBJEXT) \
    $(OBJ_DIR)\complex$(OBJEXT)  \
    $(OBJ_DIR)\cmdcheck$(OBJEXT) \
    $(OBJ_DIR)\hbcomp$(OBJEXT)   \
    $(OBJ_DIR)\hbcmplib$(OBJEXT) \
    $(OBJ_DIR)\hbdbginf$(OBJEXT) \
    $(OBJ_DIR)\hbdead$(OBJEXT)   \
    $(OBJ_DIR)\hbstripl$(OBJEXT) \
    $(OBJ_DIR)\hbusage$(OBJEXT)  \
    $(OBJ_DIR)\hbident$(OBJEXT)  \
    $(OBJ_DIR)\hbgenerr$(OBJEXT) \
    $(OBJ_DIR)\hblbl$(OBJEXT)    \
    $(OBJ_DIR)\hbpcode$(OBJEXT)  \
    $(OBJ_DIR)\hbfunchk$(OBJEXT) \
    $(OBJ_DIR)\hbfix$(OBJEXT)    \
    $(OBJ_DIR)\hbopt$(OBJEXT)    \
    $(OBJ_DIR)\ppcomp$(OBJEXT)   \
    $(OBJ_DIR)\genc$(OBJEXT)     \
    $(OBJ_DIR)\gencc$(OBJEXT)    \
    $(OBJ_DIR)\gencobj$(OBJEXT)  \
    $(OBJ_DIR)\genhrb$(OBJEXT)   \
    $(OBJ_DIR)\expropta$(OBJEXT) \
    $(OBJ_DIR)\exproptb$(OBJEXT) \

#**********************************************************

# VM Objects common for STATIC and SHARED library
VM_COMMON_LIB_OBJS = \
    $(OBJ_DIR)\arrays$(OBJEXT)   \
    $(OBJ_DIR)\arrayshb$(OBJEXT) \
    $(OBJ_DIR)\asort$(OBJEXT)    \
    $(OBJ_DIR)\break$(OBJEXT)    \
    $(OBJ_DIR)\classes$(OBJEXT)  \
    $(OBJ_DIR)\cmdarg$(OBJEXT)   \
    $(OBJ_DIR)\codebloc$(OBJEXT) \
    $(OBJ_DIR)\debug$(OBJEXT)    \
    $(OBJ_DIR)\debugold$(OBJEXT) \
    $(OBJ_DIR)\dynlibhb$(OBJEXT) \
    $(OBJ_DIR)\dynsym$(OBJEXT)   \
    $(OBJ_DIR)\estack$(OBJEXT)   \
    $(OBJ_DIR)\eval$(OBJEXT)     \
    $(OBJ_DIR)\evalhb$(OBJEXT)   \
    $(OBJ_DIR)\extend$(OBJEXT)   \
    $(OBJ_DIR)\extrap$(OBJEXT)   \
    $(OBJ_DIR)\fm$(OBJEXT)       \
    $(OBJ_DIR)\garbage$(OBJEXT)  \
    $(OBJ_DIR)\hashes$(OBJEXT)   \
    $(OBJ_DIR)\hashfunc$(OBJEXT) \
    $(OBJ_DIR)\hvm$(OBJEXT)      \
    $(OBJ_DIR)\initexit$(OBJEXT) \
    $(OBJ_DIR)\initsymb$(OBJEXT) \
    $(OBJ_DIR)\itemapi$(OBJEXT)  \
    $(OBJ_DIR)\macro$(OBJEXT)    \
    $(OBJ_DIR)\memvars$(OBJEXT)  \
    $(OBJ_DIR)\memvclip$(OBJEXT) \
    $(OBJ_DIR)\pcount$(OBJEXT)   \
    $(OBJ_DIR)\proc$(OBJEXT)     \
    $(OBJ_DIR)\pvalue$(OBJEXT)   \
    $(OBJ_DIR)\runner$(OBJEXT)   \
    $(OBJ_DIR)\set$(OBJEXT)      \
    $(OBJ_DIR)\thread$(OBJEXT)   \
    $(OBJ_DIR)\vm$(OBJEXT)       \
    $(OBJ_DIR)\harbinit$(OBJEXT) \

# Specific VM Objects for building STATIC library
VM_STATIC_LIB_OBJS = \
    $(OBJ_DIR)\mainstd$(OBJEXT)  \
    $(OBJ_DIR)\mainwin$(OBJEXT)

# Specific VM Objects for building SHARED (DLL) library
VM_SHARED_LIB_OBJS = \
    $(OBJ_DIR)\maindllh$(OBJEXT) \

# All VM Objects for building STATIC library
VM_LIB_OBJS = $(VM_COMMON_LIB_OBJS) $(VM_STATIC_LIB_OBJS)

# All VM Objects for building SHARED (DLL) library
VM_DLL_OBJS = $(VM_COMMON_LIB_OBJS) $(VM_SHARED_LIB_OBJS)

DISABLED_VM_OBJS = \
    $(OBJ_DIR)\maindllp$(OBJEXT) \
    $(OBJ_DIR)\maindll$(OBJEXT)  \

#**********************************************************

RTL_LIB_OBJS = \
    $(OBJ_DIR)\abs$(OBJEXT)      \
    $(OBJ_DIR)\accept$(OBJEXT)   \
    $(OBJ_DIR)\ampm$(OBJEXT)     \
    $(OBJ_DIR)\at$(OBJEXT)       \
    $(OBJ_DIR)\binnum$(OBJEXT)   \
    $(OBJ_DIR)\binnumx$(OBJEXT)  \
    $(OBJ_DIR)\box$(OBJEXT)      \
    $(OBJ_DIR)\cdpapi$(OBJEXT)   \
    $(OBJ_DIR)\chrasc$(OBJEXT)   \
    $(OBJ_DIR)\colorind$(OBJEXT) \
    $(OBJ_DIR)\console$(OBJEXT)  \
    $(OBJ_DIR)\copyfile$(OBJEXT) \
    $(OBJ_DIR)\datec$(OBJEXT)    \
    $(OBJ_DIR)\dates$(OBJEXT)    \
    $(OBJ_DIR)\dateshb$(OBJEXT)  \
    $(OBJ_DIR)\datesx$(OBJEXT)   \
    $(OBJ_DIR)\defpath$(OBJEXT)  \
    $(OBJ_DIR)\defpathu$(OBJEXT)  \
    $(OBJ_DIR)\descend$(OBJEXT)  \
    $(OBJ_DIR)\dirdrive$(OBJEXT) \
    $(OBJ_DIR)\direct$(OBJEXT)   \
    $(OBJ_DIR)\diskspac$(OBJEXT) \
    $(OBJ_DIR)\disksphb$(OBJEXT) \
    $(OBJ_DIR)\do$(OBJEXT)       \
    $(OBJ_DIR)\empty$(OBJEXT)    \
    $(OBJ_DIR)\errorapi$(OBJEXT) \
    $(OBJ_DIR)\errorapu$(OBJEXT) \
    $(OBJ_DIR)\errorint$(OBJEXT) \
    $(OBJ_DIR)\file$(OBJEXT)     \
    $(OBJ_DIR)\filebuf$(OBJEXT)  \
    $(OBJ_DIR)\filehb$(OBJEXT)   \
    $(OBJ_DIR)\filesys$(OBJEXT)  \
    $(OBJ_DIR)\fkmax$(OBJEXT)    \
    $(OBJ_DIR)\fnsplit$(OBJEXT)  \
    $(OBJ_DIR)\fserror$(OBJEXT)  \
    $(OBJ_DIR)\fssize$(OBJEXT)   \
    $(OBJ_DIR)\fstemp$(OBJEXT)   \
    $(OBJ_DIR)\gete$(OBJEXT)     \
    $(OBJ_DIR)\gt$(OBJEXT)       \
    $(OBJ_DIR)\gtapi$(OBJEXT)    \
    $(OBJ_DIR)\gtchrmap$(OBJEXT) \
    $(OBJ_DIR)\gtapiu$(OBJEXT)   \
    $(OBJ_DIR)\gtclip$(OBJEXT)   \
    $(OBJ_DIR)\gtfunc$(OBJEXT)   \
    $(OBJ_DIR)\gtkbstat$(OBJEXT) \
    $(OBJ_DIR)\gtkeycod$(OBJEXT) \
    $(OBJ_DIR)\gtsys$(OBJEXT)    \
    $(OBJ_DIR)\gttone$(OBJEXT)   \
    $(OBJ_DIR)\gx$(OBJEXT)       \
    $(OBJ_DIR)\hardcr$(OBJEXT)   \
    $(OBJ_DIR)\hbadler$(OBJEXT)  \
    $(OBJ_DIR)\hbbit$(OBJEXT)    \
    $(OBJ_DIR)\hbcrc$(OBJEXT)    \
    $(OBJ_DIR)\hbhex$(OBJEXT)    \
    $(OBJ_DIR)\hbmd5$(OBJEXT)    \
    $(OBJ_DIR)\hbffind$(OBJEXT)  \
    $(OBJ_DIR)\hbfile$(OBJEXT)   \
    $(OBJ_DIR)\hbgtcore$(OBJEXT) \
    $(OBJ_DIR)\hbinet$(OBJEXT)   \
    $(OBJ_DIR)\hbstrsh$(OBJEXT)  \
    $(OBJ_DIR)\hbrandom$(OBJEXT) \
    $(OBJ_DIR)\hbregex$(OBJEXT)  \
    $(OBJ_DIR)\hbregexc$(OBJEXT) \
    $(OBJ_DIR)\hbrunfun$(OBJEXT) \
    $(OBJ_DIR)\hbtoken$(OBJEXT)  \
    $(OBJ_DIR)\hbzlib$(OBJEXT)   \
    $(OBJ_DIR)\idle$(OBJEXT)     \
    $(OBJ_DIR)\inkey$(OBJEXT)    \
    $(OBJ_DIR)\inkeyapi$(OBJEXT) \
    $(OBJ_DIR)\is$(OBJEXT)       \
    $(OBJ_DIR)\isprint$(OBJEXT)  \
    $(OBJ_DIR)\itemseri$(OBJEXT) \
    $(OBJ_DIR)\langapi$(OBJEXT)  \
    $(OBJ_DIR)\left$(OBJEXT)     \
    $(OBJ_DIR)\len$(OBJEXT)      \
    $(OBJ_DIR)\lennum$(OBJEXT)   \
    $(OBJ_DIR)\math$(OBJEXT)     \
    $(OBJ_DIR)\maxrow$(OBJEXT)   \
    $(OBJ_DIR)\memofile$(OBJEXT) \
    $(OBJ_DIR)\minmax$(OBJEXT)   \
    $(OBJ_DIR)\mlcfunc$(OBJEXT)  \
    $(OBJ_DIR)\mod$(OBJEXT)      \
    $(OBJ_DIR)\mouse53$(OBJEXT)  \
    $(OBJ_DIR)\mouseapi$(OBJEXT) \
    $(OBJ_DIR)\mousex$(OBJEXT)   \
    $(OBJ_DIR)\mtran$(OBJEXT)    \
    $(OBJ_DIR)\natmsg$(OBJEXT)   \
    $(OBJ_DIR)\natmsgu$(OBJEXT)  \
    $(OBJ_DIR)\net$(OBJEXT)      \
    $(OBJ_DIR)\oemansi$(OBJEXT)  \
    $(OBJ_DIR)\oemansix$(OBJEXT) \
    $(OBJ_DIR)\oldbox$(OBJEXT)   \
    $(OBJ_DIR)\oldclear$(OBJEXT) \
    $(OBJ_DIR)\pad$(OBJEXT)      \
    $(OBJ_DIR)\padc$(OBJEXT)     \
    $(OBJ_DIR)\padl$(OBJEXT)     \
    $(OBJ_DIR)\padr$(OBJEXT)     \
    $(OBJ_DIR)\philes$(OBJEXT)   \
    $(OBJ_DIR)\philes53$(OBJEXT) \
    $(OBJ_DIR)\philesx$(OBJEXT)  \
    $(OBJ_DIR)\rat$(OBJEXT)      \
    $(OBJ_DIR)\replic$(OBJEXT)   \
    $(OBJ_DIR)\right$(OBJEXT)    \
    $(OBJ_DIR)\round$(OBJEXT)    \
    $(OBJ_DIR)\run$(OBJEXT)      \
    $(OBJ_DIR)\samples$(OBJEXT)  \
    $(OBJ_DIR)\saverest$(OBJEXT) \
    $(OBJ_DIR)\scroll$(OBJEXT)   \
    $(OBJ_DIR)\scrrow$(OBJEXT)   \
    $(OBJ_DIR)\secondfs$(OBJEXT) \
    $(OBJ_DIR)\seconds$(OBJEXT)  \
    $(OBJ_DIR)\setcolor$(OBJEXT) \
    $(OBJ_DIR)\setcurs$(OBJEXT)  \
    $(OBJ_DIR)\setkey$(OBJEXT)   \
    $(OBJ_DIR)\setpos$(OBJEXT)   \
    $(OBJ_DIR)\setposbs$(OBJEXT) \
    $(OBJ_DIR)\shadow$(OBJEXT)   \
    $(OBJ_DIR)\shadowu$(OBJEXT)   \
    $(OBJ_DIR)\soundex$(OBJEXT)  \
    $(OBJ_DIR)\space$(OBJEXT)    \
    $(OBJ_DIR)\spfiles$(OBJEXT)  \
    $(OBJ_DIR)\str$(OBJEXT)      \
    $(OBJ_DIR)\strpeek$(OBJEXT)  \
    $(OBJ_DIR)\strcase$(OBJEXT)  \
    $(OBJ_DIR)\strmatch$(OBJEXT) \
    $(OBJ_DIR)\strtran$(OBJEXT)  \
    $(OBJ_DIR)\strzero$(OBJEXT)  \
    $(OBJ_DIR)\stuff$(OBJEXT)    \
    $(OBJ_DIR)\substr$(OBJEXT)   \
    $(OBJ_DIR)\tone$(OBJEXT)     \
    $(OBJ_DIR)\trace$(OBJEXT)    \
    $(OBJ_DIR)\transfrm$(OBJEXT) \
    $(OBJ_DIR)\trim$(OBJEXT)     \
    $(OBJ_DIR)\tscalara$(OBJEXT) \
    $(OBJ_DIR)\tscalarb$(OBJEXT) \
    $(OBJ_DIR)\tscalarc$(OBJEXT) \
    $(OBJ_DIR)\tscalard$(OBJEXT) \
    $(OBJ_DIR)\tscalarh$(OBJEXT) \
    $(OBJ_DIR)\tscalarl$(OBJEXT) \
    $(OBJ_DIR)\tscalarn$(OBJEXT) \
    $(OBJ_DIR)\tscalarp$(OBJEXT) \
    $(OBJ_DIR)\tscalars$(OBJEXT) \
    $(OBJ_DIR)\tscalaru$(OBJEXT) \
    $(OBJ_DIR)\type$(OBJEXT)     \
    $(OBJ_DIR)\val$(OBJEXT)      \
    $(OBJ_DIR)\valtostr$(OBJEXT) \
    $(OBJ_DIR)\valtype$(OBJEXT)  \
    $(OBJ_DIR)\version$(OBJEXT)  \
    $(OBJ_DIR)\word$(OBJEXT)     \
    $(OBJ_DIR)\xhelp$(OBJEXT)    \
    $(OBJ_DIR)\xsavescr$(OBJEXT) \
    \
    $(OBJ_DIR)\achoice$(OBJEXT)  \
    $(OBJ_DIR)\adir$(OBJEXT)     \
    $(OBJ_DIR)\alert$(OBJEXT)    \
    $(OBJ_DIR)\altd$(OBJEXT)     \
    $(OBJ_DIR)\browdb$(OBJEXT)   \
    $(OBJ_DIR)\browdbx$(OBJEXT)  \
    $(OBJ_DIR)\browse$(OBJEXT)   \
    $(OBJ_DIR)\checkbox$(OBJEXT) \
    $(OBJ_DIR)\color53$(OBJEXT)  \
    $(OBJ_DIR)\dbedit$(OBJEXT)   \
    $(OBJ_DIR)\devoutp$(OBJEXT)  \
    $(OBJ_DIR)\dircmd$(OBJEXT)   \
    $(OBJ_DIR)\dirscan$(OBJEXT)  \
    $(OBJ_DIR)\einstv52$(OBJEXT) \
    $(OBJ_DIR)\einstvar$(OBJEXT) \
    $(OBJ_DIR)\einstvau$(OBJEXT) \
    $(OBJ_DIR)\errorsys$(OBJEXT) \
    $(OBJ_DIR)\fieldbl$(OBJEXT)  \
    $(OBJ_DIR)\getlist$(OBJEXT)  \
    $(OBJ_DIR)\getsys$(OBJEXT)   \
    $(OBJ_DIR)\getsys53$(OBJEXT) \
    $(OBJ_DIR)\gui$(OBJEXT)      \
    $(OBJ_DIR)\hbini$(OBJEXT)    \
    $(OBJ_DIR)\input$(OBJEXT)    \
    $(OBJ_DIR)\listbox$(OBJEXT)  \
    $(OBJ_DIR)\memoedit$(OBJEXT) \
    $(OBJ_DIR)\memvarbl$(OBJEXT) \
    $(OBJ_DIR)\menuto$(OBJEXT)   \
    $(OBJ_DIR)\menusys$(OBJEXT)  \
    $(OBJ_DIR)\objfunc$(OBJEXT)  \
    $(OBJ_DIR)\perfuncs$(OBJEXT) \
    $(OBJ_DIR)\persist$(OBJEXT)  \
    $(OBJ_DIR)\profiler$(OBJEXT) \
    $(OBJ_DIR)\pushbtn$(OBJEXT)  \
    $(OBJ_DIR)\radiobtn$(OBJEXT) \
    $(OBJ_DIR)\radiogrp$(OBJEXT) \
    $(OBJ_DIR)\readkey$(OBJEXT)  \
    $(OBJ_DIR)\readvar$(OBJEXT)  \
    $(OBJ_DIR)\scrollbr$(OBJEXT) \
    $(OBJ_DIR)\setfunc$(OBJEXT)  \
    $(OBJ_DIR)\setta$(OBJEXT)    \
    $(OBJ_DIR)\symbol$(OBJEXT)   \
    $(OBJ_DIR)\tbcolumn$(OBJEXT) \
    $(OBJ_DIR)\tbrowse$(OBJEXT)  \
    $(OBJ_DIR)\tbrowsys$(OBJEXT) \
    $(OBJ_DIR)\tclass$(OBJEXT)   \
    $(OBJ_DIR)\teditor$(OBJEXT)  \
    $(OBJ_DIR)\text$(OBJEXT)     \
    $(OBJ_DIR)\tget$(OBJEXT)     \
    $(OBJ_DIR)\tgetint$(OBJEXT)  \
    $(OBJ_DIR)\tgetlist$(OBJEXT) \
    $(OBJ_DIR)\tlabel$(OBJEXT)   \
    $(OBJ_DIR)\tmenuitm$(OBJEXT) \
    $(OBJ_DIR)\tmenusys$(OBJEXT) \
    $(OBJ_DIR)\tobject$(OBJEXT)  \
    $(OBJ_DIR)\tpopup$(OBJEXT)   \
    $(OBJ_DIR)\treport$(OBJEXT)  \
    $(OBJ_DIR)\tscalar$(OBJEXT)  \
    $(OBJ_DIR)\ttextlin$(OBJEXT) \
    $(OBJ_DIR)\tthreadx$(OBJEXT) \
    $(OBJ_DIR)\ttopbar$(OBJEXT)  \
    $(OBJ_DIR)\typefile$(OBJEXT) \
    $(OBJ_DIR)\typefilx$(OBJEXT) \
    $(OBJ_DIR)\valtoexp$(OBJEXT) \
    $(OBJ_DIR)\wait$(OBJEXT)     \

#**********************************************************

MACRO_LIB_OBJS = \
    $(OBJ_DIR)\macroy$(OBJEXT)   \
    $(OBJ_DIR)\macroa$(OBJEXT)   \
    $(OBJ_DIR)\macrob$(OBJEXT)   \
    $(OBJ_DIR)\macrolex$(OBJEXT) \

#**********************************************************

DEBUG_LIB_OBJS = \
    $(OBJ_DIR)\dbgentry$(OBJEXT) \
    $(OBJ_DIR)\dbgbrwsr$(OBJEXT) \
    $(OBJ_DIR)\dbghelp$(OBJEXT)  \
    $(OBJ_DIR)\dbgmenu$(OBJEXT)  \
    $(OBJ_DIR)\dbgtmenu$(OBJEXT) \
    $(OBJ_DIR)\dbgtmitm$(OBJEXT) \
    $(OBJ_DIR)\dbgtwin$(OBJEXT)  \
    $(OBJ_DIR)\debugger$(OBJEXT) \
    $(OBJ_DIR)\dbgtarr$(OBJEXT)  \
    $(OBJ_DIR)\dbgtobj$(OBJEXT)  \
    $(OBJ_DIR)\dbgthsh$(OBJEXT)  \
    $(OBJ_DIR)\tbrwtext$(OBJEXT) \
    $(OBJ_DIR)\dbgwa$(OBJEXT)    \

#**********************************************************

LANG_LIB_OBJS = \
    $(OBJ_DIR)\msgbe866$(OBJEXT) \
    $(OBJ_DIR)\msgbewin$(OBJEXT) \
    $(OBJ_DIR)\msgbg866$(OBJEXT) \
    $(OBJ_DIR)\msgbgiso$(OBJEXT) \
    $(OBJ_DIR)\msgbgmik$(OBJEXT) \
    $(OBJ_DIR)\msgbgwin$(OBJEXT) \
    $(OBJ_DIR)\msgca$(OBJEXT)    \
    $(OBJ_DIR)\msgcs852$(OBJEXT) \
    $(OBJ_DIR)\msgcsiso$(OBJEXT) \
    $(OBJ_DIR)\msgcskam$(OBJEXT) \
    $(OBJ_DIR)\msgcswin$(OBJEXT) \
    $(OBJ_DIR)\msgde$(OBJEXT)    \
    $(OBJ_DIR)\msgdewin$(OBJEXT) \
    $(OBJ_DIR)\msgel$(OBJEXT)    \
    $(OBJ_DIR)\msgelwin$(OBJEXT) \
    $(OBJ_DIR)\msgeo$(OBJEXT)    \
    $(OBJ_DIR)\msges$(OBJEXT)    \
    $(OBJ_DIR)\msgeswin$(OBJEXT) \
    $(OBJ_DIR)\msgeu$(OBJEXT)    \
    $(OBJ_DIR)\msgfr$(OBJEXT)    \
    $(OBJ_DIR)\msggl$(OBJEXT)    \
    $(OBJ_DIR)\msghe862$(OBJEXT) \
    $(OBJ_DIR)\msghewin$(OBJEXT) \
    $(OBJ_DIR)\msghr437$(OBJEXT) \
    $(OBJ_DIR)\msghr852$(OBJEXT) \
    $(OBJ_DIR)\msghriso$(OBJEXT) \
    $(OBJ_DIR)\msghrwin$(OBJEXT) \
    $(OBJ_DIR)\msghu852$(OBJEXT) \
    $(OBJ_DIR)\msghucwi$(OBJEXT) \
    $(OBJ_DIR)\msghuiso$(OBJEXT) \
    $(OBJ_DIR)\msghuwin$(OBJEXT) \
    $(OBJ_DIR)\msgid$(OBJEXT)    \
    $(OBJ_DIR)\msgis850$(OBJEXT) \
    $(OBJ_DIR)\msgit$(OBJEXT)    \
    $(OBJ_DIR)\msgko$(OBJEXT)    \
    $(OBJ_DIR)\msgltwin$(OBJEXT) \
    $(OBJ_DIR)\msgnl$(OBJEXT)    \
    $(OBJ_DIR)\msgpl852$(OBJEXT) \
    $(OBJ_DIR)\msgpliso$(OBJEXT) \
    $(OBJ_DIR)\msgplmaz$(OBJEXT) \
    $(OBJ_DIR)\msgplwin$(OBJEXT) \
    $(OBJ_DIR)\msgpt$(OBJEXT)    \
    $(OBJ_DIR)\msgro$(OBJEXT)    \
    $(OBJ_DIR)\msgru866$(OBJEXT) \
    $(OBJ_DIR)\msgrukoi$(OBJEXT) \
    $(OBJ_DIR)\msgruwin$(OBJEXT) \
    $(OBJ_DIR)\msgskiso$(OBJEXT) \
    $(OBJ_DIR)\msgskwin$(OBJEXT) \
    $(OBJ_DIR)\msgskkam$(OBJEXT) \
    $(OBJ_DIR)\msgsk852$(OBJEXT) \
    $(OBJ_DIR)\msgsl437$(OBJEXT) \
    $(OBJ_DIR)\msgsl852$(OBJEXT) \
    $(OBJ_DIR)\msgsliso$(OBJEXT) \
    $(OBJ_DIR)\msgslwin$(OBJEXT) \
    $(OBJ_DIR)\msgsr852$(OBJEXT) \
    $(OBJ_DIR)\msgsriso$(OBJEXT) \
    $(OBJ_DIR)\msgsrwin$(OBJEXT) \
    $(OBJ_DIR)\msgtr857$(OBJEXT) \
    $(OBJ_DIR)\msgtrwin$(OBJEXT) \
    $(OBJ_DIR)\msgua866$(OBJEXT) \
    $(OBJ_DIR)\msguakoi$(OBJEXT) \
    $(OBJ_DIR)\msguawin$(OBJEXT) \
    $(OBJ_DIR)\msgzhb5$(OBJEXT)  \
    $(OBJ_DIR)\msgzhgb$(OBJEXT)  \

#**********************************************************
PCRE_LIB_OBJS = \
    $(OBJ_DIR)\_hbpcreg$(OBJEXT) \
    $(OBJ_DIR)\chartabs$(OBJEXT) \
    $(OBJ_DIR)\pcrecomp$(OBJEXT) \
    $(OBJ_DIR)\pcreconf$(OBJEXT) \
    $(OBJ_DIR)\pcredfa$(OBJEXT)  \
    $(OBJ_DIR)\pcreexec$(OBJEXT) \
    $(OBJ_DIR)\pcrefinf$(OBJEXT) \
    $(OBJ_DIR)\pcreget$(OBJEXT)  \
    $(OBJ_DIR)\pcreinfo$(OBJEXT) \
    $(OBJ_DIR)\pcremktb$(OBJEXT) \
    $(OBJ_DIR)\pcrenewl$(OBJEXT) \
    $(OBJ_DIR)\pcreoutf$(OBJEXT) \
    $(OBJ_DIR)\pcrerefc$(OBJEXT) \
    $(OBJ_DIR)\pcrestud$(OBJEXT) \
    $(OBJ_DIR)\pcretabs$(OBJEXT) \
    $(OBJ_DIR)\pcretryf$(OBJEXT) \
    $(OBJ_DIR)\pcreucd$(OBJEXT)  \
    $(OBJ_DIR)\pcrever$(OBJEXT)  \
    $(OBJ_DIR)\pcrevutf$(OBJEXT) \
    $(OBJ_DIR)\pcrexcls$(OBJEXT) \

#**********************************************************
HBZLIB_LIB_OBJS = \
    $(OBJ_DIR)\adler32$(OBJEXT)  \
    $(OBJ_DIR)\compress$(OBJEXT) \
    $(OBJ_DIR)\crc32$(OBJEXT)    \
    $(OBJ_DIR)\deflate$(OBJEXT)  \
    $(OBJ_DIR)\gzio$(OBJEXT)     \
    $(OBJ_DIR)\infback$(OBJEXT)  \
    $(OBJ_DIR)\inffast$(OBJEXT)  \
    $(OBJ_DIR)\inflate$(OBJEXT)  \
    $(OBJ_DIR)\inftrees$(OBJEXT) \
    $(OBJ_DIR)\trees$(OBJEXT)    \
    $(OBJ_DIR)\uncompr$(OBJEXT)  \
    $(OBJ_DIR)\zutil$(OBJEXT)    \

#**********************************************************

HBEXTERN_LIB_OBJS = \
    $(OBJ_DIR)\hbextern$(OBJEXT)

#**********************************************************

CODEPAGE_LIB_OBJS = \
    $(OBJ_DIR)\cpbg866$(OBJEXT)  \
    $(OBJ_DIR)\cpbgiso$(OBJEXT)  \
    $(OBJ_DIR)\cpbgmik$(OBJEXT)  \
    $(OBJ_DIR)\cpbgwin$(OBJEXT)  \
    $(OBJ_DIR)\cpcs852$(OBJEXT)  \
    $(OBJ_DIR)\cpcsiso$(OBJEXT)  \
    $(OBJ_DIR)\cpcskam$(OBJEXT)  \
    $(OBJ_DIR)\cpcswin$(OBJEXT)  \
    $(OBJ_DIR)\cpde850$(OBJEXT)  \
    $(OBJ_DIR)\cpdeiso$(OBJEXT)  \
    $(OBJ_DIR)\cpdewin$(OBJEXT)  \
    $(OBJ_DIR)\cpel737$(OBJEXT)  \
    $(OBJ_DIR)\cpelwin$(OBJEXT)  \
    $(OBJ_DIR)\cpes850$(OBJEXT)  \
    $(OBJ_DIR)\cpesmwin$(OBJEXT) \
    $(OBJ_DIR)\cpeswin$(OBJEXT)  \
    $(OBJ_DIR)\cpfr850$(OBJEXT)  \
    $(OBJ_DIR)\cphr1250$(OBJEXT) \
    $(OBJ_DIR)\cphr437$(OBJEXT)  \
    $(OBJ_DIR)\cphr852$(OBJEXT)  \
    $(OBJ_DIR)\cphu852$(OBJEXT)  \
    $(OBJ_DIR)\cphu852s$(OBJEXT) \
    $(OBJ_DIR)\cphuiso$(OBJEXT)  \
    $(OBJ_DIR)\cphuisos$(OBJEXT) \
    $(OBJ_DIR)\cphuwin$(OBJEXT)  \
    $(OBJ_DIR)\cphuwins$(OBJEXT) \
    $(OBJ_DIR)\cpit437$(OBJEXT)  \
    $(OBJ_DIR)\cpit850$(OBJEXT)  \
    $(OBJ_DIR)\cpitisb$(OBJEXT)  \
    $(OBJ_DIR)\cpitiso$(OBJEXT)  \
    $(OBJ_DIR)\cpltwin$(OBJEXT)  \
    $(OBJ_DIR)\cppl852$(OBJEXT)  \
    $(OBJ_DIR)\cppliso$(OBJEXT)  \
    $(OBJ_DIR)\cpplmaz$(OBJEXT)  \
    $(OBJ_DIR)\cpplwin$(OBJEXT)  \
    $(OBJ_DIR)\cppt850$(OBJEXT)  \
    $(OBJ_DIR)\cpptiso$(OBJEXT)  \
    $(OBJ_DIR)\cpru866$(OBJEXT)  \
    $(OBJ_DIR)\cpruiso$(OBJEXT)  \
    $(OBJ_DIR)\cprukoi$(OBJEXT)  \
    $(OBJ_DIR)\cpruwin$(OBJEXT)  \
    $(OBJ_DIR)\cpsk852$(OBJEXT)  \
    $(OBJ_DIR)\cpskiso$(OBJEXT)  \
    $(OBJ_DIR)\cpskkam$(OBJEXT)  \
    $(OBJ_DIR)\cpskwin$(OBJEXT)  \
    $(OBJ_DIR)\cpsl437$(OBJEXT)  \
    $(OBJ_DIR)\cpsl852$(OBJEXT)  \
    $(OBJ_DIR)\cpsliso$(OBJEXT)  \
    $(OBJ_DIR)\cpslwin$(OBJEXT)  \
    $(OBJ_DIR)\cpsrwin$(OBJEXT)  \
    $(OBJ_DIR)\cpsv850$(OBJEXT)  \
    $(OBJ_DIR)\cpsvclip$(OBJEXT) \
    $(OBJ_DIR)\cpsvwin$(OBJEXT)  \
    $(OBJ_DIR)\cptr857$(OBJEXT)  \
    $(OBJ_DIR)\cptrwin$(OBJEXT)  \
    $(OBJ_DIR)\cpua866$(OBJEXT)  \
    $(OBJ_DIR)\cpuakoi$(OBJEXT)  \
    $(OBJ_DIR)\cpuawin$(OBJEXT)  \
    $(OBJ_DIR)\uc1250$(OBJEXT)   \
    $(OBJ_DIR)\uc1251$(OBJEXT)   \
    $(OBJ_DIR)\uc1252$(OBJEXT)   \
    $(OBJ_DIR)\uc1253$(OBJEXT)   \
    $(OBJ_DIR)\uc1254$(OBJEXT)   \
    $(OBJ_DIR)\uc1257$(OBJEXT)   \
    $(OBJ_DIR)\uc737$(OBJEXT)    \
    $(OBJ_DIR)\uc850$(OBJEXT)    \
    $(OBJ_DIR)\uc852$(OBJEXT)    \
    $(OBJ_DIR)\uc857$(OBJEXT)    \
    $(OBJ_DIR)\uc866$(OBJEXT)    \
    $(OBJ_DIR)\uc8859_1$(OBJEXT) \
    $(OBJ_DIR)\uc8859_2$(OBJEXT) \
    $(OBJ_DIR)\uc8859_5$(OBJEXT) \
    $(OBJ_DIR)\uc88591b$(OBJEXT) \
    $(OBJ_DIR)\uckoi8$(OBJEXT)   \
    $(OBJ_DIR)\uckoi8u$(OBJEXT)  \
    $(OBJ_DIR)\ucmaz$(OBJEXT)    \
    $(OBJ_DIR)\uckam$(OBJEXT)    \
    $(OBJ_DIR)\ucmik$(OBJEXT)    \

#**********************************************************

RDD_LIB_OBJS = \
    $(OBJ_DIR)\dbcmd$(OBJEXT)    \
    $(OBJ_DIR)\dbcmd53$(OBJEXT)  \
    $(OBJ_DIR)\dbcmdhb$(OBJEXT)  \
    $(OBJ_DIR)\dbcmdx$(OBJEXT)   \
    $(OBJ_DIR)\dbdetach$(OBJEXT) \
    $(OBJ_DIR)\dbdrop$(OBJEXT)   \
    $(OBJ_DIR)\dbexists$(OBJEXT) \
    $(OBJ_DIR)\fieldhb$(OBJEXT)  \
    $(OBJ_DIR)\hbdbsort$(OBJEXT) \
    $(OBJ_DIR)\workarea$(OBJEXT) \
    $(OBJ_DIR)\wacore$(OBJEXT)   \
    $(OBJ_DIR)\wafunc$(OBJEXT)   \
    $(OBJ_DIR)\dbf1$(OBJEXT)     \
    $(OBJ_DIR)\dbnubs$(OBJEXT)   \
    $(OBJ_DIR)\delim1$(OBJEXT)   \
    $(OBJ_DIR)\dbsql$(OBJEXT)    \
    $(OBJ_DIR)\sdf1$(OBJEXT)     \
    $(OBJ_DIR)\rddinfo$(OBJEXT)  \
    \
    $(OBJ_DIR)\dbdelim$(OBJEXT)  \
    $(OBJ_DIR)\dbsdf$(OBJEXT)    \
    $(OBJ_DIR)\dbjoin$(OBJEXT)   \
    $(OBJ_DIR)\dbjoinx$(OBJEXT)  \
    $(OBJ_DIR)\dbtotal$(OBJEXT)  \
    $(OBJ_DIR)\dbtotalx$(OBJEXT) \
    $(OBJ_DIR)\dbfuncs$(OBJEXT)  \
    $(OBJ_DIR)\dbfuncsx$(OBJEXT) \
    $(OBJ_DIR)\dblist$(OBJEXT)   \
    $(OBJ_DIR)\dblistx$(OBJEXT)  \
    $(OBJ_DIR)\dbsort$(OBJEXT)   \
    $(OBJ_DIR)\dbsortx$(OBJEXT)  \
    $(OBJ_DIR)\dbstrux$(OBJEXT)  \
    $(OBJ_DIR)\dbstruxu$(OBJEXT) \
    $(OBJ_DIR)\dbstruxx$(OBJEXT) \
    $(OBJ_DIR)\dbupdat$(OBJEXT)  \
    $(OBJ_DIR)\dbupdatx$(OBJEXT) \
    $(OBJ_DIR)\rddord$(OBJEXT)   \
    $(OBJ_DIR)\rddordu$(OBJEXT)  \
    $(OBJ_DIR)\rddsys$(OBJEXT)   \

#**********************************************************

NULSYS_LIB_OBJS = \
    $(OBJ_DIR)\nulsys$(OBJEXT)

#**********************************************************

DBFNTX_LIB_OBJS = \
    $(OBJ_DIR)\dbfntx1$(OBJEXT)  \
    $(OBJ_DIR)\dbfntx0$(OBJEXT)  \

#**********************************************************

DBFCDX_LIB_OBJS = \
    $(OBJ_DIR)\dbfcdx1$(OBJEXT)  \
    $(OBJ_DIR)\sixcdx1$(OBJEXT)  \

#**********************************************************

DBFFPT_LIB_OBJS = \
    $(OBJ_DIR)\dbffpt1$(OBJEXT)  \

#**********************************************************

HBSIX_LIB_OBJS = \
    $(OBJ_DIR)\sxcompr$(OBJEXT)  \
    $(OBJ_DIR)\sxcrypt$(OBJEXT)  \
    $(OBJ_DIR)\sxdate$(OBJEXT)   \
    $(OBJ_DIR)\sxsem$(OBJEXT)    \
    $(OBJ_DIR)\sxfname$(OBJEXT)  \
    $(OBJ_DIR)\sxtable$(OBJEXT)  \
    $(OBJ_DIR)\sxord$(OBJEXT)    \
    $(OBJ_DIR)\sxutil$(OBJEXT)   \
    $(OBJ_DIR)\sxredir$(OBJEXT)  \
    $(OBJ_DIR)\sxcompat$(OBJEXT) \
    $(OBJ_DIR)\sxini$(OBJEXT)    \
    $(OBJ_DIR)\sxtrig$(OBJEXT)   \

#**********************************************************

HSX_LIB_OBJS = \
    $(OBJ_DIR)\hsx$(OBJEXT)      \
    $(OBJ_DIR)\cftsfunc$(OBJEXT) \

#**********************************************************

USRRDD_LIB_OBJS = \
    $(OBJ_DIR)\usrrdd$(OBJEXT)   \

#**********************************************************

GTCGI_LIB_OBJS = \
    $(OBJ_DIR)\gtcgi$(OBJEXT)    \

#**********************************************************

GTSTD_LIB_OBJS = \
    $(OBJ_DIR)\gtstd$(OBJEXT)    \

#**********************************************************

GTDOS_LIB_OBJS = \
    $(OBJ_DIR)\gtdos$(OBJEXT)    \

#**********************************************************

GTPCA_LIB_OBJS = \
    $(OBJ_DIR)\gtpca$(OBJEXT)    \

#**********************************************************

GTWIN_LIB_OBJS = \
    $(OBJ_DIR)\gtwin$(OBJEXT)    \

#**********************************************************

GTWVT_LIB_OBJS = \
    $(OBJ_DIR)\gtwvt$(OBJEXT)    \

#**********************************************************

GTGUI_LIB_OBJS = \
    $(OBJ_DIR)\gtgui$(OBJEXT)    \

#**********************************************************

GTOS2_LIB_OBJS = \
    $(OBJ_DIR)\gtos2$(OBJEXT)    \

#**********************************************************

GTTRM_LIB_OBJS = \
    $(OBJ_DIR)\gttrm$(OBJEXT)    \

#**********************************************************

GTCRS_LIB_OBJS = \
    $(OBJ_DIR)\gtcrs$(OBJEXT)    \

#**********************************************************

GTSLN_LIB_OBJS = \
    $(OBJ_DIR)\gtsln$(OBJEXT)    \
    $(OBJ_DIR)\kbsln$(OBJEXT)    \
    $(OBJ_DIR)\mousesln$(OBJEXT) \

#**********************************************************

GTXWC_LIB_OBJS = \
    $(OBJ_DIR)\gtxwc$(OBJEXT)    \

#**********************************************************
#**********************************************************
#**********************************************************

HARBOUR_EXE_OBJS = \
    $(OBJ_DIR)\harbour$(OBJEXT)  \

#**********************************************************

HBPP_EXE_OBJS = \
    $(OBJ_DIR)\hbpp$(OBJEXT)  \

#**********************************************************

HBRUN_EXE_OBJS = \
    $(OBJ_DIR)\hbrun$(OBJEXT)    \

#**********************************************************

HBTEST_EXE_OBJS = \
    $(OBJ_DIR)\hbtest$(OBJEXT)   \
    $(OBJ_DIR)\rt_hvm$(OBJEXT)   \
    $(OBJ_DIR)\rt_hvma$(OBJEXT)  \
    $(OBJ_DIR)\rt_math$(OBJEXT)  \
    $(OBJ_DIR)\rt_date$(OBJEXT)  \
    $(OBJ_DIR)\rt_str$(OBJEXT)   \
    $(OBJ_DIR)\rt_stra$(OBJEXT)  \
    $(OBJ_DIR)\rt_trans$(OBJEXT) \
    $(OBJ_DIR)\rt_array$(OBJEXT) \
    $(OBJ_DIR)\rt_file$(OBJEXT)  \
    $(OBJ_DIR)\rt_misc$(OBJEXT)  \
    $(OBJ_DIR)\rt_miscc$(OBJEXT) \
    $(OBJ_DIR)\rt_mt$(OBJEXT)    \
    $(OBJ_DIR)\rt_class$(OBJEXT) \

#**********************************************************

HBDOC_EXE_OBJS = \
    $(OBJ_DIR)\hbdoc$(OBJEXT)    \
    $(OBJ_DIR)\genasc$(OBJEXT)   \
    $(OBJ_DIR)\genhpc$(OBJEXT)   \
    $(OBJ_DIR)\genhtm$(OBJEXT)   \
    $(OBJ_DIR)\genchm$(OBJEXT)   \
    $(OBJ_DIR)\genng$(OBJEXT)    \
    $(OBJ_DIR)\genos2$(OBJEXT)   \
    $(OBJ_DIR)\genrtf$(OBJEXT)   \
    $(OBJ_DIR)\gentrf$(OBJEXT)   \
    $(OBJ_DIR)\genpdf1$(OBJEXT)  \
    $(OBJ_DIR)\ft_funcs$(OBJEXT) \
    $(OBJ_DIR)\hbdfrdln$(OBJEXT) \

#**********************************************************

HBMAKE_EXE_OBJS = \
    $(OBJ_DIR)\hbmake$(OBJEXT)   \
    $(OBJ_DIR)\hbmgauge$(OBJEXT) \
    $(OBJ_DIR)\hbmfrdln$(OBJEXT) \
    $(OBJ_DIR)\hbmlang$(OBJEXT)  \

#**********************************************************
#**********************************************************
#**********************************************************

#
# HARBOUR_DLL objects
#

# Here we create a temporary DLL obj variable
# with all objects required for building DLL.
# They have wrong OBJ directory. We fix it
# in each respective makefile.

#-------------------------

!ifdef HB_GT_OBJS
DLL_GT_OBJS = $(HB_GT_OBJS)
!else
DLL_GT_OBJS = \
    $(GTWIN_LIB_OBJS)       \
    $(GTWVT_LIB_OBJS)       \
    $(GTGUI_LIB_OBJS)
!endif

#-------------------------

TMP_DLL_OBJS = \
    $(COMMON_LIB_OBJS)      \
    $(PP_LIB_OBJS)          \
    $(VM_DLL_OBJS)          \
    $(RTL_LIB_OBJS)         \
    $(MACRO_LIB_OBJS)       \
    $(LANG_LIB_OBJS)        \
    $(CODEPAGE_LIB_OBJS)    \
    $(PCRE_LIB_OBJS)        \
    $(HBZLIB_LIB_OBJS)      \
    $(HBEXTERN_LIB_OBJS)    \
    $(RDD_LIB_OBJS)         \
    $(DBFNTX_LIB_OBJS)      \
    $(DBFCDX_LIB_OBJS)      \
    $(DBFFPT_LIB_OBJS)      \
    $(HBSIX_LIB_OBJS)       \
    $(HSX_LIB_OBJS)         \
    $(USRRDD_LIB_OBJS)      \
    $(GTCGI_LIB_OBJS)       \
    $(GTPCA_LIB_OBJS)       \
    $(GTSTD_LIB_OBJS)       \
    $(DLL_GT_OBJS)          \

#-------------------------

DISABLED_SHARED_MODULES=    \
    $(DEBUG_LIB_OBJS)       \
    $(NULSYS_LIB_OBJS)      \
    $(GTDOS_LIB_OBJS)       \

#**********************************************************
#**********************************************************
#**********************************************************

#
# Our default Targets
#

HB_BUILD_TARGETS = \
    $(COMMON_LIB)           \
    $(HBPP_EXE)             \
    $(PP_LIB)               \
    \
    $(COMPILER_LIB)         \
    $(HARBOUR_EXE)          \
    \
    $(VM_LIB)               \
    $(RTL_LIB)              \
    $(MACRO_LIB)            \
    $(DEBUG_LIB)            \
    $(LANG_LIB)             \
    $(CODEPAGE_LIB)         \
    $(PCRE_LIB)             \
    $(HBZLIB_LIB)           \
    $(HBEXTERN_LIB)         \
    $(RDD_LIB)              \
    $(NULSYS_LIB)           \
    $(DBFNTX_LIB)           \
    $(DBFCDX_LIB)           \
    $(DBFFPT_LIB)           \
    $(HBSIX_LIB)            \
    $(HSX_LIB)              \
    $(USRRDD_LIB)           \
    $(HB_GT_LIBS)           \
    \
    $(HBRUN_EXE)            \
    $(HBTEST_EXE)           \
    $(HBDOC_EXE)            \
    $(HBMAKE_EXE)           \

# DLL Target is disabled by default
# It can be enabled by setting env
# variable HB_BUILD_DLL to yes

!if "$(HB_BUILD_DLL)" == "yes"
HB_BUILD_TARGETS = $(HB_BUILD_TARGETS) $(HARBOUR_DLL) $(HBTESTDLL_EXE)
!endif

#**********************************************************
# Allows to do cross-compiling if neccesary.
#**********************************************************

!ifndef HB
HB = $(HARBOUR_EXE)
!endif

# allows to do cross-compiling if neccesary.
!ifndef HBPP
HBPP = $(HBPP_EXE)
!endif

#**********************************************************
c:\harbour\make_b32.mak
#
# $Id: make_b32.mak 9521 2008-09-29 21:16:52Z vszakats $
#

#**********************************************************
# Makefile for Harbour Project for Borland C/C++ 5.x compilers
#**********************************************************

# ---------------------------------------------------------------
# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl)
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------

# ---------------------------------------------------------------
# If you need to set additional compiler/linker options use the
# environment variables below, but please DON'T MODIFY THIS FILE
# for this purpose.
# ---------------------------------------------------------------

#
# NOTE: You can use these envvars to configure the make process:
#       (note that these are all optional)
#
#       C_USR             - Extra C compiler options for libraries and for executables
#       CLIBFLAGSDLL      - Extra C compiler options for the shared libraries
#
#       L_USR             - Extra linker options for the static libraries
#       LDFLAGSDLL        - Extra linker options for the shared libraries
#
#       PRG_USR           - Extra Harbour compiler options
#       HARBOURFLAGSDLL   - Extra Harbour compiler options for shared libraries
#
#       HB_GT_LIB         - The default GT driver, choose between:
#                           gtwin (default), gtcgi, gtwvt, gtstd, gtpca
#       HB_BUILD_ST       - If set to yes builds harbour in SingleThread mode
#       HB_BUILD_DLL      - If set to yes enables building harbour VM+RTL
#                           dll in addition to normal static build
#       HB_BUILD_DEBUG    - If set to yes causes to compile with debug info
#       HB_BUILD_VERBOSE  - enables echoing commands being executed
#       HB_REBUILD_PARSER - If set to yes force preprocessing new rules by
#                           bison (you must use bison 2.3 or later)
#       HB_INSTALL_PREFIX - Path to installation directory into which
#                           Harbour will be installed when the command
#                           "make_bc.bat install" is lauched. Defaults
#                           to current directory
#       HB_BCCDLL_DYNRT   - If set to -tWR causes that harbour-bc.dll
#                           will use dynamic runtime library (recommended)

#**********************************************************

#.KEEP
.AUTODEPEND
.SUFFIXES:

#**********************************************************

HB_ARCHITECTURE = w32

#**********************************************************

# BORLAND has ST mode as default
!if "$(HB_BUILD_ST)" == ""
    HB_BUILD_ST = yes
!endif

#**********************************************************

CC     = bcc32.exe
LINKER = ilink32.exe
MKLIB  = tlib.exe

#**********************************************************

# Include Common Object list files
# shared between MSVC and Borland

!include common.mak

#**********************************************************

.SUFFIXES: $(EXEEXT) $(LIBEXT) $(OBJEXT) .prg .c .l .y

#**********************************************************

# Some definitions cannot be kept in common.mak
# due to serious limitations of Microsoft Nmake

DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))

VMMT_LIB_OBJS = $(VM_LIB_OBJS:$(OBJ_DIR)=$(MT_OBJ_DIR))

#**********************************************************
# C compiler, Harbour compiler and Linker flags.
#**********************************************************

# Main "Include" directory
INCLUDE_DIR = include

#**********************************************************

# C Compiler Flags
CFLAGS = -I$(INCLUDE_DIR) -I$(OBJ_DIR) $(C_USR)
CFLAGSMT = -tWM -DHB_MT_VM $(CFLAGSMT)

#-----------
!ifndef BCC_NOOPTIM
    CFLAGS = -O2 -OS -Ov -Oi -Oc $(CFLAGS)
!endif
#-----------
!if "$(HB_BUILD_DEBUG)" == "yes"
    CFLAGS = -y -v $(CFLAGS)
!endif
#-----------
!if "$(HB_BCCDLL_DYNRT)" == "-tWR"
    HB_BCCDLL_DYNRT=$(HB_BCCDLL_DYNRT)
    RTLIBSUFFIX = i
!endif
#-----------
!if "$(HB_BUILD_ST)" != "yes"
    CFLAGS = $(CFLAGS) $(CFLAGSMT)
!else
    HB_BUILD_TARGETS = $(HB_BUILD_TARGETS) $(VMMT_LIB)
!endif
#-----------
!if "$(HB_GT_LIB)" != ""
    CFLAGS = -DHB_GT_LIB=$(HB_GT_LIB:gt=) $(CFLAGS)
!endif
#-----------

#**********************************************************

CLIBFLAGS      = -c -q -d -w -w-sig- $(CFLAGS)
CLIBFLAGSxxx   = $(HB_BCCDLL_DYNRT) $(CLIBFLAGS: -tWM= )
CLIBFLAGSDLL   = -tWM $(CLIBFLAGSxxx) $(CLIBFLAGSDLL) -DHB_DYNLIB
CEXEFLAGSDLL   = -tWM $(CLIBFLAGSxxx) $(CEXEFLAGSDLL)

#**********************************************************

# Harbour Compiler Flags
HBFLAGSCMN     = -i$(INCLUDE_DIR) -q0 -w3 -es2 -km $(PRG_USR)
HARBOURFLAGS   = -n $(HBFLAGSCMN)
HARBOURFLAGSDLL= -n1 $(HBFLAGSCMN) $(HARBOURFLAGSDLL)

#**********************************************************

# Linker Flags
LDFLAGS        = -Gn -C -ap -Tpe -L$(LIB_DIR) -L$(BIN_DIR) $(L_USR)
LDFLAGSDLL     = -Gn -C -aa -Tpd -Gi -L$(LIB_DIR) $(LDFLAGSDLL)
!if "$(HB_BUILD_DEBUG)" == "yes"
    LDFLAGS = -v $(LDFLAGS)
    LDFLAGSDLL = -v $(LDFLAGSDLL)
!endif

#**********************************************************

!if "$(HB_BUILD_ST)" != "yes"
    STANDARD_STATIC_CLIBS = cw32mt$(RTLIBSUFFIX).lib
!endif

# This is needed, otherwise the libs may overflow
# when debug info is requested with -v -y
ARFLAGS = /P32 $(A_USR)

#**********************************************************
#**********************************************************
#**********************************************************

#**********************************************************
# COMPILE Rules
#**********************************************************

#**********************************************************
# General *.c --> *.obj COMPILE rule for STATIC Libraries
{$(ALL_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT):
    $(CC) $(CLIBFLAGS) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
{$(ALL_SRC_DIRS)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\  $**
    $(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)\$&.c
#**********************************************************

#**********************************************************
# General *.c --> *.obj COMPILE rule for STATIC MT Libraries
{$(ALL_SRC_DIRS)}.c{$(MT_OBJ_DIR)}$(OBJEXT):
    $(CC) $(CLIBFLAGS) $(CFLAGSMT) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for STATIC MT Libraries
{$(ALL_SRC_DIRS)}.prg{$(MT_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(MT_OBJ_DIR)\  $**
    $(CC) $(CLIBFLAGS) $(CFLAGSMT) -o$@ $(MT_OBJ_DIR)\$&.c
#**********************************************************

#**********************************************************
# General *.c --> *.obj COMPILE rule for SHARED Libraries
{$(ALL_LIB_SRC_DIRS)}.c{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(CC) $(CLIBFLAGSDLL) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for SHARED Libraries
{$(ALL_LIB_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\  $**
    $(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#**********************************************************

#**********************************************************
# General *.c --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
{$(ALL_EXE_SRC_DIRS)}.c{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(CC) $(CEXEFLAGSDLL) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
{$(ALL_EXE_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\  $**
    $(CC) $(CEXEFLAGSDLL) -o$@ $(DLL_OBJ_DIR)\$&.c
#**********************************************************

#**********************************************************
# General BUILD rules (not used !)
#**********************************************************

# General Library BUILD rule
#{$(OBJ_DIR)}.obj{$(LIB_DIR)}.lib:
#    IF EXIST "$@" $(DEL) "$@" > NUL
#    $(MKLIB) "$@" $(ARFLAGS) @&&!
#+$(**: = &^
#+)
#!

#**********************************************************
#**********************************************************
#**********************************************************

#**********************************************************
# TARGET dependencies
#**********************************************************

all : $(HB_DEST_DIRS) $(HB_BUILD_TARGETS)

#**********************************************************
# Helper targets
#**********************************************************

BasicLibs : $(COMMON_LIB) $(PP_LIB) $(COMPILER_LIB)
BasicExes : $(HARBOUR_EXE)
StdLibs   : $(STANDARD_STATIC_HBLIBS)

#**********************************************************

$(HB_DEST_DIRS) $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL):
    !if not exist $@\nul mkdir $@

#**********************************************************
# LIBRARY Targets BUILD rules
#**********************************************************
$(COMMON_LIB)   : $(COMMON_LIB_OBJS)
    IF EXIST "$(COMMON_LIB)" $(DEL) "$(COMMON_LIB)" > NUL
    $(MKLIB) "$(COMMON_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(PP_LIB)       : $(PP_LIB_OBJS)
    IF EXIST "$(PP_LIB)" $(DEL) "$(PP_LIB)" > NUL
    $(MKLIB) "$(PP_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(COMPILER_LIB) : $(COMPILER_LIB_OBJS)
    IF EXIST "$(COMPILER_LIB)" $(DEL) "$(COMPILER_LIB)" > NUL
    $(MKLIB) "$(COMPILER_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(VM_LIB)       :: BasicExes
$(VM_LIB)       :: $(VM_LIB_OBJS)
    IF EXIST "$(VM_LIB)" $(DEL) "$(VM_LIB)" > NUL
    $(MKLIB) "$(VM_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(VMMT_LIB)     :: BasicExes
$(VMMT_LIB)     :: $(VMMT_LIB_OBJS)
    IF EXIST "$(VMMT_LIB)" $(DEL) "$(VMMT_LIB)" > NUL
    $(MKLIB) "$(VMMT_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(RTL_LIB)      :: BasicExes
$(RTL_LIB)      :: $(RTL_LIB_OBJS)
    IF EXIST "$(RTL_LIB)" $(DEL) "$(RTL_LIB)" > NUL
    $(MKLIB) "$(RTL_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(MACRO_LIB)    : $(MACRO_LIB_OBJS)
    IF EXIST "$(MACRO_LIB)" $(DEL) "$(MACRO_LIB)" > NUL
    $(MKLIB) "$(MACRO_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DEBUG_LIB)    :: BasicExes
$(DEBUG_LIB)    :: $(DEBUG_LIB_OBJS)
    IF EXIST "$(DEBUG_LIB)" $(DEL) "$(DEBUG_LIB)" > NUL
    $(MKLIB) "$(DEBUG_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(LANG_LIB)     : $(LANG_LIB_OBJS)
    IF EXIST "$(LANG_LIB)" $(DEL) "$(LANG_LIB)" > NUL
    $(MKLIB) "$(LANG_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(CODEPAGE_LIB) : $(CODEPAGE_LIB_OBJS)
    IF EXIST "$(CODEPAGE_LIB)" $(DEL) "$(CODEPAGE_LIB)" > NUL
    $(MKLIB) "$(CODEPAGE_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(PCRE_LIB)     : $(PCRE_LIB_OBJS)
    IF EXIST "$(PCRE_LIB)" $(DEL) "$(PCRE_LIB)" > NUL
    $(MKLIB) "$(PCRE_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HBZLIB_LIB)   : $(HBZLIB_LIB_OBJS)
    IF EXIST "$(HBZLIB_LIB)" $(DEL) "$(HBZLIB_LIB)" > NUL
    $(MKLIB) "$(HBZLIB_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HBEXTERN_LIB) : $(HBEXTERN_LIB_OBJS)
    IF EXIST "$(HBEXTERN_LIB)" $(DEL) "$(HBEXTERN_LIB)" > NUL
    $(MKLIB) "$(HBEXTERN_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(RDD_LIB)      :: BasicExes
$(RDD_LIB)      :: $(RDD_LIB_OBJS)
    IF EXIST "$(RDD_LIB)" $(DEL) "$(RDD_LIB)" > NUL
    $(MKLIB) "$(RDD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(NULSYS_LIB)   : $(NULSYS_LIB_OBJS)
    IF EXIST "$(NULSYS_LIB)" $(DEL) "$(NULSYS_LIB)" > NUL
    $(MKLIB) "$(NULSYS_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFNTX_LIB)   :: BasicExes
$(DBFNTX_LIB)   :: $(DBFNTX_LIB_OBJS)
    IF EXIST "$(DBFNTX_LIB)" $(DEL) "$(DBFNTX_LIB)" > NUL
    $(MKLIB) "$(DBFNTX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFCDX_LIB)   : $(DBFCDX_LIB_OBJS)
    IF EXIST "$(DBFCDX_LIB)" $(DEL) "$(DBFCDX_LIB)" > NUL
    $(MKLIB) "$(DBFCDX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(DBFFPT_LIB)   : $(DBFFPT_LIB_OBJS)
    IF EXIST "$(DBFFPT_LIB)" $(DEL) "$(DBFFPT_LIB)" > NUL
    $(MKLIB) "$(DBFFPT_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HBSIX_LIB)    : $(HBSIX_LIB_OBJS)
    IF EXIST "$(HBSIX_LIB)" $(DEL) "$(HBSIX_LIB)" > NUL
    $(MKLIB) "$(HBSIX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(HSX_LIB)      : $(HSX_LIB_OBJS)
    IF EXIST "$(HSX_LIB)" $(DEL) "$(HSX_LIB)" > NUL
    $(MKLIB) "$(HSX_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(USRRDD_LIB)   : $(USRRDD_LIB_OBJS)
    IF EXIST "$(USRRDD_LIB)" $(DEL) "$(USRRDD_LIB)" > NUL
    $(MKLIB) "$(USRRDD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTCGI_LIB)    : $(GTCGI_LIB_OBJS)
    IF EXIST "$(GTCGI_LIB)" $(DEL) "$(GTCGI_LIB)" > NUL
    $(MKLIB) "$(GTCGI_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTDOS_LIB)    : $(GTDOS_LIB_OBJS)
    IF EXIST "$(GTDOS_LIB)" $(DEL) "$(GTDOS_LIB)" > NUL
    $(MKLIB) "$(GTDOS_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTPCA_LIB)    : $(GTPCA_LIB_OBJS)
    IF EXIST "$(GTPCA_LIB)" $(DEL) "$(GTPCA_LIB)" > NUL
    $(MKLIB) "$(GTPCA_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTSTD_LIB)    : $(GTSTD_LIB_OBJS)
    IF EXIST "$(GTSTD_LIB)" $(DEL) "$(GTSTD_LIB)" > NUL
    $(MKLIB) "$(GTSTD_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTWIN_LIB)    : $(GTWIN_LIB_OBJS)
    IF EXIST "$(GTWIN_LIB)" $(DEL) "$(GTWIN_LIB)" > NUL
    $(MKLIB) "$(GTWIN_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTWVT_LIB)    : $(GTWVT_LIB_OBJS)
    IF EXIST "$(GTWVT_LIB)" $(DEL) "$(GTWVT_LIB)" > NUL
    $(MKLIB) "$(GTWVT_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************
$(GTGUI_LIB)    : $(GTGUI_LIB_OBJS)
    IF EXIST "$(GTGUI_LIB)" $(DEL) "$(GTGUI_LIB)" > NUL
    $(MKLIB) "$(GTGUI_LIB)" $(ARFLAGS) @&&!
+$(**: = &^
+)
!
#**********************************************************

#**********************************************************
# EXECUTABLE Targets
#**********************************************************

#**********************************************************
# HARBOUR build rule
#**********************************************************
$(HARBOUR_EXE) :: BasicLibs
$(HARBOUR_EXE) :: $(HARBOUR_EXE_OBJS)
    IF EXIST "$(HARBOUR_EXE)" $(DEL) "$(HARBOUR_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HARBOUR_EXE)
$(**: = ^
)
$(COMPILER_LIB)
$(COMMON_LIB)
$(PP_LIB)
!
#**********************************************************
# HBPP build rule
#**********************************************************
$(HBPP_EXE) :: $(COMMON_LIB)
$(HBPP_EXE) :: $(HBPP_EXE_OBJS)
    IF EXIST "$(HBPP_EXE)" $(DEL) "$(HBPP_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HBPP_EXE)
$(**: = ^
)
$(COMMON_LIB)
!
#**********************************************************
# HBRUN build rule
#**********************************************************
$(HBRUN_EXE)  :: BasicLibs BasicExes StdLibs
$(HBRUN_EXE)  :: $(HBRUN_EXE_OBJS)
    IF EXIST "$(HBRUN_EXE)" $(DEL) "$(HBRUN_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HBRUN_EXE)
$(**: = ^
)
$(STANDARD_STATIC_CLIBS)
$(STANDARD_STATIC_HBLIBS)
!
#**********************************************************
# HBTEST build rule
#**********************************************************
$(HBTEST_EXE) :: BasicLibs BasicExes StdLibs
$(HBTEST_EXE) :: $(HBTEST_EXE_OBJS)
    IF EXIST "$(HBTEST_EXE)" $(DEL) "$(HBTEST_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HBTEST_EXE)
$(**: = ^
)
$(STANDARD_STATIC_CLIBS)
$(STANDARD_STATIC_HBLIBS)
!
#**********************************************************
# HBDOC build rule
#**********************************************************
$(HBDOC_EXE)  :: BasicLibs BasicExes StdLibs
$(HBDOC_EXE)  :: $(HBDOC_EXE_OBJS)
    IF EXIST "$(HBDOC_EXE)" $(DEL) "$(HBDOC_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HBDOC_EXE)
$(**: = ^
)
$(STANDARD_STATIC_CLIBS)
$(MINIMAL_STATIC_HBLIBS) $(HBDOC_LIBS)
!
#**********************************************************
# HBMAKE build rule
#**********************************************************
$(HBMAKE_EXE) :: BasicLibs BasicExes StdLibs
$(HBMAKE_EXE) :: $(HBMAKE_EXE_OBJS)
    IF EXIST "$(HBMAKE_EXE)" $(DEL) "$(HBMAKE_EXE)" > NUL
    $(CC) @&&!
$(CFLAGS)
-e$(HBMAKE_EXE)
$(**: = ^
)
$(STANDARD_STATIC_CLIBS)
$(MINIMAL_STATIC_HBLIBS)
!
#**********************************************************

#**********************************************************
# DLL Targets
#**********************************************************
$(HARBOUR_DLL) :: BasicLibs BasicExes
$(HARBOUR_DLL) :: $(DLL_OBJS)
    $(LINKER) $(LDFLAGSDLL) @&&!
c0d32.obj $**, $@,, cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: BasicLibs BasicExes
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)\mainstd$(OBJEXT) $(HBTEST_EXE_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
    $(LINKER) $(LDFLAGS) @&&!
c0x32.obj $**, $@,,$(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT)) cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#----------------------------------------------------------
$(DLL_OBJ_DIR)\mainstd$(OBJEXT) : $(VM_DIR)\mainstd.c
    $(CC) $(CEXEFLAGSDLL) -o$@ $**
#**********************************************************

#**********************************************************
# EXTRA Object's DEPENDENCIES
#**********************************************************

#**********************************************************

# Generated by an intermediate utility hbpp.exe
# built at the initial phase of build process
$(OBJ_DIR)\pptable.obj     : $(OBJ_DIR)\pptable.c
$(DLL_OBJ_DIR)\pptable.obj : $(DLL_OBJ_DIR)\pptable.c

$(OBJ_DIR)\pptable.c     : $(INCLUDE_DIR)\hbstdgen.ch $(INCLUDE_DIR)\std.ch ChangeLog $(PP_DIR)\ppcore.c $(PP_DIR)\hbpp.c
    IF EXIST "$(OBJ_DIR)\pptable.c" $(DEL) "$(OBJ_DIR)\pptable.c" > nul
    $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch -o$(OBJ_DIR)/pptable.c -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

$(DLL_OBJ_DIR)\pptable.c : $(INCLUDE_DIR)\hbstdgen.ch $(INCLUDE_DIR)\std.ch ChangeLog $(PP_DIR)\ppcore.c $(PP_DIR)\hbpp.c
    IF EXIST "$(DLL_OBJ_DIR)\pptable.c" $(DEL) "$(DLL_OBJ_DIR)\pptable.c" > nul
    $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch -o$(DLL_OBJ_DIR)/pptable.c -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

#**********************************************************

!if "$(HB_REBUILD_PARSER)" == "yes"

$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
    bison --no-line -d $** -o$@

$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
    bison --no-line -d $** -o$@

$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
    bison --no-line -d $** -o$@

$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
    bison --no-line -d $** -o$@

!else

$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

!endif

$(OBJ_DIR)\harboury.obj : $(OBJ_DIR)\harboury.c
$(OBJ_DIR)\macroy.obj   : $(OBJ_DIR)\macroy.c

$(DLL_OBJ_DIR)\harboury.obj : $(DLL_OBJ_DIR)\harboury.c
$(DLL_OBJ_DIR)\macroy.obj   : $(DLL_OBJ_DIR)\macroy.c

#**********************************************************
#**********************************************************
#**********************************************************

#**********************************************************
# CLEAN rules
#**********************************************************

clean: doClean
Clean: doClean
CLEAN: doClean

doClean:
    -if exist $(BIN_DIR)\*.exe          $(DEL) $(BIN_DIR)\*.exe          > nul
    -if exist $(BIN_DIR)\*.tds          $(DEL) $(BIN_DIR)\*.tds          > nul
    -if exist $(BIN_DIR)\*.tr?          $(DEL) $(BIN_DIR)\*.tr?          > nul
    -if exist $(BIN_DIR)\*.map          $(DEL) $(BIN_DIR)\*.map          > nul
    -if exist $(BIN_DIR)\*.dll          $(DEL) $(BIN_DIR)\*.dll          > nul
    -if exist $(BIN_DIR)\*.lib          $(DEL) $(BIN_DIR)\*.lib          > nul
    -if exist $(LIB_DIR)\*.lib          $(DEL) $(LIB_DIR)\*.lib          > nul
    -if exist $(LIB_DIR)\*.bak          $(DEL) $(LIB_DIR)\*.bak          > nul
    -if exist $(OBJ_DIR)\*.obj          $(DEL) $(OBJ_DIR)\*.obj          > nul
    -if exist $(OBJ_DIR)\*.c            $(DEL) $(OBJ_DIR)\*.c            > nul
    -if exist $(OBJ_DIR)\*.h            $(DEL) $(OBJ_DIR)\*.h            > nul
    -if exist $(MT_OBJ_DIR)\*.obj       $(DEL) $(MT_OBJ_DIR)\*.obj       > nul
    -if exist $(MT_OBJ_DIR)\*.c         $(DEL) $(MT_OBJ_DIR)\*.c         > nul
    -if exist $(MT_OBJ_DIR)\*.h         $(DEL) $(MT_OBJ_DIR)\*.h         > nul
    -if exist $(DLL_OBJ_DIR)\*.obj      $(DEL) $(DLL_OBJ_DIR)\*.obj      > nul
    -if exist $(DLL_OBJ_DIR)\*.c        $(DEL) $(DLL_OBJ_DIR)\*.c        > nul
    -if exist $(DLL_OBJ_DIR)\*.h        $(DEL) $(DLL_OBJ_DIR)\*.h        > nul
    -if exist $(INCLUDE_DIR)\hbverbld.h $(DEL) $(INCLUDE_DIR)\hbverbld.h > nul
    -if exist inst_$(HB_CC_NAME).log    $(DEL) inst_$(HB_CC_NAME).log    > nul
    -if exist bin\*.exe                 $(DEL) bin\*.exe                 > nul
    -if exist bin\*.dll                 $(DEL) bin\*.dll                 > nul
    -if exist lib\*.lib                 $(DEL) lib\*.lib                 > nul

#**********************************************************
# INSTALL rules
#**********************************************************

install : doInstall
Install : doInstall
INSTALL : doInstall

doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL)
    -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe   copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) >  inst_$(HB_CC_NAME).log
    -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll   copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib   copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib   copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
!if "$(HB_INSTALL_PREFIX)" != "."
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.ch  $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.h   $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
!endif

#**********************************************************
c:\harbour\make_gcc.mak
#
# $Id: make_gcc.mak 9513 2008-09-29 08:15:22Z vszakats $
#

#**********************************************************
# Makefile for Harbour Project for GNU gcc compiler
#**********************************************************

# ---------------------------------------------------------------
# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl)
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------

# ---------------------------------------------------------------
# If you need to set additional compiler/linker options use the
# environment variables below, but please DON'T MODIFY THIS FILE
# for this purpose.
# ---------------------------------------------------------------

#
# NOTE: You can use these envvars to configure the make process:
#       (note that these are all optional)
#
#       C_USR             - Extra C compiler options for libraries and for executables
#       CLIBFLAGSDLL      - Extra C compiler options for the shared libraries
#
#       L_USR             - Extra linker options for the static libraries
#       LDFLAGSDLL        - Extra linker options for the shared libraries
#
#       PRG_USR           - Extra Harbour compiler options
#       HARBOURFLAGSDLL   - Extra Harbour compiler options for shared libraries
#
#       HB_GT_LIB         - The default GT driver, choose between:
#                           gttrm (default), gtcgi, gtpca, gtcrs, gtsln, gtxwc
#       HB_GPM_MOUSE      - If set to yes enables using GPM mouse driver on console
#       HB_WITHOUT_GTSLN  - If set to yes causes to not build gtsln
#                           (if you don't have slang installed)
#
#       HB_COMMERCE       - If set to yes disables pure GNU modules (slang,GPM,...)
#       HB_BUILD_ST       - If set to yes builds harbour in SingleThread mode
#       HB_BUILD_DLL      - If set to yes enables building harbour VM+RTL
#                           dll in addition to normal static build (currently not working)
#       HB_BUILD_DEBUG    - If set to yes causes to compile with debug info
#       HB_BUILD_VERBOSE  - enables echoing commands being executed
#       HB_REBUILD_PARSER - If set to yes force preprocessing new rules by
#                           bison (you must use bison 2.3 or later)
#
#       HB_INSTALL_PREFIX - Path to installation directory into which
#                           Harbour will be installed when the command
#                           "make_gcc.bat install" is lauched. Defaults
#                           to current directory

# ---------------------------------------------------------------

.SUFFIXES:

# GCC has ST mode as default
ifeq ($(HB_BUILD_ST),)
    HB_BUILD_ST=yes
endif


#**********************************************************

ifndef ECHO
ECHO = echo
endif
ifndef DEL
DEL = rm -f
endif
ifndef COPY
COPY = cp
endif

ifndef LIBPREF
LIBPREF=lib
endif

#**********************************************************

# CC and LD are set in make_gcc.sh

#ifeq ($(CC),)
#CC = gcc
#endif
#ifeq ($(LD),)
#LD = gcc
#endif
ifeq ($(MKLIB),)
MKLIB = ar
endif

#**********************************************************

# These defs have to be defined
# *before* common.cf is included

OBJEXT=.o
EXEEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 dos os2),.exe)
DLLEXT=$(if $(findstring $(HB_ARCHITECTURE),w32 dos os2),.dll,.so)
LIBEXT=.a
LIBPREF=lib

#**********************************************************

# Include Common Object list files shared
# between Msvc, Borland and Gcc compilers

include common.cf

#**********************************************************

# Hack for WINDOWS systems. We're removing mainstd file
# from VM lib and we're putting it into a new library
# libmainstd.a to allow building either CONSOLE or GUI
# programs, depending on which library we're linking
# against. If we're linking against libmainstd we're
# building CONSOLE programs. Otherwise we're building
# GUI programs without console. Please note IT IS A
# DIRTY HACK and any better solution is HIGHLY WELCOME
ifneq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
MAIN_LIB      = $(LIB_DIR)/$(LIBPREF)hbmainstd$(LIBEXT)
MAIN_LIB_OBJS = $(OBJ_DIR)/mainstd$(OBJEXT)

VM_STATIC_LIB_OBJS     := $(VM_STATIC_LIB_OBJS:$(OBJ_DIR)/mainstd$(OBJEXT)=)
STANDARD_STATIC_HBLIBS := $(STANDARD_STATIC_HBLIBS) $(MAIN_LIB)
HB_BUILD_TARGETS       := $(MAIN_LIB) $(HB_BUILD_TARGETS)
endif

#**********************************************************

#.SUFFIXES: $(EXEEXT) $(LIBEXT) $(OBJEXT) .prg .c .l .y

#**********************************************************

# Default sources directory search paths
VPATH := $(ALL_SRC_DIRS) $(LIB_DIR) $(BIN_DIR) $(OBJ_DIR) $(MT_OBJ_DIR) $(DLL_OBJ_DIR)

#**********************************************************

# Some definitions cannot be kept in common.mak
# due to serious limitations of Microsoft Nmake

VMMT_LIB_OBJS = $(subst $(OBJ_DIR),$(MT_OBJ_DIR),$(VM_LIB_OBJS))

# Do not perform an extra compilation phase for shared libraries
# if gcc -fPIC compilation flag is already passed to a makefile
ifeq ($(findstring -fPIC,$(C_USR)),-fPIC)
DLL_OBJS := $(TMP_DLL_OBJS)
else
DLL_OBJS := $(patsubst $(OBJ_DIR)%,$(DLL_OBJ_DIR)%,$(TMP_DLL_OBJS))
endif

# DLLs on Windows require IMPORT lib
# and an additional compiler phase
ifneq ($(findstring $(HB_ARCHITECTURE),w32),)
HB_DLL_IMPLIB := $(HARBOUR_DLL:$(DLLEXT)=$(LIBEXT))
HB_IMPLIB_PART := -Wl,--out-implib,$(HB_DLL_IMPLIB)
endif

#**********************************************************
# C compiler flags
#**********************************************************

# Main "include" directory
INCLUDE_DIR    := include

CFLAGS         := -W -Wall -I$(INCLUDE_DIR) $(C_USR) -I$(OBJ_DIR)
CFLAGSMT       := -DHB_MT_VM $(CFLAGSMT)
#-----------
ifndef GCC_NOOPTIM
CFLAGS         := -O3 $(CFLAGS)
endif
#-----------
ifeq ($(HB_BUILD_DEBUG),yes)
CFLAGS         := -g $(CFLAGS)
endif
#-----------
ifneq ($(HB_GT_LIB),)
CFLAGS         += -DHB_GT_LIB=$(HB_GT_LIB:gt%=%)
endif
#-----------
CLIBFLAGS      := -c $(CFLAGS)
CLIBFLAGSDLL   := -DHB_DYNLIB $(CLIBFLAGS) $(CLIBFLAGSDLL)
CEXEFLAGSDLL   :=  $(CFLAGS) $(CEXEFLAGSDLL)

ifeq ($(findstring $(HB_ARCHITECTURE),dos),)
ifneq ($(HB_BUILD_ST),yes)
    CLIBFLAGS += $(CFLAGSMT)
    CLIBFLAGSDLL += $(CFLAGSMT)
else
    HB_BUILD_TARGETS += $(VMMT_LIB)
endif
endif

# Under architectures other than "DOS based" add -fPIC
# to gcc compiler flags for compiling shared libraries
ifeq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
ifeq ($(findstring -fPIC,$(CLIBFLAGSDLL)),)
CLIBFLAGSDLL   := -fPIC $(CLIBFLAGSDLL)
endif
endif

#**********************************************************
# Harbour Compiler Flags
#**********************************************************

HBFLAGSCMN     := -i$(INCLUDE_DIR) -q0 -w3 -es2 -km $(PRG_USR)
HARBOURFLAGS   := -n $(HBFLAGSCMN)
HARBOURFLAGSDLL:= -n1 -l $(HBFLAGSCMN) $(HARBOURFLAGSDLL)

#**********************************************************
# Linker Flags
#**********************************************************

# OS/2 hacks for missing gcc features
ifneq ($(HB_ARCHITECTURE),os2)
__GROUP_LIBS_BEG__=-Wl,--start-group
__GROUP_LIBS_END__=-Wl,--end-group
endif

LDFLAGS := $(L_USR) $(__GROUP_LIBS_BEG__) $(STANDARD_STATIC_HBLIBS)

# HB_GPM_MOUSE: use gpm mouse driver
ifeq ($(HB_GPM_MOUSE),yes)
LDFLAGS += -lgpm
CFLAGS  += -DHAVE_GPM_H
endif

# PCRE Regex library
ifneq ($(findstring -DHB_PCRE_REGEX, $(CFLAGS)),)
LDFLAGS += -lpcre
endif

# ZLIB library
ifneq ($(findstring -DHB_EXT_ZLIB, $(CFLAGS)),)
LDFLAGS += -lz
endif

LDFLAGS += $(__GROUP_LIBS_END__) $(HB_OS_LIBS)

ifeq ($(HB_ARCHITECTURE),os2)
LDFLAGS += $(STANDARD_STATIC_HBLIBS) $(HB_OS_LIBS)
#LDFLAGS += $(RTL_LIB) $(VM_LIB)
endif

LDFLAGSDLL := -shared $(L_USR) -L$(LIB_DIR) $(LDFLAGSDLL)

#**********************************************************
# Library manager Flags
#**********************************************************

ARFLAGS = rc $(A_USR)

#**********************************************************
# COMPILE Rules
#**********************************************************
# General *.prg --> *.o COMPILE rule for STATIC Libraries
$(OBJ_DIR)/%$(OBJEXT) : %.prg
	$(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)/ $<
	$(CC) $(CLIBFLAGS) -o$@ $(OBJ_DIR)/$( *.o COMPILE rule for STATIC MT Libraries
$(MT_OBJ_DIR)/%$(OBJEXT) : %.prg
	$(HB) $(HARBOURFLAGS) -o$(MT_OBJ_DIR)/ $<
	$(CC) $(CLIBFLAGS) $(CFLAGSMT) -o$@ $(MT_OBJ_DIR)/$( *.o COMPILE rule for STATIC Libraries
$(OBJ_DIR)/%$(OBJEXT) : %.c
	$(CC) $(CLIBFLAGS) -o$@ $<
#----------------------------------------------------------
# General *.c --> *.o COMPILE rule for STATIC MT Libraries
$(MT_OBJ_DIR)/%$(OBJEXT) : %.c
	$(CC) $(CLIBFLAGS) $(CFLAGSMT) -o$@ $<
#*******************************************************
# General *.prg --> *.o COMPILE rule for SHARED Libraries
$(DLL_OBJ_DIR)/%$(OBJEXT) : %.prg
	$(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)/ $<
	$(CC) $(CLIBFLAGSDLL) -o$@ $(DLL_OBJ_DIR)/$( *.o COMPILE rule for SHARED Libraries
$(DLL_OBJ_DIR)/%$(OBJEXT) : %.c
	$(CC) $(CLIBFLAGSDLL) -o$@ $<
#**********************************************************
# General *.o -> *.a LIBRARY CREATION rule
#$(LIB_DIR)/%$(LIBEXT) : %$(OBJEXT)
#	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************


#**********************************************************
# TARGET dependencies
#**********************************************************
all : $(HB_DEST_DIRS) $(HB_BUILD_TARGETS)
#**********************************************************


#**********************************************************
# Helper targets
#**********************************************************
BasicLibs : $(COMMON_LIB) $(HBPP_EXE) $(PP_LIB) $(COMPILER_LIB)
BasicExes : BasicLibs $(HB)
StdLibs   : BasicExes $(STANDARD_STATIC_HBLIBS)
MinLibs   : $(MINIMAL_STATIC_HBLIBS)
#**********************************************************


#**********************************************************
# Implicit directory creation rule
$(HB_DEST_DIRS) $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL):
	mkdir -p $@
#**********************************************************


#**********************************************************
# LIBRARY Targets BUILD rules
#**********************************************************
$(COMMON_LIB)   : $(COMMON_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(PP_LIB)       : $(PP_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(COMPILER_LIB) : $(COMPILER_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(VM_LIB)       : $(VM_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(VMMT_LIB)     : $(VMMT_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
ifneq ($(findstring $(HB_ARCHITECTURE),w32 os2),)
$(MAIN_LIB)     : $(MAIN_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
endif
#**********************************************************
$(RTL_LIB)      : $(RTL_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(MACRO_LIB)    : $(MACRO_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(DEBUG_LIB)    : $(DEBUG_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(LANG_LIB)     : $(LANG_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(CODEPAGE_LIB) : $(CODEPAGE_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(PCRE_LIB)     : $(PCRE_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(HBZLIB_LIB)   : $(HBZLIB_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(HBEXTERN_LIB) : $(HBEXTERN_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(RDD_LIB)      : $(RDD_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(NULSYS_LIB)   : $(NULSYS_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(DBFNTX_LIB)   : $(DBFNTX_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(DBFCDX_LIB)   : $(DBFCDX_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(DBFFPT_LIB)   : $(DBFFPT_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(HBSIX_LIB)    : $(HBSIX_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(HSX_LIB)      : $(HSX_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(USRRDD_LIB)   : $(USRRDD_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTCGI_LIB)    : $(GTCGI_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTSTD_LIB)    : $(GTSTD_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTPCA_LIB)    : $(GTPCA_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTDOS_LIB)    : $(GTDOS_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTWIN_LIB)    : $(GTWIN_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTWVT_LIB)    : $(GTWVT_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTGUI_LIB)    : $(GTGUI_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTOS2_LIB)    : $(GTOS2_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTTRM_LIB)    : $(GTTRM_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTCRS_LIB)    : $(GTCRS_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTSLN_LIB)    : $(GTSLN_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************
$(GTXWC_LIB)    : $(GTXWC_LIB_OBJS)
	$(MKLIB) $(ARFLAGS) $@ $^
#**********************************************************


#**********************************************************
# EXECUTABLE Targets BUILD rules
#**********************************************************
$(HBPP_EXE)     : $(HBPP_EXE_OBJS) $(COMMON_LIB)
	$(CC) $(CFLAGS) -o $@ $^ $(HB_OS_LIBS)
#**********************************************************
$(HARBOUR_EXE)  : $(HARBOUR_EXE_OBJS) $(COMPILER_LIB) $(PP_LIB) $(COMMON_LIB)
	$(CC) $(CFLAGS) -o $@ $^ $(HB_OS_LIBS)
#**********************************************************
$(HBRUN_EXE)    :: $(StdLibs)
$(HBRUN_EXE)    :: $(HBRUN_EXE_OBJS)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
#**********************************************************
$(HBTEST_EXE)   :: $(StdLibs)
$(HBTEST_EXE)   :: $(HBTEST_EXE_OBJS)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
#**********************************************************
$(HBDOC_EXE)    :: $(MinLibs)
$(HBDOC_EXE)    :: $(HBDOC_EXE_OBJS)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
#**********************************************************
$(HBMAKE_EXE)   :: $(MinLibs)
$(HBMAKE_EXE)   :: $(HBMAKE_EXE_OBJS)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
#**********************************************************

#**********************************************************
# DLL Targets
#**********************************************************
$(HARBOUR_DLL) :: $(StdLibs)
$(HARBOUR_DLL) :: $(DLL_OBJS)
	$(CC) $(LDFLAGSDLL) -o $@ $^ $(HB_OS_LIBS) $(HB_IMPLIB_PART)
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: $(StdLibs)
$(HBTESTDLL_EXE) :: $(DLL_OBJ_DIR)/mainstd$(OBJEXT) \
                    $(HBTEST_EXE_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
	$(CC) $(CEXEFLAGSDLL) -o$@ $^ $(HARBOUR_DLL) $(HB_OS_LIBS)
#----------------------------------------------------------
$(DLL_OBJ_DIR)/mainstd$(OBJEXT) : $(VM_DIR)/mainstd.c
	$(CC) $(CLIBFLAGS) -o$@ $<
#**********************************************************

#**********************************************************
# EXTRA Object's DEPENDENCIES
#**********************************************************

# Generated by an intermediate utility hbpp.exe
# built at the initial phase of build process
$(OBJ_DIR)/pptable$(OBJEXT) : $(OBJ_DIR)/pptable.c
$(DLL_OBJ_DIR)/pptable$(OBJEXT) : $(DLL_OBJ_DIR)/pptable.c

$(OBJ_DIR)/pptable.c     : $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch $(INCLUDE_DIR)/std.ch ChangeLog $(PP_DIR)/ppcore.c $(PP_DIR)/hbpp.c
	$< $(INCLUDE_DIR)/hbstdgen.ch -o$@ -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

$(DLL_OBJ_DIR)/pptable.c : $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch $(INCLUDE_DIR)/std.ch ChangeLog $(PP_DIR)/ppcore.c $(PP_DIR)/hbpp.c
	$< $(INCLUDE_DIR)/hbstdgen.ch -o$@ -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

#**********************************************************

ifeq ("$(HB_REBUILD_PARSER)","yes")

$(OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.y
	bison --no-line -d $** -o$@

$(OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.y
	bison --no-line -d $** -o$@

else

$(OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.yyc
	$(COPY) $< $@
	$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)

$(OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.yyc
	$(COPY) $< $@
	$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)

endif

#**********************************************************

#$(OBJ_DIR)/macrol.c : $(MACRO_DIR)/macro.l
#	flex -Phb_macro -i -8 -o$@ $**

#$(OBJ_DIR)/harbourl.c : $(COMPILER_DIR)/harbour.l
#	flex -Phb_comp -i -8 -o$@ $**

#$(OBJ_DIR)/harbourl$(OBJEXT) : $(OBJ_DIR)/harbourl.c
#$(OBJ_DIR)/macrol$(OBJEXT)   : $(OBJ_DIR)/macrol.c

#**********************************************************

$(OBJ_DIR)/harboury$(OBJEXT) : $(OBJ_DIR)/harboury.c
$(OBJ_DIR)/macroy$(OBJEXT)   : $(OBJ_DIR)/macroy.c

#**********************************************************

ifeq ("$(HB_REBUILD_PARSER)","yes")

$(DLL_OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.y
	bison --no-line -d $** -o$@

$(DLL_OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.y
	bison --no-line -d $** -o$@

else

$(DLL_OBJ_DIR)/macroy.c : $(MACRO_DIR)/macro.yyc
	$(COPY) $< $@
	$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)

$(DLL_OBJ_DIR)/harboury.c : $(COMPILER_DIR)/harbour.yyc
	$(COPY) $< $@
	$(COPY) $(<:.yyc=.yyh) $(@:.c=.h)

endif

#**********************************************************

#$(DLL_OBJ_DIR)/macrol.c : $(MACRO_DIR)/macro.l
#	flex -Phb_macro -i -8 -o$@ $**

#$(DLL_OBJ_DIR)/harbourl.c : $(COMPILER_DIR)/harbour.l
#	flex -Phb_comp -i -8 -o$@ $**

#$(DLL_OBJ_DIR)/harbourl$(OBJEXT) : $(DLL_OBJ_DIR)/harbourl.c
#$(DLL_OBJ_DIR)/macrol$(OBJEXT)   : $(DLL_OBJ_DIR)/macrol.c

#**********************************************************

$(DLL_OBJ_DIR)/harboury$(OBJEXT) : $(DLL_OBJ_DIR)/harboury.c
$(DLL_OBJ_DIR)/macroy$(OBJEXT)   : $(DLL_OBJ_DIR)/macroy.c

#**********************************************************
# CLEAN rules
#**********************************************************

clean: doClean
Clean: doClean
CLEAN: doClean

doClean:
	-$(DEL) $(HB_BUILD_TARGETS)
	-$(DEL) $(HB_DLL_IMPLIB)
	-$(DEL) $(OBJ_DIR)/*$(OBJEXT)
	-$(DEL) $(OBJ_DIR)/*.c
	-$(DEL) $(OBJ_DIR)/*.h
	-$(DEL) $(MT_OBJ_DIR)/*$(OBJEXT)
	-$(DEL) $(MT_OBJ_DIR)/*.c
	-$(DEL) $(MT_OBJ_DIR)/*.h
	-$(DEL) $(INCLUDE_DIR)/hbverbld.h
	-$(DEL) $(DLL_OBJ_DIR)/*$(OBJEXT)
	-$(DEL) $(DLL_OBJ_DIR)/*.c
	-$(DEL) $(DLL_OBJ_DIR)/*.h
	-$(DEL) inst_$(HB_CC_NAME).log
	-$(DEL) common.cf

#**********************************************************
# INSTALL rules
#**********************************************************

install : doInstall
Install : doInstall
INSTALL : doInstall

doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL)
	-for n in $(HB_BUILD_TARGETS); \
	 do \
	   [ -f "$$n" ] && \
	   case $$n in \
	     *$(DLLEXT) ) $(COPY) $$n $(HB_BIN_INSTALL);; \
	     *$(LIBEXT) ) $(COPY) $$n $(HB_LIB_INSTALL);; \
	     *$(EXEEXT) ) $(COPY) $$n $(HB_BIN_INSTALL);; \
	   esac \
	 done
ifneq  ("$(HB_INSTALL_PREFIX)",".")
	-[ ! -d "$(HB_INC_INSTALL)" ] || $(COPY) $(INCLUDE_DIR)/*.api $(HB_INC_INSTALL)
	-[ ! -d "$(HB_INC_INSTALL)" ] || $(COPY) $(INCLUDE_DIR)/*.ch  $(HB_INC_INSTALL)
	-[ ! -d "$(HB_INC_INSTALL)" ] || $(COPY) $(INCLUDE_DIR)/*.h   $(HB_INC_INSTALL)
endif

#**********************************************************
c:\harbour\make_vc.mak
#
# $Id: make_vc.mak 9538 2008-10-03 07:06:16Z vszakats $
#

#**********************************************************
# Makefile for Harbour Project for MSVC compilers
#**********************************************************

# ---------------------------------------------------------------
# Copyright 2007 Marek Paliwoda (mpaliwoda "at" interia "dot" pl)
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------

# ---------------------------------------------------------------
# If you need to set additional compiler/linker options use the
# environment variables below, but please DON'T MODIFY THIS FILE
# for this purpose.
# ---------------------------------------------------------------

#
# NOTE: You can use these envvars to configure the make process:
#       (note that these are all optional)
#
#       C_USR             - Extra C compiler options for libraries and for executables
#       CLIBFLAGSDLL      - Extra C compiler options for the shared libraries
#
#       L_USR             - Extra linker options for the static libraries
#       LDFLAGSDLL        - Extra linker options for the shared libraries
#
#       PRG_USR           - Extra Harbour compiler options
#       HARBOURFLAGSDLL   - Extra Harbour compiler options for shared libraries
#
#       HB_GT_LIB         - The default GT driver, choose between:
#                           gtwin (default), gtcgi, gtwvt, gtstd, gtpca
#       HB_BUILD_ST       - If set to yes builds harbour in SingleThread mode
#       HB_BUILD_DLL      - If set to yes enables building harbour VM+RTL
#                           dll in addition to normal static build
#       HB_BUILD_MODE     - If set to cpp causes to compile in C++ mode
#       HB_BUILD_WINCE    - If set to yes, a WinCE build will be created.
#       HB_BUILD_DEBUG    - If set to yes causes to compile with debug info
#       HB_BUILD_VERBOSE  - enables echoing commands being executed
#       HB_REBUILD_PARSER - If set to yes force preprocessing new rules by
#                           bison (you must use bison 2.3 or later)
#       HB_INSTALL_PREFIX - Path to installation directory into which
#                           Harbour will be installed when the command
#                           "make_vc.bat install" is lauched. Defaults
#                           to current directory
#       HB_VISUALC_VER    - Version of Visual C++ compiler.
#                           Possible values are: 60, 70, 71, 80 (default), 90

#**********************************************************

.SUFFIXES:

#**********************************************************

HB_ARCHITECTURE = w32

#**********************************************************

# MSVC has ST mode as default
!if "$(HB_BUILD_ST)" == ""
HB_BUILD_ST = yes
!endif

#**********************************************************

# Visual C++ version
!ifndef HB_VISUALC_VER
HB_VISUALC_VER = 80
!endif

#**********************************************************

!if "$(HB_BUILD_WINCE)" == "yes"
!if $(HB_VISUALC_VER) >= 80
CC     = cl.exe
!else
CC     = clarm.exe
!endif
!else
CC     = cl.exe
!endif
LINKER = link.exe
MKLIB  = lib.exe

#**********************************************************

# Include Common Object list files
# shared between MSVC and Borland

!include common.mak

#**********************************************************

.SUFFIXES: $(EXEEXT) $(LIBEXT) $(OBJEXT) .prg .c .l .y

#**********************************************************

# Some definitions cannot be kept in common.mak
# due to serious limitations of Microsoft Nmake

# Nmake does not support macros in string
# substitution, so we have to hardcode it

DLL_OBJS = $(TMP_DLL_OBJS:obj\vc=obj\dll\vc)

VMMT_LIB_OBJS = $(VM_LIB_OBJS:obj\vc=obj\vc_mt)

#**********************************************************
# C compiler, Harbour compiler and Linker flags.
#**********************************************************

# Main "Include" directory
INCLUDE_DIR    = include

#**********************************************************

# In which mode compile Harbour C or CPP
!if "$(HB_BUILD_MODE)" == "cpp"
HB_BUILD_MODE  = P
!else
HB_BUILD_MODE  = C
!endif

#**********************************************************

# C Compiler Flags
!if "$(HB_BUILD_WINCE)" == "yes"

!if $(HB_VISUALC_VER) >= 80
CFLAGS_VER     = -Od -Os -Gy -GS- -EHsc- -Gm -Zi -GR- -D_CRT_SECURE_NO_DEPRECATE
!else
CFLAGS_VER     = -Oxsb1 -EHsc -YX -GF
!endif

# TOFIX: These should be cleaned from everything not absolutely necessary:

CFLAGS         = -nologo -W3 -I$(INCLUDE_DIR) -I$(CFLAGS_VER) -T$(HB_BUILD_MODE) \
                 -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" \
                 $(C_USR) -D_UWIN -I$(OBJ_DIR)

#-----------
!ifndef HB_WINCE_COMPILE_WITH_GTWIN
CFLAGS    = $(CFLAGS) -DHB_NO_WIN_CONSOLE
!endif
#-----------
!if "$(HB_BUILD_DEBUG)" == "yes"
CFLAGS    = $(CFLAGS) -D "_DEBUG" -D "DEBUG"
DBGMARKER = d
!else
CFLAGS    = $(CFLAGS) -D "NDEBUG"
!endif

!else

# NOTE: See here: http://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx

!if $(HB_VISUALC_VER) >= 80
CFLAGS_VER     = -Ot2b1 -EHs-c- -D_CRT_SECURE_NO_DEPRECATE
!else
CFLAGS_VER     = -Ogt2yb1p -GX- -G6 -YX
!endif

CFLAGS         = -nologo -W4 -wd4127 -Gs -I$(INCLUDE_DIR) $(CFLAGS_VER) -T$(HB_BUILD_MODE) \
                 $(C_USR) -I$(OBJ_DIR)

#-----------
!if "$(HB_BUILD_DEBUG)" == "yes"
CFLAGS         = -Zi $(CFLAGS)
DBGMARKER      =  d
!endif

CFLAGSMT = -MT$(DBGMARKER) -DHB_MT_VM $(CFLAGSMT)

!endif

#-----------
!if "$(HB_BUILD_ST)" != "yes"
CFLAGS = $(CFLAGS) $(CFLAGSMT)
!else
HB_BUILD_TARGETS = $(HB_BUILD_TARGETS) $(VMMT_LIB)
!endif
#-----------
!if "$(HB_GT_LIB)" != ""
CFLAGS = -D"HB_GT_LIB=$(HB_GT_LIB:gt=)" $(CFLAGS)
!endif
#-----------

#**********************************************************

CLIBFLAGS      = -c $(CFLAGS)
CLIBFLAGSxxx   =  $(CLIBFLAGS: -MT= )
CLIBFLAGSxxx   =  $(CLIBFLAGSxxx: -MTd= )
!if "$(HB_BUILD_WINCE)" == "yes"
CLIBFLAGSDLL   =  $(CLIBFLAGS) $(CLIBFLAGSDLL) -DHB_DYNLIB
CEXEFLAGSDLL   =  $(CLIBFLAGS) $(CEXEFLAGSDLL)
!else
CLIBFLAGSDLL   = -MT$(DBGMARKER) $(CLIBFLAGS) $(CLIBFLAGSDLL) -DHB_DYNLIB
CEXEFLAGSDLL   = -MT$(DBGMARKER) $(CLIBFLAGS) $(CEXEFLAGSDLL)
!endif

#**********************************************************

# Harbour Compiler Flags
HBFLAGSCMN     = -i$(INCLUDE_DIR) -q0 -w3 -es2 -km $(PRG_USR)
!if "$(HB_BUILD_WINCE)" == "yes"
HBFLAGSCMN     = $(HBFLAGSCMN) -D__PLATFORM__WINCE
!endif
HARBOURFLAGS   = -n $(HBFLAGSCMN)
HARBOURFLAGSDLL= -n1 $(HBFLAGSCMN) $(HARBOURFLAGSDLL)

#**********************************************************

# Linker Flags
!if "$(HB_BUILD_WINCE)" == "yes"
LDFLAGS        = /NOLOGO /SUBSYSTEM:WINDOWSCE,4.20 /MACHINE:ARM /ARMPADCODE \
                 /STACK:65536,4096 /NODEFAULTLIB:"oldnames.lib" \
                 /NODEFAULTLIB:"kernel32.lib" /ALIGN:4096 /OPT:REF /OPT:ICF \
                 /LIBPATH:$(LIB_DIR) $(L_USR)
#                /ERRORREPORT:PROMPT /ENTRY:"mainWCRTStartup"
!if $(HB_VISUALC_VER) >= 80
LDFLAGS        = $(LDFLAGS) /MANIFEST:NO
!endif
LDFLAGSDLL     = /DLL \
                 /NOLOGO /SUBSYSTEM:WINDOWSCE,4.20 /MACHINE:ARM /ARMPADCODE \
                 /STACK:65536,4096 /NODEFAULTLIB:"oldnames.lib" \
                 /LIBPATH:$(LIB_DIR) $(LDFLAGSDLL)
!else
LDFLAGS        = /NOLOGO /SUBSYSTEM:console /LIBPATH:$(LIB_DIR) $(L_USR)
LDFLAGSDLL     = /DLL \
                 /NOLOGO /LIBPATH:$(LIB_DIR) $(LDFLAGSDLL)
!endif

!if "$(HB_BUILD_DEBUG)" == "yes"
LDFLAGS        = /DEBUG $(LDFLAGS)
LDFLAGSDLL     = /DEBUG $(LDFLAGSDLL)
!endif

!if "$(HB_BUILD_WINCE)" == "yes"
STANDARD_SYSLIBS = coredll.lib corelibc.lib winsock.lib ws2.lib
!else
# user32.lib: *Clipboard*(), CharToOemBuff(), OemToCharBuff(), GetKeyState(), GetKeyboardState(), SetKeyboardState()
# wsock32.lib: hbinet
# advapi32.lib: GetUserName()
# gdi32.lib: gtwvt
STANDARD_SYSLIBS = user32.lib wsock32.lib advapi32.lib gdi32.lib
!endif

#**********************************************************
# COMPILE Rules
#**********************************************************

#*******************************************************
# General *.c --> *.obj COMPILE rules for STATIC Libraries
#*******************************************************
{$(OBJ_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(MAIN_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(COMMON_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(COMPILER_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(PP_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(VM_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(RTL_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(MACRO_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(DEBUG_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(LANG_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(CODEPAGE_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(PCRE_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBZLIB_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBEXTERN_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(RDD_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(NULSYS_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(DBFNTX_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(DBFCDX_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(DBFFPT_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBSIX_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HSX_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(USRRDD_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTCGI_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTPCA_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTSTD_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTWIN_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTWVT_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(GTGUI_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(COMPILER_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBRUN_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBTEST_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBDOC_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************
{$(HBMAKE_DIR)}.c{$(OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#*******************************************************

#*******************************************************
# General *.prg --> *.obj COMPILE rules for STATIC Libraries
#*******************************************************
{$(OBJ_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(COMMON_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(PP_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(VM_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(RTL_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(MACRO_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(DEBUG_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(LANG_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(CODEPAGE_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(PCRE_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBZLIB_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBEXTERN_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(RDD_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(NULSYS_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFNTX_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFCDX_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFFPT_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBSIX_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HSX_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(USRRDD_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTCGI_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTPCA_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTSTD_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTWIN_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTWVT_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTGUI_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(COMPILER_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBRUN_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBTEST_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBDOC_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBMAKE_DIR)}.prg{$(OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\$(*B).c
#*******************************************************

#*******************************************************
# General *.c --> *.obj COMPILE rules for STATIC MT Libraries
#*******************************************************
{$(VM_DIR)}.c{$(MT_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGS) $(CFLAGSMT) -Fo$(MT_OBJ_DIR)\ $<
#*******************************************************

#*******************************************************
# General *.prg --> *.obj COMPILE rules for STATIC MT Libraries
#*******************************************************
{$(VM_DIR)}.prg{$(MT_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(MT_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGS) $(CFLAGSMT) -Fo$(MT_OBJ_DIR)\ $(MT_OBJ_DIR)\$(*B).c
#*******************************************************

#*******************************************************
# General *.c --> *.obj COMPILE rules for SHARED Libraries
#*******************************************************
{$(DLL_OBJ_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(MAIN_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(COMMON_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(COMPILER_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(PP_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(VM_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(RTL_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(MACRO_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(DEBUG_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(LANG_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(CODEPAGE_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(PCRE_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBZLIB_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBEXTERN_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(RDD_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(NULSYS_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(DBFNTX_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(DBFCDX_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(DBFFPT_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBSIX_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HSX_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(USRRDD_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTCGI_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTPCA_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTSTD_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTWIN_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTWVT_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(GTGUI_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************

#*******************************************************
# General *.c --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
#*******************************************************
#{$(COMPILER_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
#    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBRUN_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBTEST_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBDOC_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************
{$(HBMAKE_DIR)}.c{$(DLL_OBJ_DIR)}$(OBJEXT)::
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $<
#*******************************************************

#*******************************************************
# General *.prg --> *.obj COMPILE rules for SHARED Libraries
#*******************************************************
{$(DLL_OBJ_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(COMMON_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(PP_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(VM_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(RTL_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(MACRO_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(DEBUG_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(LANG_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(PCRE_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBZLIB_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBEXTERN_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(CODEPAGE_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(RDD_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(NULSYS_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFNTX_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFCDX_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(DBFFPT_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBSIX_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HSX_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(USRRDD_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTCGI_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTPCA_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTSTD_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTWIN_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTWVT_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(GTGUI_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGSDLL) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CLIBFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************

#*******************************************************
# General *.prg --> *.obj COMPILE rules for EXECUTABLES,
# which use Harbour SHARED Library compiled as DLL
#*******************************************************
#{$(COMPILER_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
#    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $<
#    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBRUN_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBTEST_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBDOC_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#*******************************************************
{$(HBMAKE_DIR)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
    $(HB) $(HARBOURFLAGS) -o$(DLL_OBJ_DIR)\ $<
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $(DLL_OBJ_DIR)\$(*B).c
#**********************************************************

#**********************************************************
# TARGET dependencies
#**********************************************************

all : $(HB_DEST_DIRS) $(HB_BUILD_TARGETS)

#**********************************************************
# Helper targets - disabled for Msvc
#**********************************************************

#BasicLibs : $(COMMON_LIB) $(COMPILER_LIB) $(PP_LIB)
#BasicExes : $(HARBOUR_EXE)
#StdLibs   : $(STANDARD_STATIC_HBLIBS)

#**********************************************************

$(HB_DEST_DIRS) $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL):
    !if not exist $@\nul mkdir $@

#**********************************************************
# LIBRARY Targets BUILD rules
#**********************************************************
$(COMMON_LIB)   : $(COMMON_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(PP_LIB)       : $(PP_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(COMPILER_LIB) : $(COMPILER_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(VM_LIB)       : $(VM_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(VMMT_LIB)     : $(VMMT_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(RTL_LIB)      : $(RTL_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(MACRO_LIB)    : $(MACRO_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(DEBUG_LIB)    : $(DEBUG_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(LANG_LIB)     : $(LANG_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(CODEPAGE_LIB) : $(CODEPAGE_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(PCRE_LIB)     : $(PCRE_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(HBZLIB_LIB)   : $(HBZLIB_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(HBEXTERN_LIB) : $(HBEXTERN_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(RDD_LIB)      : $(RDD_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(NULSYS_LIB)   : $(NULSYS_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(DBFNTX_LIB)   : $(DBFNTX_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(DBFCDX_LIB)   : $(DBFCDX_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(DBFFPT_LIB)   : $(DBFFPT_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(HBSIX_LIB)    : $(HBSIX_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(HSX_LIB)      : $(HSX_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(USRRDD_LIB)   : $(USRRDD_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTCGI_LIB)    : $(GTCGI_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTDOS_LIB)    : $(GTDOS_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTPCA_LIB)    : $(GTPCA_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTSTD_LIB)    : $(GTSTD_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTWIN_LIB)    : $(GTWIN_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTWVT_LIB)    : $(GTWVT_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************
$(GTGUI_LIB)    : $(GTGUI_LIB_OBJS)
    $(MKLIB) /out:$@ $**
#**********************************************************

#**********************************************************
# EXECUTABLE Targets
#**********************************************************

#**********************************************************
# HARBOUR build rule
#**********************************************************
$(HARBOUR_EXE) : $(HARBOUR_EXE_OBJS)
    IF EXIST "$(HARBOUR_EXE)" $(DEL) "$(HARBOUR_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HARBOUR_EXE)
$(**: = ^
)
$(COMMON_LIB)
$(COMPILER_LIB)
$(PP_LIB)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# HBPP build rule
#**********************************************************
$(HBPP_EXE) : $(HBPP_EXE_OBJS)
    IF EXIST "$(HBPP_EXE)" $(DEL) "$(HBPP_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBPP_EXE)
$(**: = ^
)
$(COMMON_LIB)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# HBRUN build rule
#**********************************************************
$(HBRUN_EXE)  : $(HBRUN_EXE_OBJS)
    IF EXIST "$(HBRUN_EXE)" $(DEL) "$(HBRUN_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBRUN_EXE)
$(**: = ^
)
$(STANDARD_STATIC_HBLIBS)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# HBTEST build rule
#**********************************************************
$(HBTEST_EXE) : $(HBTEST_EXE_OBJS)
    IF EXIST "$(HBTEST_EXE)" $(DEL) "$(HBTEST_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBTEST_EXE)
$(**: = ^
)
$(STANDARD_STATIC_HBLIBS)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# HBDOC build rule
#**********************************************************
$(HBDOC_EXE)  : $(HBDOC_EXE_OBJS)
    IF EXIST "$(HBDOC_EXE)" $(DEL) "$(HBDOC_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBDOC_EXE)
$(**: = ^
)
$(MINIMAL_STATIC_HBLIBS)
$(HBDOC_LIBS)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# HBMAKE build rule
#**********************************************************
$(HBMAKE_EXE) : $(HBMAKE_EXE_OBJS)
    IF EXIST "$(HBMAKE_EXE)" $(DEL) "$(HBMAKE_EXE)" > nul
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBMAKE_EXE)
$(**: = ^
)
$(MINIMAL_STATIC_HBLIBS)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************

#**********************************************************
# DLL Targets
#**********************************************************
$(HARBOUR_DLL) : $(HB) $(DLL_OBJS)
    $(LINKER) @<<
$(LDFLAGSDLL) /OUT:$(@)
/IMPLIB:$(@:.dll=.lib)
$(DLL_OBJS: = ^
)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
HBTESTDLL_OBJS =  $(DLL_OBJ_DIR)\mainstd$(OBJEXT) $(HBTEST_EXE_OBJS:obj\vc=obj\dll\vc)
$(HBTESTDLL_EXE) : $(HARBOUR_DLL) $(HBTESTDLL_OBJS)
    $(LINKER) @<<
$(LDFLAGS)
/OUT:$(HBTESTDLL_EXE)
$(HBTESTDLL_OBJS: = ^
)
$(HARBOUR_DLL:.dll=.lib)
<<$(HB_KEEPSTATE)
#----------------------------------------------------------
$(DLL_OBJ_DIR)\mainstd$(OBJEXT) : $(VM_DIR)\mainstd.c
    $(CC) $(CEXEFLAGSDLL) -Fo$(DLL_OBJ_DIR)\ $**
#**********************************************************

#**********************************************************
# EXTRA Object's DEPENDENCIES
#**********************************************************

# Generated by an intermediate utility hbpp.exe
# built at the initial phase of build process
$(OBJ_DIR)\pptable.obj     : $(OBJ_DIR)\pptable.c
$(DLL_OBJ_DIR)\pptable.obj : $(DLL_OBJ_DIR)\pptable.c

$(OBJ_DIR)\pptable.c     : $(INCLUDE_DIR)\hbstdgen.ch $(INCLUDE_DIR)\std.ch ChangeLog $(PP_DIR)\ppcore.c $(PP_DIR)\hbpp.c
    IF EXIST "$(OBJ_DIR)\pptable.c" $(DEL) "$(OBJ_DIR)\pptable.c" > nul
    $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch -o$(OBJ_DIR)/pptable.c -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

$(DLL_OBJ_DIR)\pptable.c : $(INCLUDE_DIR)\hbstdgen.ch $(INCLUDE_DIR)\std.ch ChangeLog $(PP_DIR)\ppcore.c $(PP_DIR)\hbpp.c
    IF EXIST "$(DLL_OBJ_DIR)\pptable.c" $(DEL) "$(DLL_OBJ_DIR)\pptable.c" > nul
    $(HBPP) $(INCLUDE_DIR)/hbstdgen.ch -o$(DLL_OBJ_DIR)/pptable.c -q -cChangeLog -v$(INCLUDE_DIR)/hbverbld.h

#**********************************************************

!if "$(HB_REBUILD_PARSER)" == "yes"

$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
    bison --no-line -d $** -o$@

$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
    bison --no-line -d $** -o$@

$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
    bison --no-line -d $** -o$@

$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
    bison --no-line -d $** -o$@

!else

$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(DLL_OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

$(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.yyc
    copy /A $** $@
    copy /A $(**:.yyc=.yyh) $(@:.c=.h)

!endif

$(OBJ_DIR)\harboury.obj : $(OBJ_DIR)\harboury.c
$(OBJ_DIR)\macroy.obj   : $(OBJ_DIR)\macroy.c

$(DLL_OBJ_DIR)\harboury.obj : $(DLL_OBJ_DIR)\harboury.c
$(DLL_OBJ_DIR)\macroy.obj   : $(DLL_OBJ_DIR)\macroy.c

#**********************************************************


#**********************************************************
# CLEAN rules
#**********************************************************

clean: doClean
Clean: doClean
CLEAN: doClean

doClean:
    -if exist *.idb                     $(DEL) *.idb                     > nul
    -if exist *.pch                     $(DEL) *.pch                     > nul
    -if exist *.pdb                     $(DEL) *.pdb                     > nul
    -if exist $(BIN_DIR)\*.exe          $(DEL) $(BIN_DIR)\*.exe          > nul
    -if exist $(BIN_DIR)\*.pdb          $(DEL) $(BIN_DIR)\*.pdb          > nul
    -if exist $(BIN_DIR)\*.ilk          $(DEL) $(BIN_DIR)\*.ilk          > nul
    -if exist $(BIN_DIR)\*.map          $(DEL) $(BIN_DIR)\*.map          > nul
    -if exist $(BIN_DIR)\*.dll          $(DEL) $(BIN_DIR)\*.dll          > nul
    -if exist $(BIN_DIR)\*.lib          $(DEL) $(BIN_DIR)\*.lib          > nul
    -if exist $(BIN_DIR)\*.exp          $(DEL) $(BIN_DIR)\*.exp          > nul
    -if exist $(LIB_DIR)\*.lib          $(DEL) $(LIB_DIR)\*.lib          > nul
    -if exist $(OBJ_DIR)\*.obj          $(DEL) $(OBJ_DIR)\*.obj          > nul
    -if exist $(OBJ_DIR)\*.c            $(DEL) $(OBJ_DIR)\*.c            > nul
    -if exist $(OBJ_DIR)\*.h            $(DEL) $(OBJ_DIR)\*.h            > nul
    -if exist $(OBJ_DIR)\*.pch          $(DEL) $(OBJ_DIR)\*.pch          > nul
    -if exist $(MT_OBJ_DIR)\*.obj       $(DEL) $(MT_OBJ_DIR)\*.obj       > nul
    -if exist $(MT_OBJ_DIR)\*.c         $(DEL) $(MT_OBJ_DIR)\*.c         > nul
    -if exist $(MT_OBJ_DIR)\*.h         $(DEL) $(MT_OBJ_DIR)\*.h         > nul
    -if exist $(DLL_OBJ_DIR)\*.obj      $(DEL) $(DLL_OBJ_DIR)\*.obj      > nul
    -if exist $(DLL_OBJ_DIR)\*.c        $(DEL) $(DLL_OBJ_DIR)\*.c        > nul
    -if exist $(DLL_OBJ_DIR)\*.h        $(DEL) $(DLL_OBJ_DIR)\*.h        > nul
    -if exist $(INCLUDE_DIR)\hbverbld.h $(DEL) $(INCLUDE_DIR)\hbverbld.h > nul
    -if exist inst_$(HB_CC_NAME).log    $(DEL) inst_$(HB_CC_NAME).log    > nul
    -if exist bin\*.exe                 $(DEL) bin\*.exe                 > nul
    -if exist bin\*.dll                 $(DEL) bin\*.dll                 > nul
    -if exist lib\*.lib                 $(DEL) lib\*.lib                 > nul

#**********************************************************
# INSTALL rules
#**********************************************************

install : doInstall
Install : doInstall
INSTALL : doInstall

doInstall: $(HB_BIN_INSTALL) $(HB_LIB_INSTALL) $(HB_INC_INSTALL)
    -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.exe   copy /B $(BIN_DIR)\*.exe $(HB_BIN_INSTALL) >  inst_$(HB_CC_NAME).log
    -if exist $(HB_BIN_INSTALL)\nul if exist $(BIN_DIR)\*.dll   copy /B $(BIN_DIR)\*.dll $(HB_BIN_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_LIB_INSTALL)\nul if exist $(BIN_DIR)\*.lib   copy /B $(BIN_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_LIB_INSTALL)\nul if exist $(LIB_DIR)\*.lib   copy /B $(LIB_DIR)\*.lib $(HB_LIB_INSTALL) >> inst_$(HB_CC_NAME).log
!if "$(HB_INSTALL_PREFIX)" != "."
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.api $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.ch  $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
    -if exist $(HB_INC_INSTALL)\nul   copy /B $(INCLUDE_DIR)\*.h   $(HB_INC_INSTALL) >> inst_$(HB_CC_NAME).log
!endif

#**********************************************************

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