diff --git a/configure/os/CONFIG.win32-x86-borland.Common b/configure/os/CONFIG.win32-x86-borland.Common new file mode 100644 index 000000000..fe432780b --- /dev/null +++ b/configure/os/CONFIG.win32-x86-borland.Common @@ -0,0 +1,22 @@ +# CONFIG.win32-x86-borland.Common +# +# $Id$ +# This file is maintained by the build community. +# +# Definitions for win32-x86 borland compiler host archs +# Sites may override these definitions in CONFIG_SITE.win32-x86-borland.Common +#------------------------------------------------------- + +CP = $(PERL) $(CONFIG)/tools/cp.pl +MV = $(PERL) $(CONFIG)/tools/mv.pl +RM = $(PERL) $(CONFIG)/tools/rm.pl -f +MKDIR = $(PERL) $(CONFIG)/tools/mkdir.pl +RMDIR = $(PERL) $(CONFIG)/tools/rm.pl -rf +ECHO = echo +TOUCH = echo NUL >> + +WIND_HOST_TYPE = x86-win32 +OSITHREAD_USE_DEFAULT_STACK = NO + +HOSTEXE=.exe + diff --git a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland new file mode 100644 index 000000000..3fec98d67 --- /dev/null +++ b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland @@ -0,0 +1,288 @@ +# CONFIG.win32-x86-borland.win32-x86-borland +# +# $Id$ +# This file is maintained by the build community. +# +# Definitions for win32-x86 target arch when host arch is win32-x86 with borland compiler +# Sites may override these definitions in CONFIG_SITE.win32-x86-borland.win32-x86-borland +#------------------------------------------------------- + +# Win32 valid build types and include directory suffixes + +VALID_BUILDS = Host Ioc + +#------------------------------------------------------- + +# Use std path variables from ms +HOME = $(HOMEDRIVE)$(HOMEPATH) + +# +# You currently get Visual C++ even if you ask for GNU. +# +# !! borlund support needed here !! +# +ANSI = ACC +CPLUSPLUS = CCC + +# +# "\ " forces gnu make to keep this as one token +# +MSVISC = c:\\Program\ Files\\DevStudio\\Vc +WINLINK = ilink32 -q + +# -l specifies default language +# -fo Renames the output .RES file +RCCMD = brcc32 -i. -i.. -i$(INSTALL_INCLUDE) -i$(EPICS_BASE_INCLUDE) -l0x409 -fo$@ $< + +ARCMD = tlib $@ $(foreach lib,$(LIBRARY_LD_OBJS),+$(lib)) + +#############BAFCMD = bscmake /nologo /o $@ + +# +# Configure Borland C compiler +# -q suppress compiler identification banner +# -tWM generate a 32-bit multi-threaded target +# -tWD generate a .DLL executable +# -a8 quad word alignment +# -D_WIN32 macro defined to be consistant with Microsoft Visual C++ +# -D_RTLDLL macro defined to use Borland C++ RTL library +CCLINKOPT = -q -tWM -tWD -a8 -D_WIN32 -D_RTLDLL +ACC = bcc32 $(CCLINKOPT) + +# +# __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 +ACC_CONFORM_CFLAGS_ANSI = +ACC_CONFORM_CFLAGS_STRICT = +else +ACC_CONFORM_CFLAGS_ANSI = -D__STDC__=0 +ACC_CONFORM_CFLAGS_STRICT = -D__STDC__=0 +endif +ACC_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 +ACC_WARN_YES = -w -g0 -w-8012 -w-8060 -w-8071 +# -w- display warnings off +ACC_WARN_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 +ACC_OPT_YES = -k- -H- -R- -O1 -v- -vi + +# +ACC_OPT_NO = + +# +# no special libs for static link +# +ACC_STATIC_LDLIBS_YES= +ACC_STATIC_LDLIBS_NO= + +# OS vendor c preprocessor +##############ACC_CPP = cl /E + +# 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 = bcc32 $(CCLINKOPT) +ifdef NO_BORLAND_STDC +CCC_NORMAL = $(CCC) +CCC_STRICT = $(CCC) +else +CCC_CONFORM_CFLAGS_NORMAL = -D__STDC__=0 +CCC_CONFORM_CFLAGS_STRICT = -D__STDC__=0 +endif +CCC_TEMPL_INST_FLAG = + +# -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 +CCC_WARN_YES = -w -g0 -w-8012 -w-8060 -w-8071 +# -w- display warnings off +CCC_WARN_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 +CCC_OPT_YES = -k- -H- -R- -O1 -v- -vi + +# +CCC_OPT_NO = + +# +# no special libs for static link +# +CCC_STATIC_LDLIBS_YES= +CCC_STATIC_LDLIBS_NO= + +PROD_VERSION=3.13 +# -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- +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, ... +# +OS_CLASS=WIN32 + +# ifdef WIN32 looks better that ifeq ($(OS_CLASS),WIN32) ?? +WIN32=1 +BORLANDC=1 + +EXE=.exe +OBJ=.obj +RES=.res +BAF=.bsc +BOF=.sbr + +# Problem: BorlandC does not recognize *.cc as C++ source, +# we have to compile xx.cc using the flag -P xx.cc, +SOURCE_CXXFLAG = -P -D__cplusplus + +# Operating system flags +OP_SYS_CFLAGS = -DBORLAND + +# +# 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)) +DLL_DEF_FLAG = $(subst /,\\,$(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 +LINK.shrlib+= $(LIBRARY_LD_OBJS) , $@ ,,$(LINKLIBS) $(subst /,\\,$(SHRLIB_LDLIBS) $(LIBRARY_LD_RESS)) + + +# 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! +SHRLIB_SUFFIX=.dll +SHRLIBNAME = $(BUILD_LIBRARY:%=%$(SHRLIB_SUFFIX)) + + +# +# 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 = $(BUILD_LIBRARY:%=%.lib) +DLL_LINK_LIBNAME = $(DLL_LINK_LIBNAME_$(SHARED_LIBRARIES)) +LIB_PREFIX= +LIB_SUFFIX=Obj.lib +LIBNAME = $(BUILD_LIBRARY:%=%$(LIB_SUFFIX)) + +# dll install location +INSTALL_SHRLIB = $(INSTALL_BIN) + +#-------------------------------------------------- +# Object lib name suffix +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)) + +#-------------------------------------------------- +# Products dependancy definitions +PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \ + $($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT))) +DEPLIB_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \ + $($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib) + +#-------------------------------------------------- +#Libraries dependancy definitions + +# 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) $(DLL_LIBS),$($(lib)_DIR)/$(lib).lib) + +SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \ + $(SYS_DLL_LIBS:%=%.lib) $(OP_SYS_LDLIBS) + +#-------------------------------------------------- + +#multithreaded import library +LIBSUF=mti +# -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 -Tpe -x -w -L$(LIB) -L$(LIB)\\Psdk +LINKSTARTUP = c0x32.obj +LINKLIBS=import32.lib cw32$(LIBSUF).lib + +LINK.cpp = $(WINLINK) $(LDFLAGS) $(LINKSTARTUP) $(PROD_LD_OBJS) $(PROD_LD_RESS) +LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS)) + +#-------------------------------------------------- + +# override of CONFIG_SITE default +SHARED_LIBRARIES = YES + diff --git a/configure/os/CONFIG_SITE.win32-x86-borland.Common b/configure/os/CONFIG_SITE.win32-x86-borland.Common new file mode 100644 index 000000000..4d5ad9c1e --- /dev/null +++ b/configure/os/CONFIG_SITE.win32-x86-borland.Common @@ -0,0 +1,13 @@ +# CONFIG_SITE.win32-x86-borland.Common +# +# $Id$ +# +# Site specific definitions for win32-x86 borland compiler host +# Only the local epics system manager should modify this file + +# jba overrides +#CROSS_COMPILER_TARGET_ARCHS=vxWorks-486 +CROSS_COMPILER_TARGET_ARCHS= +VX_DIR = D:/tornado +#INSTALL_LOCATION = G:\\testBaseNew +