#
# $Id$
#
# The Harbour project
# GNU MAKE file for OpenWatcom C/C++

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

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

CC = wpp386
CC_IN =
CC_OUT = -fo=

#CPPFLAGS = -j -w3 -d1 -5s -5r -fp5 -oehtz -s -zq -zt0 -bt=linux
CPPFLAGS = -w2 -d1 -zq -bt=linux

#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

empty:=
space:= $(empty) $(empty)
comma:= ,

LD = wlink
LDFLAGS = debug all sys Linux OP CASEEXACT

ifeq ($(HB_LIB_COMPILE),)
   LINKLIBS := $(foreach lib, $(CONTRIBS), $(TOP)$(ROOT)contrib/$(lib)/$(HB_ARCH)/$(subst lib,,$(lib)))
   LINKLIBS += $(foreach lib, $(LIBS), $(TOP)$(ROOT)source/$(lib)/$(HB_ARCH)/$(lib))
else
   LINKLIBS := $(foreach lib, $(CONTRIBS), $(HB_LIB_COMPILE)/$(lib))
   LINKLIBS += $(foreach lib, $(LIBS), $(HB_LIB_COMPILE)/$(lib))
endif

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

ifeq ($(findstring rtl,$(LIBS)),rtl)
   ifeq ($(HB_LIB_COMPILE),)
      GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(TOP)$(ROOT)source/rtl/$(gt)/$(HB_ARCH)/$(gt))
   else
      GTLIBS := $(foreach gt, $(HB_GT_LIBS), $(HB_LIB_COMPILE)/$(gt))
   endif
endif

LDFILES = $(subst $(space),$(comma) ,$(^F))
LDLIBS  = $(subst $(space),$(comma) ,$(strip $(LINKLIBS) $(RDDLIBS) $(GTLIBS)))
LD_RULE = $(LD) $(LDFLAGS) NAME $@ FILE $(LDFILES)
ifneq ($(LDLIBS),)
   LD_RULE += LIB $(LDLIBS)
endif

AR = wlib
# ARFLAGS = -c -n -fa $(A_USR)
ARFLAGS = -c -n $(A_USR)
AR_RULE = $(AR) $(ARFLAGS) $@ $(foreach file, $(^F), -+$(file))

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