From ca78451122e963982b80ad1f9571c647e76a44f2 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Fri, 9 Aug 2019 13:33:41 +0200 Subject: [PATCH] move PSI specifics out to CONFIG_SITE. files --- configure/os/CONFIG.Common.UnixCommon | 6 +- configure/os/CONFIG.Common.vxWorksCommon | 49 ++++------------ configure/os/CONFIG_SITE.Common.UnixCommon | 2 + configure/os/CONFIG_SITE.Common.vxWorksCommon | 58 +++++++++++++++++-- 4 files changed, 69 insertions(+), 46 deletions(-) create mode 100644 configure/os/CONFIG_SITE.Common.UnixCommon diff --git a/configure/os/CONFIG.Common.UnixCommon b/configure/os/CONFIG.Common.UnixCommon index c11d26520..add84873e 100644 --- a/configure/os/CONFIG.Common.UnixCommon +++ b/configure/os/CONFIG.Common.UnixCommon @@ -18,10 +18,8 @@ OBJ = .o LIB_PREFIX = lib LIB_SUFFIX = .a SHRLIB_SUFFIX_BASE = .so -#SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(SHRLIB_VERSION)) -SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE) -#LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(LOADABLE_SHRLIB_VERSION)) -LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE) +SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(SHRLIB_VERSION)) +LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(LOADABLE_SHRLIB_VERSION)) LOADABLE_SHRLIB_PREFIX = lib #------------------------------------------------------- diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon index a9378d658..f28f0e327 100644 --- a/configure/os/CONFIG.Common.vxWorksCommon +++ b/configure/os/CONFIG.Common.vxWorksCommon @@ -63,7 +63,6 @@ VXWORKS_MAJOR_VERSION = $(basename $(basename $(VXWORKS_VERSION))) # These are needed for vxWorks 6.x; the GNU toolset version number # is in the path to the compiler tools: -VX_GNU_VERSION_5 = 2.96 VX_GNU_VERSION_6.0 = 3.3.2 VX_GNU_VERSION_6.1 = 3.3.2 VX_GNU_VERSION_6.2 = 3.3.2 @@ -74,17 +73,9 @@ VX_GNU_VERSION_6.6 = 4.1.2 VX_GNU_VERSION_6.7 = 4.1.2 VX_GNU_VERSION_6.8 = 4.1.2 VX_GNU_VERSION_6.9 = 4.3.3 -VX_GNU_VERSION_6 = $(VX_GNU_VERSION_$(VXWORKS_VERSION)) -VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_MAJOR_VERSION)) +VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_VERSION)) VX_GNU_MAJOR_VERSION = $(basename $(basename $(VX_GNU_VERSION))) -VX_GNU_MINOR_VERSION = $(basename $(patsubst $(VX_GNU_MAJOR_VERSION).%,%,$(VX_GNU_VERSION))) - -# gcc version before 3.4 are "old" and need special treatment -VX_OLD_GCC_2 = OLD -VX_OLD_GCC_3.3 = OLD -VX_OLD_GCC_3 = $(VX_OLD_GCC_3.$(VX_GNU_MINOR_VERSION)) -VX_OLD_GCC = $(VX_OLD_GCC_$(VX_GNU_MAJOR_VERSION)) #-------------------------------------------------- # Fix old Linux WIND_HOST_TYPE @@ -94,21 +85,14 @@ endif #-------------------------------------------------- # vxWorks directory definitions -VX_DIR_5 = $(WIND_BASE) -VX_DIR_6 = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION) -VX_DIR = $(VX_DIR_$(VXWORKS_MAJOR_VERSION)) +VX_DIR = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION) -VX_INCLUDE_DIRS_5 = $(VX_DIR)/target/h -VX_INCLUDE_DIRS_6 = $(VX_DIR)/target/h $(VX_DIR)/target/h/wrn/coreip -GNU_TARGET_INCLUDE_DIR = $(VX_INCLUDE_DIRS_$(VXWORKS_MAJOR_VERSION)) -TARGET_CPPFLAGS = -isystem $(VX_DIR)/target/h +GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/target/h $(VX_DIR)/target/h/wrn/coreip #-------------------------------------------------- # vxWorks GNU directories -GNU_DIR_5 = $(WIND_BASE)/host/$(WIND_HOST_TYPE) -GNU_DIR_6 = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE) -GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION)) +GNU_DIR = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE) #-------------------------------------------------- # This finds nm on any supported VxWorks version @@ -132,7 +116,7 @@ export TOOL_FAMILY = GNU #-------------------------------------------------- # Operating system flags OP_SYS_CPPFLAGS += -DvxWorks=vxWorks -OP_SYS_CFLAGS += -fno-builtin -fno-strict-aliasing +OP_SYS_CFLAGS += -fno-builtin # Fix for vxWorks headers that use macros defined in vxWorks.h but # which don't actually include vxWorks.h themselves, for example the @@ -149,23 +133,12 @@ OPT_CXXFLAGS_YES = -O2 # code flags CODE_CFLAGS = # -# For gcc versions before 3.4 we need this g++ compiler flag -# However WindRiver says gcc 3.3 does not need it any more -# which would allow to build vxWorks 6 without this flag. -# Maybe we can live without it at the penalty of larger code. -# See vxWorks 5 docs/gnu2.96+ppc/gcc.html -# chapter 4.5 "Where's the Template?" -CODE_CXXFLAGS_OLD = -fno-implicit-templates -CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VX_OLD_GCC)) - -#-------------------------------------------------- -# Modules we cannot build with old compiler - -PV_MODULES = pv% normativeTypes -SKIP_BUILDS_5 = $(PV_MODULES) -SKIP_BUILDS_OLD = $(PV_MODULES) -SKIP_BUILDS_6 = $(SKIP_BUILDS_$(VX_OLD_GCC)) -SKIP_BUILDS = $(SKIP_BUILDS_$(VXWORKS_MAJOR_VERSION)) +# For vxWorks versions before 6.3 we need this g++ compiler flag +CODE_CXXFLAGS_6.0 = -fno-implicit-templates +CODE_CXXFLAGS_6.1 = -fno-implicit-templates +CODE_CXXFLAGS_6.2 = -fno-implicit-templates +CODE_CXXFLAGS_6 = $(CODE_CXXFLAGS_$(VXWORKS_VERSION)) +CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION)) #-------------------------------------------------- # no shared libs for vxWorks diff --git a/configure/os/CONFIG_SITE.Common.UnixCommon b/configure/os/CONFIG_SITE.Common.UnixCommon new file mode 100644 index 000000000..f56716372 --- /dev/null +++ b/configure/os/CONFIG_SITE.Common.UnixCommon @@ -0,0 +1,2 @@ +SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE) +LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE) diff --git a/configure/os/CONFIG_SITE.Common.vxWorksCommon b/configure/os/CONFIG_SITE.Common.vxWorksCommon index 345420381..599c892bf 100644 --- a/configure/os/CONFIG_SITE.Common.vxWorksCommon +++ b/configure/os/CONFIG_SITE.Common.vxWorksCommon @@ -2,6 +2,60 @@ # # Site specific definitions for vxWorks target builds. +#### Fixes for CONFIG.Common.vxWorksCommon ####### + +# These are needed for vxWorks 6.x; the GNU toolset version number +# is in the path to the compiler tools: +VX_GNU_VERSION_5 = 2.96 +VX_GNU_VERSION_6 = $(VX_GNU_VERSION_$(VXWORKS_VERSION)) +VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_MAJOR_VERSION)) +VX_GNU_MINOR_VERSION = $(basename $(patsubst $(VX_GNU_MAJOR_VERSION).%,%,$(VX_GNU_VERSION))) + +# gcc version before 3.4 are "old" and need special treatment +VX_OLD_GCC_2 = OLD +VX_OLD_GCC_3.3 = OLD +VX_OLD_GCC_3 = $(VX_OLD_GCC_3.$(VX_GNU_MINOR_VERSION)) +VX_OLD_GCC = $(VX_OLD_GCC_$(VX_GNU_MAJOR_VERSION)) + +# vxWorks directory definitions +VX_DIR_5 = $(WIND_BASE) +VX_DIR_6 = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION) +VX_DIR = $(VX_DIR_$(VXWORKS_MAJOR_VERSION)) + +VX_INCLUDE_DIRS_5 = $(VX_DIR)/target/h +VX_INCLUDE_DIRS_6 = $(VX_DIR)/target/h $(VX_DIR)/target/h/wrn/coreip +GNU_TARGET_INCLUDE_DIR = $(VX_INCLUDE_DIRS_$(VXWORKS_MAJOR_VERSION)) +TARGET_CPPFLAGS = -isystem $(VX_DIR)/target/h + +# vxWorks GNU directories + +GNU_DIR_5 = $(WIND_BASE)/host/$(WIND_HOST_TYPE) +GNU_DIR_6 = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE) +GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION)) + +# Operating system flags +OP_SYS_CFLAGS += -fno-strict-aliasing + +# For gcc versions before 3.4 we need this g++ compiler flag +# However WindRiver says gcc 3.3 does not need it any more +# which would allow to build vxWorks 6 without this flag. +# Maybe we can live without it at the penalty of larger code. +# See vxWorks 5 docs/gnu2.96+ppc/gcc.html +# chapter 4.5 "Where's the Template?" +CODE_CXXFLAGS_OLD = -fno-implicit-templates +CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VX_OLD_GCC)) + +#-------------------------------------------------- +# Modules we cannot build with old compiler + +PV_MODULES = pv% normativeTypes +SKIP_BUILDS_5 = $(PV_MODULES) +SKIP_BUILDS_OLD = $(PV_MODULES) +SKIP_BUILDS_6 = $(SKIP_BUILDS_$(VX_OLD_GCC)) +SKIP_BUILDS = $(SKIP_BUILDS_$(VXWORKS_MAJOR_VERSION)) + +############# + # Compiler options can vary with the vxWorks version number, so we # need to know that. Do not include any third-level digits. @@ -19,8 +73,4 @@ VXWORKS_VERSION = 6.9 # CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon file. # WIND_BASE is where you installed the Wind River software. - -#WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS) -#WIND_BASE = /usr/local/vw/vxWorks-$(VXWORKS_VERSION) -#WIND_BASE = /ade/vxWorks/$(VXWORKS_VERSION) WIND_BASE = /afs/psi.ch/project/vxworks/VxWorks$(VXWORKS_VERSION)