From 4ca2bc86e50fde60d160ee9992fcdb935610d93b Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 13 Nov 2006 20:31:07 +0000 Subject: [PATCH] Changed configuration for vxWorks 6.x; now uses the same files as vx 5.x. Removed the vxWorks6-mvXXXX targets, use vxWorks-ppc604_long or similar. --- configure/os/CONFIG.Common.vxWorks6-mv2100 | 28 ---- configure/os/CONFIG.Common.vxWorks6-mv5100 | 28 ---- configure/os/CONFIG.Common.vxWorks6Common | 155 ------------------ configure/os/CONFIG.Common.vxWorksCommon | 46 ++++-- configure/os/CONFIG_SITE.Common.vxWorksCommon | 30 +++- .../os/CONFIG_SITE.linux-x86.vxWorks6-mv2100 | 12 -- .../os/CONFIG_SITE.linux-x86.vxWorks6-mv5100 | 12 -- .../CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 | 12 -- .../CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 | 12 -- .../os/CONFIG_SITE.linux-x86_64.vxWorksCommon | 11 -- 10 files changed, 61 insertions(+), 285 deletions(-) delete mode 100644 configure/os/CONFIG.Common.vxWorks6-mv2100 delete mode 100644 configure/os/CONFIG.Common.vxWorks6-mv5100 delete mode 100644 configure/os/CONFIG.Common.vxWorks6Common delete mode 100644 configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv2100 delete mode 100644 configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv5100 delete mode 100644 configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 delete mode 100644 configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 delete mode 100644 configure/os/CONFIG_SITE.linux-x86_64.vxWorksCommon diff --git a/configure/os/CONFIG.Common.vxWorks6-mv2100 b/configure/os/CONFIG.Common.vxWorks6-mv2100 deleted file mode 100644 index bb4db7abe..000000000 --- a/configure/os/CONFIG.Common.vxWorks6-mv2100 +++ /dev/null @@ -1,28 +0,0 @@ -# CONFIG.Common.vxWorks6-mv2100 -# -# $Id$ -# This file is maintained by the build community. -# -# Definitions for WRS vxWorks version 6.0 mv2100 target -# target archs with at least 32MB -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6-mv2100 -#------------------------------------------------------- - -# Include definitions common to all vxWorks version 6.0 targets -include $(CONFIG)/os/CONFIG.Common.vxWorks6Common - -# Vx GNU cross compiler suffix -CMPLR_SUFFIX = ppc - -ARCH_CLASS = ppc - -# Architecture specific build flags - -ARCH_DEP_CPPFLAGS = -DCPU=PPC603 -ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align -mlongcall - -#CONFORM_CFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic -#CONFORM_CFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic -#CONFORM_CXXFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic -#CONFORM_CXXFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic -#CODE_CXXFLAGS = -DOVERRIDE_fno_implicit_templates diff --git a/configure/os/CONFIG.Common.vxWorks6-mv5100 b/configure/os/CONFIG.Common.vxWorks6-mv5100 deleted file mode 100644 index 138bf4336..000000000 --- a/configure/os/CONFIG.Common.vxWorks6-mv5100 +++ /dev/null @@ -1,28 +0,0 @@ -# CONFIG.Common.vxWorks6-mv5100 -# -# $Id$ -# This file is maintained by the build community. -# -# Definitions for WRS vxWorks version 6.0 mv5100 target -# target archs with at least 32MB -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6-mv5100 -#------------------------------------------------------- - -# Include definitions common to all vxWorks version 6.0 target archs -include $(CONFIG)/os/CONFIG.Common.vxWorks6Common - -# Vx GNU cross compiler suffix -CMPLR_SUFFIX = ppc - -ARCH_CLASS = ppc - -# Architecture specific build flags - -ARCH_DEP_CPPFLAGS = -DCPU=PPC604 -ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mlongcall - -#CONFORM_CFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic -#CONFORM_CFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic -#CONFORM_CXXFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic -#CONFORM_CXXFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic -#CODE_CXXFLAGS = -DOVERRIDE_fno_implicit_templates diff --git a/configure/os/CONFIG.Common.vxWorks6Common b/configure/os/CONFIG.Common.vxWorks6Common deleted file mode 100644 index 1f13f1680..000000000 --- a/configure/os/CONFIG.Common.vxWorks6Common +++ /dev/null @@ -1,155 +0,0 @@ -# CONFIG.Common.vxWorks6Common -# -# $Id$ -# This file is maintained by the build community. -# -# Definitions for vxWorks version 6.0 target archs -# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6Common -# or CONFIG_SITE..vxWorks6Common -#------------------------------------------------------- - -# Vx valid build types -VALID_BUILDS = Ioc - -#-------------------------------------------------- -# operating system class (include/os/) -OS_CLASS = vxWorks - -#------------------------------------------------------- -# Prefix and suffix definitions -EXE = -OBJ = .o -LIB_PREFIX =lib -LIB_SUFFIX = .a -MUNCH_SUFFIX = .munch - -#------------------------------------------------------- -# Compiler definitions -CMPLR_PREFIX= -CC = $(GNU_BIN)/$(CMPLR_PREFIX)cc$(CMPLR_SUFFIX) -CCC = $(GNU_BIN)/$(CMPLR_PREFIX)cc$(CMPLR_SUFFIX) - -#------------------------------------------------------- -# Library definitions -LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX)) - -#-------------------------------------------------- -# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions - -PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \ - $(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \ - $($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \ - $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \ - $(firstword $($(lib)_DIR) $(INSTALL_LIB))))) - - -PROD_LDLIBS = $(addprefix -l,$($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\ - $($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS)) - -PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS)) -PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) - -#------------------------------------------------------- -# Prod definitions -MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX)) -CTDT_SRCS = $(PRODNAME:%$(EXE)=%_ctdt.c) -CTDT_OBJS = $(PRODNAME:%$(EXE)=%_ctdt$(OBJ)) -NMS = $(PRODNAME:%$(EXE)=%.nm) -MUNCH_DEPENDS = %_ctdt$(OBJ) - -#------------------------------------------------------- -# R3.13 compatability object library definitions -# Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS. -OBJLIB += $(OBJLIB_$(OS_CLASS)) -OBJLIB_SUFFIX = Library.o -OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB))) -OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS))) -PRODTARGETS += $(OBJLIBNAME) -INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%) -OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX)) -INSTALL_MUNCHS += $(OBJLIB_MUNCHNAME:%=$(INSTALL_BIN)/%) -PRODTARGETS += $(OBJLIB_MUNCHNAME) -CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c) -CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ)) -NMS += $(OBJLIBNAME:%$(OBJ)=%.nm) -OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS) -SRC_FILES += $(OBJLIB_SRCS) - -#--------------------------------------------------------------------- -# vxWorks directory definitions (new for vxWorks 6.0) -# WindRiver Workbench directory definitions -GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/vxworks-6.0/target/h -GNU_TARGET_INCLUDE_DIR += $(VX_DIR)/vxworks-6.0/target/h/wrn/coreip - -GNU_DIR = $(VX_DIR)/gnu/3.3.2-vxworks60/x86-linux2 - -#-------------------------------------------------- -# C++ host processing -NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE) - -#-------------------------------------------------- -# The follow 2 exports prevent gnu cross-compiler -# from finding wrong assembler (as). -export WIND_BASE = $(VX_DIR) -export WIND_HOST_TYPE - -#-------------------------------------------------- -# Tornado2.2 and WindRiver Workbench -# The follow export allows vxWorks.h to include gnu header files -export TOOL_FAMILY = GNU - -#-------------------------------------------------- -# Operating system flags -OP_SYS_CPPFLAGS += -DvxWorks -OP_SYS_CFLAGS += -fno-builtin -#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers -OP_SYS_LDFLAGS += - -# Fix for vxWorks headers using macros defined in -# vxWorks.h but not including vxWorks.h -# New for WindRiver Workbench and vxWorks 6.0 -OP_SYS_INCLUDE_CPPFLAGS += -include $(VX_DIR)/vxworks-6.0/target/h/vxWorks.h - -#-------------------------------------------------- -# code flags -CODE_CFLAGS = -# -# WRS still uses an old gnu compiler with a broken -frepo and -# otherwise no automatic template instantiation mechanism as -# is the defacto standard approach today. If we remove this -# flag certain ppc targets will not build. -CODE_CXXFLAGS = -fno-implicit-templates - -#-------------------------------------------------- -# posix c preprocessor flags -POSIX_CPPFLAGS = -D_POSIX_SOURCE - -#-------------------------------------------------- -# no shared libs for vxWorks -SHRLIB_CFLAGS = -SHRLIB_LDFLAGS = - -#-------------------------------------------------- -# osithead use default stack, YES or NO override -OSITHREAD_USE_DEFAULT_STACK = NO - -#-------------------------------------------------- -# Link definitions -LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS) -LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS) - -#-------------------------------------------------- -# Definitions for compile of *_ctdt.c file -CFLAGS_ctdt = $(filter-out -pedantic,$(CFLAGS)) -fdollars-in-identifiers -COMPILE.ctdt = $(CC) -c $(CPPFLAGS) $(CFLAGS_ctdt) $(call PATH_FILTER,$(INCLUDES)) $(SOURCE_FLAG) - -#-------------------------------------------------- -# C preprocessor command -VXCPPFLAGS = $(filter-out $(OP_SYS_INCLUDE_CPPFLAGS),$(CPPFLAGS)) -PREPROCESS.cpp = $(CPP) $(VXCPPFLAGS) $(INCLUDES) $< > $@ - -#-------------------------------------------------- -# Allow site overrides --include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks6Common --include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorks6Common - diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon index 25efb8ecb..6053c29fd 100644 --- a/configure/os/CONFIG.Common.vxWorksCommon +++ b/configure/os/CONFIG.Common.vxWorksCommon @@ -75,11 +75,35 @@ NMS += $(OBJLIBNAME:%$(OBJ)=%.nm) OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS) SRC_FILES += $(OBJLIB_SRCS) +#-------------------------------------------------- +# vxWorks version numbers + +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_6.0 = 3.3.2 +VX_GNU_VERSION_6.1 = 3.3.2 +VX_GNU_VERSION_6.2 = 3.3.2 +VX_GNU_VERSION_6.3 = 3.4.4 +VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_VERSION)) + #-------------------------------------------------- # vxWorks directory definitions -# Tornado directory definitions -GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/target/h -GNU_DIR = $(VX_DIR)/host/$(WIND_HOST_TYPE) +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)) + +#-------------------------------------------------- +# 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)) #-------------------------------------------------- # C++ host processing @@ -88,7 +112,7 @@ NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE) #-------------------------------------------------- # The follow 2 exports prevent gnu cross-compiler # from finding wrong assembler (as). -export WIND_BASE = $(VX_DIR) +export WIND_BASE export WIND_HOST_TYPE #-------------------------------------------------- @@ -105,17 +129,19 @@ OP_SYS_LDFLAGS += # Fix for vxWorks headers using macros defined in # vxWorks.h but not including vxWorks.h -OP_SYS_INCLUDE_CPPFLAGS += -include $(GNU_TARGET_INCLUDE_DIR)/vxWorks.h +OP_SYS_INCLUDE_CPPFLAGS += -include $(VX_DIR)/target/h/vxWorks.h #-------------------------------------------------- # code flags CODE_CFLAGS = # -# WRS still uses an old gnu compiler with a broken -frepo and -# otherwise no automatic template instantiation mechanism as -# is the defacto standard approach today. If we remove this -# flag certain ppc targets will not build. -CODE_CXXFLAGS = -fno-implicit-templates +# For vxWorks versions before 6.3 we need this g++ compiler flag +CODE_CXXFLAGS_5 = -fno-implicit-templates +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)) #-------------------------------------------------- # posix c preprocessor flags diff --git a/configure/os/CONFIG_SITE.Common.vxWorksCommon b/configure/os/CONFIG_SITE.Common.vxWorksCommon index e236cea7f..b7c514895 100644 --- a/configure/os/CONFIG_SITE.Common.vxWorksCommon +++ b/configure/os/CONFIG_SITE.Common.vxWorksCommon @@ -1,11 +1,31 @@ # CONFIG_SITE.Common.vxWorksCommon # -# Site specific definitions for vxWorks target builds +# Site specific definitions for vxWorks target builds. # Only the local epics system manager should modify this file -# Sites may override these definitions in CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon +# Compiler options can vary with the vxWorks version number, so we +# need to know that. However don't include any third-level digits +# because we don't currently need them. -# Tornado directory -VX_DIR = /usr/local/vw/tornado202p1 -#VX_DIR = /usr/local/vw/tornado22-$(ARCH_CLASS) +# Note: vxWorks 5.3 (Tornado 1.x) is not supported + +VXWORKS_VERSION = 5.4 +#VXWORKS_VERSION = 5.5 +#VXWORKS_VERSION = 6.0 +#VXWORKS_VERSION = 6.1 +#VXWORKS_VERSION = 6.2 +#VXWORKS_VERSION = 6.3 + + +# Sites may override the following path for a particular host +# architecture by adding it to the appropriate +# CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon file. + +# WIND_BASE is where you installed the Wind River software. +# Under vxWorks 6.x this is not the same as the old VX_DIR setting + +WIND_BASE = /usr/local/vw/tornado202p1 +#WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS) +#WIND_BASE = /usr/local/vw/vxWorks-$(VXWORKS_VERSION) +#WIND_BASE = /ade/vxWorks/$(VXWORKS_VERSION) diff --git a/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv2100 b/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv2100 deleted file mode 100644 index e8a2a9024..000000000 --- a/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv2100 +++ /dev/null @@ -1,12 +0,0 @@ -# CONFIG_SITE.linux-x86.vxWorks6-mv2100 -# -# $Id$ -# This file is maintained by the build community. -# -# Site override definitions for linux-x86 host - vxWorks6-mv2100 target builds -#------------------------------------------------------- -# WindRiver has changed the directory structure of vxWorks -# This is for VxWorks 6.0 - -VX_DIR = /ade/vxWorks/6.0 - diff --git a/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv5100 b/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv5100 deleted file mode 100644 index c9be5b68a..000000000 --- a/configure/os/CONFIG_SITE.linux-x86.vxWorks6-mv5100 +++ /dev/null @@ -1,12 +0,0 @@ -# CONFIG_SITE.linux-x86.vxWorks6-mv5100 -# -# $Id$ -# This file is maintained by the build community. -# -# Site override definitions for linux-x86 host - vxWorks6-mv5100 target builds -#------------------------------------------------------- -# WindRiver has changed the directory structure of vxWorks -# This is for VxWorks 6.0 - -VX_DIR = /ade/vxWorks/6.0 - diff --git a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 deleted file mode 100644 index 91202680a..000000000 --- a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 +++ /dev/null @@ -1,12 +0,0 @@ -# CONFIG_SITE.linux-x86_64.vxWorks6-mv2100 -# -# $Id$ -# This file is maintained by the build community. -# -# Site override definitions for linux-x86_64 host - vxWorks6-mv2100 target builds -#------------------------------------------------------- -# WindRiver has changed the directory structure of vxWorks -# This is for Tornado 3 (i.e. VxWorks 6.0) - -VX_DIR = /ade/vxWorks/6.0 - diff --git a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 b/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 deleted file mode 100644 index 5bcbd0d80..000000000 --- a/configure/os/CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 +++ /dev/null @@ -1,12 +0,0 @@ -# CONFIG_SITE.linux-x86_64.vxWorks6-mv5100 -# -# $Id$ -# This file is maintained by the build community. -# -# Site override definitions for linux-x86_64 host - vxWorks6-mv5100 target builds -#------------------------------------------------------- -# WindRiver has changed the directory structure of vxWorks -# This is for Tornado 3 (i.e. VxWorks 6.0) - -VX_DIR = /ade/vxWorks/6.0 - diff --git a/configure/os/CONFIG_SITE.linux-x86_64.vxWorksCommon b/configure/os/CONFIG_SITE.linux-x86_64.vxWorksCommon deleted file mode 100644 index 2c1100337..000000000 --- a/configure/os/CONFIG_SITE.linux-x86_64.vxWorksCommon +++ /dev/null @@ -1,11 +0,0 @@ -# CONFIG_SITE.linux-x86_64.vxWorksCommon -# -# $Id$ -# This file is maintained by the build community. -# -# Definitions for linux-x86_64 host - vxWorks target builds -#------------------------------------------------------- - -# SNS override values -#WIND_HOST_TYPE = x86-linux -