######################################################################
### Windows Visual C++ (nmake) definitions
### 
### Environment Variables:
### 
### VBROKERDIR (required)	: set to base directory of VisiBroker  
###				: for C++ installation.
### BUILD_TYPE (optional)	: set BUILD_TYPE=debug for debug build
### STD 		        : On IA64 our default libraries are STD
######################################################################

!IFNDEF VBROKERDIR
!MESSAGE Warning: VBROKERDIR is not set
!MESSAGE 
!ENDIF

!IF "$(BUILD_TYPE)" == "debug" || "$(BUILD_TYPE)" == "DEBUG"
DEG_BLD=1
!ENDIF

!IFDEF DEG_BLD
CC_MODEL = /MDd /DTHREAD /D_VIS_STD
DEBUG = /Zi
LDFLAGS  = /DEBUG
!ELSE
CC_MODEL = /MD /DTHREAD /D_VIS_STD
DEBUG =
LDFLAGS  = 
!ENDIF

!IFDEF DEG_BLD
VBLIB = orb64_rd.lib vdlog64_rd.lib vport64_rd.lib
VBSYSMIBLIB = vbsysmib.lib
NMSGLIB = nmsg64_rd.lib
VBCOSEVLIB = cosev64_rd.lib
VBCOSNMLIB = cosnm64_rd.lib
VBNTFYLIB = cosnotify64.lib
VBCOSTMLIB = costm64.lib
VBDSLOGLIB = telcolog64.lib
VBSECLIB = vbsec64.lib
VBLIBITS = its_support64.lib
# For in-process OTS
VBLIBOTS = ots64_rd.lib
LIBDOM2CAM = dom2cam64_rd.lib
LIB_ORADC = oradc64_rd.lib
# For pluggable transport
VBLIBPLUG = pluggable64_rd.lib
# For WS-Enablement
XERCESLIB = xerces-c_2_7_64D.lib
LIB_VBWS = ws64_rd.lib
# For Componentized ORB libraries
VBORBCORELIB = orbcore64_rd.lib vdlog64_rd.lib vport64_rd.lib
VBIRLIB = ir64_rd.lib
VBDYNANYLIB = dynany64_rd.lib
VBLOCSVCLIB = locsvc64_rd.lib
!ELSE
VBLIB = orb64_r.lib vdlog64_r.lib vport64_r.lib
VBSYSMIBLIB= vbsysmib.lib
NMSGLIB = nmsg64_r.lib
VBCOSEVLIB = cosev64_r.lib
VBCOSNMLIB = cosnm64_r.lib
VBNTFYLIB = cosnotify64.lib
VBCOSTMLIB = costm64.lib
VBDSLOGLIB = telcolog64.lib
VBSECLIB = vbsec64.lib
VBLIBITS = its_support64.lib
# For in-process OTS
VBLIBOTS = ots64_r.lib
LIBDOM2CAM = dom2cam64_r.lib
LIB_ORADC = oradc64_r.lib
# For pluggable transport
VBLIBPLUG = pluggable64_r.lib
# For WS-Enablement
XERCESLIB = xerces-c_2_7_64.lib
LIB_VBWS = ws64_r.lib
# For Componentized ORB libraries
VBORBCORELIB = orbcore64_r.lib vdlog64_r.lib vport64_r.lib
VBIRLIB = ir64_r.lib
VBDYNANYLIB = dynany64_r.lib
VBLOCSVCLIB = locsvc64_r.lib
!ENDIF

### Platform specific compiler definitions 
CC         = CL /nologo $(CC_MODEL) -DWIN32 /EHsc /DSTRICT /DALIGNED
CC_EXE_TARGET  = /Fo
LINK_DLL   = LINK /nologo $(LDFLAGS) /DLL
LINK_DLL_TARGET = /OUT:
LINK_EXE   = LINK $(LDFLAGS)
LINK_EXE_TARGET = /OUT:
STDCC_LIBS = 
CCDEFS     = /Zc:wchar_t

### VisiBroker directory locations
ORBCC      = $(VBROKERDIR)\bin\idl2cpp -src_suffix cpp -I$(VBROKERDIR)\idl
LIBDIR     = $(VBROKERDIR)\lib
CCINCLUDES = -I. -I$(VBROKERDIR)\include -I$(VBROKERDIR)\include\stubs
ORAINCLUDES = -I. -I$(ORACLE_HOME)\oci\include

LIB_XERCES = /LIBPATH:$(LIBDIR) $(XERCESLIB)
LIB_ORA = /LIBPATH:$(ORACLE_HOME)\precomp\lib orasql10.lib
LIB_ORAOCI = /LIBPATH:$(ORACLE_HOME)\oci\lib\msvc oci.lib
LIB_ORAXA = /LIBPATH:$(ORACLE_HOME)\rdbms\xa oraxa10.lib

### ORB library
LIBORB     = /LIBPATH:$(LIBDIR) $(VBLIB)
LIBMIB     = /LIBPATH:$(LIBDIR) $(VBSYSMIBLIB)
LIBNMSG    = /LIBPATH:$(LIBDIR) $(NMSGLIB)
LIBCOSEV = /LIBPATH:$(LIBDIR) $(VBCOSEVLIB)
LIBCOSNM = /LIBPATH:$(LIBDIR) $(VBCOSNMLIB)
LIBNOTIFY = /LIBPATH:$(LIBDIR) $(VBNTFYLIB)
LIBCOSTM = /LIBPATH:$(LIBDIR) $(VBCOSTMLIB)
LIBDSLOG = /LIBPATH:$(LIBDIR) $(VBDSLOGLIB)
LIBSEC = /LIBPATH:$(LIBDIR) $(VBSECLIB)
### For ITS
LIBITS =  /LIBPATH:$(LIBDIR) $(VBLIBITS)
# For in-process OTS
LIBOTS = /LIBPATH:$(LIBDIR) $(VBLIBOTS)
# For pluggable transport
LIBPLUG = /LIBPATH:$(LIBDIR) $(VBLIBPLUG)

# ORB libraries
LIBORBCORE = /LIBPATH:$(LIBDIR) $(VBORBCORELIB)
LIBIR = /LIBPATH:$(LIBDIR) $(VBIRLIB)
LIBDYNANY = /LIBPATH:$(LIBDIR) $(VBDYNANYLIB)
LIBLOCSVC = /LIBPATH:$(LIBDIR) $(VBLOCSVCLIB)

### Standard ITS IDL files
#
COSTX_IDL =	$(VBROKERDIR)\idl\CosTransactions.idl
OTS_IDL =	$(VBROKERDIR)\idl\VISTransactions.idl

### Compiler flags
CCFLAGS    = $(CCINCLUDES) $(DEBUG) $(CCDEFS) 

### Standard build rules for .cpp files

.SUFFIXES: .CPP .C .obj .h .hh .java .class

.C.obj:
	$(CC) $(CCFLAGS) -c /Tp $< 

.CPP.obj:
	$(CC) $(CCFLAGS) -c /Tp $< 




