Files
harbour-core/harbour/config/w32/watcom.cf
Ryszard Glab d12a8aa83c 2008-01-31 18:47 UTC+0100 Ryszard Glab <harbour//rglab.pl>
* config/hpux/gcc.cf
   * config/darwin/gcc.cf
   * config/dos/owatcom.cf
   * config/dos/watcom.cf
   * config/dos/bcc16.cf
   * config/dos/rsx32.cf
   * config/dos/djgpp.cf
   * config/linux/owatcom.cf
   * config/linux/gcc.cf
   * config/os2/gcc.cf
   * config/os2/icc.cf
   * config/sunos/gcc.cf
   * config/bsd/gcc.cf
   * config/w32/msvc.cf
   * config/w32/owatcom.cf
   * config/w32/watcom.cf
   * config/w32/bcc32.cf
   * config/w32/gcc.cf
   * config/w32/xcc.cf
   * config/w32/rsxnt.cf
   * config/w32/cemgw.cf
   * config/w32/pocc.cf
   * config/w32/mingw32.cf
      * fixed to link contrib libraries (all contrib libraries are
        placed in lib/<arch>/<compiler> directory)
        NOTE:
        OS/2 users: the names of libraries have 'hbgf' prefix
2008-01-31 17:44:30 +00:00

120 lines
2.9 KiB
CFEngine3

#
# $Id$
#
# The Harbour project
# GNU MAKE file for Watcom C/C++ 10.x
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
OBJ_EXT = .obj
EXE_EXT = .exe
LIB_PREF =
LIB_EXT = .lib
$(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP = $(subst /,\,$(GRANDP))
CC = wpp386
CC_IN =
CC_OUT = -fo=
#CPPFLAGS = -j -w3 -d2 -5s -5r -fp5 -oxehtz -zq -zt0 -mf -bt=NT
CPPFLAGS = -w2 -d1 -zq -bt=NT
#architecture flags
CPPFLAGS += -5 -fp5
# optimization flags
# don't enable -ol optimization in OpenWatcom 1.1 - gives buggy code
CPPFLAGS += -onaehtzr -oi+ -ei -zp8 -s -zt0
CPPFLAGS += -i. -i$(TOP)include -i$(TOP)$(ROOT)include -iinclude
ifneq ($(HB_LIB_COMPILE),)
CPPFLAGS += -i$(HB_INC_COMPILE)
endif
# work arround to DOS command line size limit
export WPP386 := $(strip $(CPPFLAGS))
CPPFLAGS =
# Note: The empty line directly before 'endef' HAVE TO exist!
# It causes that the 'echo' command is separated by LF
define link_file
echo. FILE $(file) >> __link__.tmp
endef
#Note: The empty line directly before 'endef' HAVE TO exist!
define link_lib
echo. LIB $(lib) >> __link__.tmp
endef
define link_exe_file
echo. $(LDFLAGS) NAME $@ > __link__.tmp
echo. LIB kernel32.lib, user32.lib, winspool.lib, oleaut32.lib, uuid.lib, comctl32.lib, mapi32.lib, wsock32.lib >> __link__.tmp
$(foreach file, $(^F), $(link_file))
$(foreach lib, $(LINKLIBS), $(link_lib))
$(foreach lib, $(RDDLIBS), $(link_lib))
$(foreach lib, $(GTLIBS), $(link_lib))
-$(LD) @__link__.tmp
endef
LD = wlink
LDFLAGS = debug all OP osn=NT OP stack=65536 OP CASEEXACT
ifeq ($(HB_LIB_COMPILE),)
LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(LIB_DIR)/$(lib)))
LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(LIB_DIR)/$(lib)))
else
LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib)))
LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(HB_LIB_COMPILE)/$(lib)))
endif
# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
ifeq ($(HB_LIB_COMPILE),)
RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(LIB_DIR)/$(drv))
else
RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(HB_LIB_COMPILE)/$(drv))
endif
RDDLIBS := $(subst /,\,$(RDDLIBS))
endif
ifeq ($(findstring rtl,$(LIBS)),rtl)
ifeq ($(HB_LIB_COMPILE),)
GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(LIB_DIR)/$(gt))
else
GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(HB_LIB_COMPILE)/$(gt))
endif
GTLIBS := $(subst /,\,$(GTLIBS))
endif
LD_RULE = $(link_exe_file)
#Note: The empty line below HAVE TO exist!
define lib_object
echo. -+$(file) >> __lib__.tmp
endef
LIB_DDIR := $(subst /,\,$(LIB_DIR))
define create_library
echo. $(LIB_DDIR)\$@ > __lib__.tmp
$(foreach file, $(^F), $(lib_object))
$(AR) $(ARFLAGS) @__lib__.tmp
endef
AR = wlib
ARFLAGS = -p=64 -c -n $(A_USR)
AR_RULE = $(create_library)
include $(TOP)$(ROOT)config/rules.cf
HB := $(subst /,\,$(HB))
HB_FLAGS := $(subst /,\,$(HB_FLAGS))
# work arround to DOS command line size limit
export HARBOURCMD := $(HB_FLAGS)
HB_FLAGS =