New files for Borland win32 build.

This commit is contained in:
Janet B. Anderson
2000-04-11 20:07:40 +00:00
parent bc9ab2acb3
commit d8117bc035
3 changed files with 245 additions and 0 deletions

218
config/CONFIG.Host.Borland Normal file
View File

@@ -0,0 +1,218 @@
# CONFIG.Host.Borland
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Borland
# Use std path variables from ms
HOME = $(HOMEDRIVE)$(HOMEPATH)
#
#
ANSI = ACC
CPLUSPLUS = CCC
#
#
WINLINK = ilink32
RCCMD = brcc32 -l0x409 -fo$@ $<
ARCMD = tlib $@
#
# Configure OS vendor C compiler
CCLINKOPT = -WM -D_WIN32
ACC = bcc32 $(CCLINKOPT)
#
# __STDC__=0 is a real great idea of Jeff that gives us both:
# 1) define STDC for EPICS code (pretend ANSI conformance)
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
# because MS uses: if __STDC__ ... disable many nice things
#
ACC_ANSI = $(ACC) -D__STDC__=0
ACC_STRICT = $(ACC) -D__STDC__=0
ACC_TRAD = $(ACC) /nologo
#
ACC_WARN_YES = -w -g0
ACC_WARN_NO = -w-
#
# -O1 optimization for size
# -k- turn off standard stack frame
# -H- Turn off precompiled headers
# -R- Don't include browser info in .obj files
ACC_OPT_YES = -k- -H- -R- -O1
#
ACC_OPT_NO =
#
# no special libs for static link
#
ACC_SLIBS_YES=
ACC_SLIBS_NO=
# Configure OS vendor C++ compiler
#
# __STDC__=0 is a real great idea of Jeff that gives us both:
# 1) define STDC for EPICS code (pretend ANSI conformance)
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
# because MS uses: if __STDC__ ... disable many nice things
#
CCC = bcc32 $(CCLINKOPT)
CCC_NORMAL = $(CCC) -D__STDC__=0
CCC_STRICT = $(CCC) -D__STDC__=0
CCC_TEMPL_INST_FLAG =
#
CCC_WARN_YES = -w -g0
CCC_WARN_NO = -w-
#
# -O1 optimization for size
# -k- turn off standard stack frame
# -H- Turn off precompiled headers
# -R- Don't include browser info in .obj files
CCC_OPT_YES = -k- -H- -R- -O1
#
CCC_OPT_NO =
#
# no special libs for static link
#
CCC_SLIBS_YES=
CCC_SLIBS_NO=
PROD_VERSION=3.13
# -w display warnings on
# -C clear state before linking
# -Gn no state files
# -x no map
# -Gi generate import library
# -Tpd this flag specifies the output file type
# -aa this flag specifies the application type
# -c case sensitive linking
LINK_OPT_FLAGS_YES = -w -C -Gn -x -Gi -Tpd -aa -c
LINK_OPT_FLAGS_NO = -w- -C -Gn -x -Gi -Tpd -aa -c
WIN32_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
OPT_LDFLAGS =
ARCH_DEP_CFLAGS=
# to identify the general architecture class:
# should be BSD, SYSV, WIN32, ...
# is: WIN32, sun4, hpux, linux, ...
#
ARCH_CLASS=WIN32
# ifdef WIN32 looks better that ifeq ($(ARCH_CLASS),WIN32) ??
WIN32=1
EXE=.exe
OBJ=.obj
RES=.res
# 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$(INCLUDE)
#
OP_SYS_LDLIBS =
#
# specify dll .def file only if it exists
#
DLL_DEF_FLAG = $(addprefix /def:,$(wildcard ../$(LIBRARY).def))
# HOST_OPT_FLAGS is part of CFLAGS/CXXFLAGS,
# which in turn are used in COMPILE.c[c]
#
# If we compile a .c, .cc into an $(OBJ),
# we test if this object is part of the
# library objects LIBOBJS.
# If so, we define _WINDLL so that
# e.g. include/shareLib.h works correctly.
#
HOST_OPT_FLAGS += $(subst $@, /_WINDLL, $(findstring $@,$(LIBOBJS)))
#
# A WIN32 dll has three parts:
# x.dll: the real dll (SHRLIBNAME)
# x.lib: what you link to progs that use the dll (LIBNAME)
# x.exp: what you need to build the dll (in no variable)
#
LINK.shrlib = $(WINLINK) $(WIN32_DLLFLAGS) -L$(LIB) -L$(LIB)\\Psdk c0d32.obj
# adjust names of libraries to build
#
# But: if there are no objects LIBOBJS to include
# in this library (may be for e.g. base/src/libCompat
# on some archs), don't define (and build) any library!
SHRLIBNAME = $(LIBRARY).dll
#
# Under WIN32 we have the unique situation where the DLL link creates the
# DLL link library xxx.lib and we need to be very careful to avoid replacing
# the xxx.lib created by the dll link with an xxx.lib created by $(AR).
# Therefore, the object library is named xxxObj.lib
#
# SHARED_LIBRARIES is YES if we are building a DLL and NO if we aren't
#
DLL_LINK_LIBNAME_YES = $(LIBRARY).lib
DLL_LINK_LIBNAME = $(DLL_LINK_LIBNAME_$(SHARED_LIBRARIES))
LIBNAME = $(LIBRARY)Obj.lib
# dll install location
INSTALL_SHRLIB = $(INSTALL_BIN)
#--------------------------------------------------
# Dependancy definitions
OBJECT_LIB_EXT_YES = Obj.lib # object library extension for static build
OBJECT_LIB_EXT_NO = .lib # object library extension for dynamic build
OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))_LIBS),\
$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT)))
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
# by default the libraries used when linking the DLL are just
# PROD_LIBS ans SYS_PROD_LIBS minus the DLL name
DLL_LIBS = $(subst $(LIBRARY),, $(PROD_LIBS))
#
# EPICS libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
DLL_DEPLIBS = $(foreach lib,$(DLL_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
USR_LDLIBS = $(PRODNAME_DEPLIBS) $(PROD_DEPLIBS) $(USR_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib)
DLL_LDLIBS = $(DLL_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
#multithreaded
LIBSUF=mt
# -w display warnings on
# -C clear state before linking
# -Gn no state files
# -x no map
# -c case sensitive linking
LDFLAGS += -w -C -Gn -x -c -L$(LIB) -L$(LIB)\\Psdk
LINKSTARTUP = c0x32.obj
LINKLIBS=import32.lib cw32$(LIBSUF).lib
LINK.c = $(WINLINK) $(LDFLAGS) $(LINKSTARTUP)
LINK.cc = $(WINLINK) $(LDFLAGS) $(LINKSTARTUP)

View File

@@ -0,0 +1,19 @@
# CONFIG_HOST_ARCH.Borland
#
EXE=.exe
CP =$(PERL) $(EPICS_BASE_HOST_BIN)/cp.pl
MV =$(PERL) $(EPICS_BASE_HOST_BIN)/mv.pl
RM =$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -f
MKDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/mkdir.pl
RMDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -rf
FN =$(PERL) $(EPICS_BASE_HOST_BIN)/fullName.pl
CHMOD=echo
ECHO=echo
WIND_HOST_TYPE = x86-win32
# Use std path variables from ms
HOME = $(HOMEDRIVE)$(HOMEPATH)

View File

@@ -0,0 +1,8 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
SHARED_LIBRARIES = YES