Another goal in in using epics on more than one host architecture which has
not been previously mentioned in the tech-talk dialog is to have application
developers automatically have the correct paths set. Since the `arch` command
does not always exist or yield the proper epics architecture value, the
startup files used to properly define epics path and environement variables
described in Chapter 4: Getting Started and in Chapter 7: Site Manager Interface
in the "EPICS Source/Release Control" manual have to be modified. Here are the
changes that we are currently thinking of proposing.
All epics base and extension developers and epics application developers now
execute a epics startup script when they login. This startup script would
be modified to define a new HOST_ARCH environment variable using the
following statement
setenv HOST_ARCH `/usr/local/epics/startup/HostArch`
where HostArch is the file created by Nick Rees. (The master copy of the
HostArch file would exist in the epics/base/tools directory.)
This new environment variable would then be used as follows.
1) The EPICS startup script will add the following directories to
a user's path (for application development)
./base/bin/$HOST_ARCH
./base/tools
/usr/local/epics/extensions/bin/$HOST_ARCH
2) Developers of base or of both base and extensions have the following
lines in the epics/cshrc file in their development directories.
DVL = `pwd`
set path = ($DVL/base/tools $DVL/base/bin/$HOST_ARCH $oldpath)
rehash
3) Developers of extensions only have the following lines in the
epics/cshrc file in their development directories.
REL = <epics release>
set path = ($REL/base/tools $REL/base/bin/$HOST_ARCH $oldpath)
rehash
4) HOST_ARCH could come from the environment for all builds of base and
extensions and for all builds in the application directories. Then the
CONFIG_SITE file would probably have the following lines
# HOST_ARCH is now an environment variable
ifndef HOST_ARCH
HOST_ARCH=unsupported
endif
Also, how about making something like the following changes to the CONFIG files
to allow a site to optionally specify only a subset of their host architectures
to do cross compiling.
CONFIG_SITE
CROSS_COMPILER_TARGET_ARCHS=mv167 ...
CROSS_COMPILER_HOST_ARCHS=sun4 (cross compile only on sun4)
or
CROSS_COMPILER_HOST_ARCHS= (cross compile on all host archs)
CONFIG
Unconditionaly include CONFIG_COMMON file
(i.e move "ifdef T_A" down)
CONFIG_COMMON
BUILD_ARCHS=$(HOST_ARCH)
ifndef CROSS_COMPILER_HOST_ARCHS
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
else
ifeq ($(HOST_ARCH),$(findstring $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
endif
endif
ifdef T_A
<rest of CONFIG_COMMON file>
endif
Janet
- Replies:
- Re: Building for more than one host architecture watson
- Navigate by Date:
- Prev:
Real-Time Software Engineer Position mcgehee
- Next:
Re: Building for more than one host architecture watson
- Index:
1994
<1995>
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Building for more than one host architecture Tony Carter, MIT Bates Linac
- Next:
Re: Building for more than one host architecture watson
- Index:
1994
<1995>
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|