diff --git a/config/CONFIG.Host.Borland b/config/CONFIG.Host.Borland new file mode 100644 index 000000000..8a6bfeea4 --- /dev/null +++ b/config/CONFIG.Host.Borland @@ -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) + + diff --git a/config/CONFIG_HOST_ARCH.Borland b/config/CONFIG_HOST_ARCH.Borland new file mode 100644 index 000000000..7b1910d7f --- /dev/null +++ b/config/CONFIG_HOST_ARCH.Borland @@ -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) + diff --git a/config/CONFIG_SITE.Host.Borland b/config/CONFIG_SITE.Host.Borland new file mode 100644 index 000000000..74f6697ee --- /dev/null +++ b/config/CONFIG_SITE.Host.Borland @@ -0,0 +1,8 @@ +# +# $Id$ +# +# Site Specific Configuration Information +# Only the local epics system manager should modify this file + +SHARED_LIBRARIES = YES +