# # $Id$ # # The Harbour project # GNU MAKE file for OpenWatcom 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= # important: -j is necessary for proper build #CPPFLAGS = -j -w3 -d1 -5s -5r -fp5 -oehtz -s -zq -zt0 -bt=DOS CPPFLAGS = -j -w2 -d1 -zq -bt=DOS #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 ifeq ($(HB_LEX),SIMPLEX) CFLAGS += -DSIMPLEX endif # work arround to DOS command line size limit export WPP386 := $(strip $(CPPFLAGS)) CPPFLAGS = # Note: The empty line directly before 'endef' HAVE TO exist! # It causes that the 'echo' command is separated by LF define link_file echo. FILE $(file) >> __link__.tmp endef #Note: The empty line directly before 'endef' HAVE TO exist! define link_lib echo. LIB $(lib) >> __link__.tmp endef define link_exe_file echo. $(LDFLAGS) NAME $@ > __link__.tmp $(foreach file, $^, $(link_file)) $(foreach lib, $(HB_USER_LIBS), $(link_lib)) $(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=DOS OP stack=65536 OP CASEEXACT OP stub=cwstub.exe ifeq ($(HB_LIB_COMPILE),) LINKLIBS := $(foreach lib, $(CONTRIBS), $(subst /,\,$(TOP)$(ROOT)contrib/$(lib)/$(HB_ARCH)/$(subst lib,,$(lib)))) LINKLIBS += $(foreach lib, $(LIBS), $(subst /,\,$(TOP)$(ROOT)source/$(lib)/$(HB_ARCH)/$(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), $(subst /,\,$(TOP)$(ROOT)source/rdd/$(drv)/$(HB_ARCH)/$(drv))) else RDDLIBS := $(foreach drv, $(HB_DB_DRIVERS), $(subst /,\,$(HB_LIB_COMPILE)/$(drv))) endif endif ifeq ($(findstring rtl,$(LIBS)),rtl) ifeq ($(HB_LIB_COMPILE),) GTLIBS := $(TOP)$(ROOT)source/rtl/$(HB_GT_LIB)/$(HB_ARCH)/$(HB_GT_LIB) else GTLIBS := $(HB_LIB_COMPILE)/$(HB_GT_LIB) 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 define create_library echo. $@ > __lib__.tmp $(foreach file, $^, $(lib_object)) $(AR) $(ARFLAGS) @__lib__.tmp endef AR = wlib ARFLAGS = -p=32 -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 =