Files
epics-base/configure/os/CONFIG.linux-x86-borland.linux-x86-borland
2004-01-26 20:02:37 +00:00

225 lines
6.9 KiB
Plaintext

# CONFIG.linux-x86-borland.linux-x86-borland
#
# $Id$
#
# Definitions for linux-x86-borland host - linux-x86-borland target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86-borland.linux-x86-borland
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
SHRLIB_CFLAGS =
GNU_DIR = /usr
KYLIX=1
BORLAND_INC_STLPORT = $(BORLAND)/include/stlport
BORLAND_INC = $(BORLAND)/include
BORLAND_LIB = $(BORLAND)/lib
BORLAND_BIN = $(BORLAND)/bin
WINLINK = $(BORLAND_BIN)/ilink -q
#
# Configure Borland C compiler
# -q suppress compiler identification banner
# -a8 quad word alignment
#CCLINKOPT = -q -a8 -I/usr/include
CCLINKOPT = -q -a8
CC = $(BORLAND_BIN)/bc++ $(CCLINKOPT)
LD = $(BORLAND_BIN)/bc++ -r
RANLIB =
#
# __STDC__=0 works but not as cleanly as with
# Microsoft Visual C++.
# The Borland header files use ifdef __STDC__
# to disable many nice things. This is overridden
# by defining NO_BORLAND_STDC in the Makefile.
#
ifdef NO_BORLAND_STDC
CONFORM_CFLAGS_ANSI =
CONFORM_CFLAGS_STRICT =
else
CONFORM_CFLAGS_ANSI = -D__STDC__=0
CONFORM_CFLAGS_STRICT = -D__STDC__=0
endif
CONFORM_CFLAGS_TRAD =
# -w display warnings on
# -g0 no limit to warning messages
# some warning message here are always disabled because they are
# trivial and numerous
# -w-8012 Comparing signed and unsigned values
# -w-8060 Possibly incorrect assignment
# -w-8071 Conversion may lose significant digits
WARN_CFLAGS_YES = -w -g0 -w-8012 -w-8060 -w-8071 -w-dup
# -w- display warnings off
WARN_CFLAGS_NO = -w-
#
# -k- turn off standard stack frame
# -H- turn off precompiled headers
# -R- don't include browser info in .obj files
# -O1 optimization for size
# -v- turn off source debugging
# -vi control expansion of inline functions
OPT_CFLAGS_YES = -k- -H- -R- -O1 -v- -vi
#
OPT_CFLAGS_NO =
# OS vendor c preprocessor
CPP = $(BORLAND_BIN)/bcpp
# Configure OS vendor C++ compiler
#
# __STDC__=0 works but not as cleanly as with
# Microsoft Visual C++.
# The Borland header files use ifdef __STDC__
# to disable many nice things. This is overridden
# by defining NO_BORLAND_STDC in the Makefile.
#
CCC = $(BORLAND_BIN)/bc++ $(CCLINKOPT)
ifndef NO_BORLAND_STDC
CONFORM_CXXFLAGS_NORMAL = -D__STDC__=0
CONFORM_CXXFLAGS_STRICT = -D__STDC__=0
endif
# -w display warnings on
# -g0 no limit to warning messages
# -w-8012 Comparing signed and unsigned values
# -w-8060 Possibly incorrect assignment
# -w-8071 Conversion may lose significant digits
# -w-8008 Condition is always true or always false (compile time
# know template parameters causes this to spew garbage)
# -w-8027 Functions containing reserved words are not expanded inline
# (Some compilers are better than others with inline)
# -w-8066 Unreachable code (compile time know template parameters
# causes this to spew garbage)
# -w-8080 'identifier' declared but never used
# (instantiating unused static const external parameters is
# anachronistic compiler practice)
# -w-8004 'identifier' is assigned a value that is never used
# (compile time know template parameters
# causes this to spew garbage)
# -w-8026 Functions with exception specifications are not expanded inline
#
WARN_CXXFLAGS_YES = -w -g0 -w-8012 -w-8060 -w-8071 -w-8008 -w-8027 -w-8066 -w-8080 -w-8004 -w-8026
# -w- display warnings off
WARN_CXXFLAGS_NO = -w-
#
# -k- turn off standard stack frame
# -H- Turn off precompiled headers
# -R- Don't include browser info in .obj files
# -O1 optimization for size
# -v- turn off source debugging
# -vi control expansion of inline functions
OPT_CXXFLAGS_YES = -k- -H- -R- -O1 -v- -vi
#
OPT_CXXFLAGS_NO =
# -c case sensitive linking
# -C clear state before linking
# -Gi generate import library
# -Gn no state files
# -Tpd targets a Windows .DLL file
# -x no map
# -w display warnings on
#LINK_OPT_FLAGS_YES = -c -C -Gi -Gn -Tpd -x -w
#LINK_OPT_FLAGS_NO = -c -C -Gi -Gn -Tpd -x -w-
#Linux_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT)) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
OPT_LDFLAGS =
ARCH_DEP_CFLAGS=
# to identify the general architecture class:
# should be BSD, SYSV, WIN32, ...
# is: WIN32, sun4, hpux, linux, ...
#
OS_CLASS=Linux
OBJ=.o
# Problem: BorlandC does not recognize *.cc as C++ source,
# we have to compile xx.cc using the flag -P xx.cc,
SOURCE_CXXFLAG = -P
# Operating system flags
OP_SYS_CFLAGS =
#
# Borland specific include files
#
OP_SYS_INCLUDES = -I/usr/include
#
#-------------------------------------------------------
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS= $(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).so, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).a, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
SHRLIB_DEPLIBS= $(foreach lib,$(LIB_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).so, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).a, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_SYS_DEPLIBS= $(foreach lib,$(PROD_SYS_LIBS), \
$(firstword $(wildcard \
/lib/$(LIB_PREFIX)$(lib).so \
/lib/$(LIB_PREFIX)$(lib).a \
/usr/lib/$(LIB_PREFIX)$(lib).so \
/usr/lib/$(LIB_PREFIX)$(lib).a) \
$(lib)))
PROD_LDLIBS = $(addprefix lib, $($*_LDLIBS)) \
$(notdir $(PROD_DEPLIBS)) \
$(notdir $(PROD_SYS_DEPLIBS)) \
$(addprefix lib, $($*_SYS_LIBS) $(USR_SYS_LIBS))
SHRLIB_LDLIBS = $(addprefix lib, $($*_LDLIBS)) \
$(notdir $(SHRLIB_DEPLIBS)) \
$(addprefix lib, $($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) $(LDLIBS)
LDLIBS_STATIC_YES = LDLIBS
LDLIBS_SHARED_NO = LDLIBS
LDLIBS_SHARED_YES = LDLIBS
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
empty:=
space:= $(empty) $(empty)
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
SHRLIB_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(SHRLIB_DEPLIBS))
PRODDIR_LDFLAGS = -L$(subst $(space),:,$(sort $(PROD_DEPLIB_DIRS) $(BORLAND_LIB)))
SHRLIBDIR_LDFLAGS = -L$(subst $(space),:,$(sort $(SHRLIB_DEPLIB_DIRS) $(BORLAND_LIB)))
# -c case sensitive linking
# -C clear state before linking
# -Gn no state files
# -Tpe targets a Windows .EXE file
# -x no map
# -w display warnings on
LDFLAGS += -c -C -Gn -x -w
LINKLIBS=rtl.a visualclx.a rtle.a libborcrtl.a libborstl.a libborunwind.a
LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS) -Tpe -w-dup
LINK.cpp += $(PROD_LDFLAGS) borinit.o /usr/lib/crt1.o $(PROD_LD_OBJS)
LINK.cpp += , $@ ,,$(LINKLIBS) $(PROD_LDLIBS)
LINK.shrlib = $(WINLINK) $(STATIC_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS) -Tpd -Gi
LINK.shrlib+= $(LIB_LDFLAGS) borinitso.o $(LIBRARY_LD_OBJS)
LINK.shrlib+= , $@ ,,$(LINKLIBS) $(SHRLIB_LDLIBS)