New files for Borland win32 build.
This commit is contained in:
218
config/CONFIG.Host.Borland
Normal file
218
config/CONFIG.Host.Borland
Normal 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)
|
||||
|
||||
|
||||
19
config/CONFIG_HOST_ARCH.Borland
Normal file
19
config/CONFIG_HOST_ARCH.Borland
Normal 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)
|
||||
|
||||
8
config/CONFIG_SITE.Host.Borland
Normal file
8
config/CONFIG_SITE.Host.Borland
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
Reference in New Issue
Block a user