#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
#     National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
#     Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution. 
#*************************************************************************

#---------------------------------------------------------------
# EPICS Base directories

EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH)
EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)
ifdef T_A
  EPICS_BASE_LIB    = $(EPICS_BASE)/lib/$(T_A)
  EPICS_BASE_BIN    = $(EPICS_BASE)/bin/$(T_A)
endif

#---------------------------------------------------------------
# EPICS Base Ioc libraries 

EPICS_BASE_IOC_LIBS += dbRecStd dbCore ca Com 

#---------------------------------------------------------------
# EPICS Base Host libraries 

EPICS_BASE_HOST_LIBS += cas gdd
EPICS_BASE_HOST_LIBS += ca Com

#---------------------------------------------------------------
# Version number for base shared libraries (and win32 products)

ifdef BASE_TOP
  # Unix lib.so.<v.r.m>  Darwin lib.<v.r.m>.dylib
  SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
  # Windows only allows 2 levels of version numbering
  PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
  BASE_CPPFLAGS += -DUSE_TYPED_RSET
endif # BASE_TOP

#---------------------------------------------------------------
# Base c preprocessor flags

# osithread default stack
OSITHREAD_USE_DEFAULT_STACK = NO
OSITHREAD_DEFAULT_STACK_FLAGS_YES = -DOSITHREAD_USE_DEFAULT_STACK

BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))

#---------------------------------------------------------------
# Where to find the installed build tools
#   Windows does not like commands with relative paths starting ../
#   but the Perl scripts in TOP/src/tools are OK

TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(TOP)/src/tools/$(1)))

#---------------------------------------------------------------
# EPICS Base build tools and tool flags

MAKEBPT                    = $(TOOLS)/makeBpt$(HOSTEXE)
DBEXPAND                   = $(PERL) $(TOOLS)/dbdExpand.pl
DBTORECORDTYPEH            = $(PERL) $(TOOLS)/dbdToRecordtypeH.pl
DBTOMENUH                  = $(PERL) $(TOOLS)/dbdToMenuH.pl
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
CONVERTRELEASE             = $(PERL) $(call FIND_TOOL,convertRelease.pl)
FULLPATHNAME               = $(PERL) $(TOOLS)/fullPathName.pl
TAPTOJUNIT                 = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
GENVERSIONHEADER           = $(PERL) $(TOOLS)/genVersionHeader.pl $(QUIET_FLAG)

#---------------------------------------------------------------
# tools for installing libraries and products
INSTALL = $(PERL) $(TOOLS)/installEpics.pl $(QUIET_FLAG)
INSTALL_PRODUCT = $(INSTALL)
INSTALL_LIBRARY = $(INSTALL)

#---------------------------------------------------------------
# tools for making header dependancies and variable replacement
MKMF                       = $(PERL) $(TOOLS)/mkmf.pl
REPLACEVAR                 = $(PERL) $(TOOLS)/replaceVAR.pl

#---------------------------------------------------------------
# Our versions of lex (flex) and yacc (antelope)
EYACC = $(TOOLS)/antelope$(HOSTEXE)
ELEX = $(TOOLS)/e_flex$(HOSTEXE) -S$(EPICS_BASE)/include/flex.skel.static

YACC  = $(EYACC)
LEX   = $(ELEX)

#---------------------------------------------------------------
# The 3.15 version of msi supports new options

MSI3_15 = $(EPICS_BASE_HOST_BIN)/msi
