[ace-users] [installation] having problems building
ACE/TAO forvxworks.
Steve Huston
shuston at riverace.com
Fri Jun 15 07:48:04 CDT 2007
I'm guessing here, and may be totally off, but are you using GNU make?
And do you have ACE_ROOT set to the path of the ACE_wrappers
directory?
-Steve
--
Steve Huston, Riverace Corporation
Would you like ACE to run great on your platform?
See http://www.riverace.com/sponsor.htm
-----Original Message-----
From: ace-users-bounces at cse.wustl.edu
[mailto:ace-users-bounces at cse.wustl.edu] On Behalf Of José Rui Simões
Sent: Friday, June 15, 2007 5:58 AM
To: Thomas Lockhart
Cc: tao-users at cse.wustl.edu; ace-users at cse.wustl.edu
Subject: Re: [ace-users] [installation] having problems building
ACE/TAO forvxworks.
Hi Tom,
I've followed every suggestion you make and adapted the config.h and
platform_macros.GNU files.
Now when I follow the build instructions for ACE when I reach the part
of actually building ACE with make. It replies that it doesn't have
targets specified.
What did I do wrong?
Kind regards.
José Rui
On Tue, 2007-06-12 at 10:05 -0700, Thomas Lockhart wrote:
> Could somebody please help me with some more detailed
> instructions on how to build ACE/TAO for VxWorks?
You did not give any details on what exactly failed. If you have
further
questions please be sure to do so. But here are some suggestions:
Do not bother with the autoconf-based build, since that does not work
for cross-compiling.
You did a native build first to get gperf and tao_idl, right?
I had decent luck building for VxWorks-6.3 and TAO-1.5.8 using the
classic from-source build technique. The results are not yet tested.
In previous versions of TAO I was able to assign TAO_IDL and other
variables in my platform_macros.GNU to get the cross-compilation to
work, but for 1.5.8 I seemed to need to actually create the soft links
in $ACE_ROOT/bin/ from the native build to the VxWorks directory.
I sourced $WIND_BASE/windriver.bash before compiling. That got the
compilers in my path and defined a bunch of environment variables. In
previous versions of VxWorks I defined these variables for myself.
I turned off RTP in platform_macros.GNU since that configuration
seemed
to want a few definitions that did not exist. I understand that RTP is
the configuration that was used by Johnny Willemsen when freshening
the
VxWorks support recently.
Much more of ACE and TAO build for VxWorks than did in the days of
TAO-1.2.1.
I patch ACE and TAO to get singletons to work with multiple loadable
modules; the VxWorks loader does not respect weakly-defined objects
and
will create multiple instances of singletons if they are referenced
across modules. The patches involve using RTTI to register singletons
in
a non-templated manager object.
I've enclosed my platform_macros.GNU and config.h files; be sure to
vet
them for your environment.
hth
- Tom
plain text document attachment (platform_macros-vxworks.GNU)
# platform_macros.GNU
# For VxWorks environment
# Updated for Tornado 2.2.x and TAO 1.3.x
# Thomas Lockhart Caltech/JPL
ACE_COMPONENTS= FOR_TAO
#minimum_corba=1
#rt_corba= 1
rtp= 0
ami= 0
ami_poller= 0
ami_callback= 0
#corba_messaging= 0
templates= implicit
rtti= 1
#exceptions= 0
interface_repo= 1
inline= 1
debug= 0
shared_libs= 1
shared_libs_only= 1
static_libs=
#ifeq ($(LIBNAME),"liborbsvcs")
# LIBS=
#endif
# Disable shared libraries from the link step.
# Otherwise, we'll try to link to libACE.so, but the linker is looking
for libACE.a.
#ACE_SHLIB=
# TAO_IDL must be a full-path pointer to a built IDL compiler.
# Otherwise, rules which list this as a prerequisite (and there are
some)
# will fail with "no rule to make..."
# One might think that setting PATH should be enough, but nooooooo....
TAO_IDL= /proj/ace/release/$(HOSTARCH)/bin/tao_idl
# NOTE THAT ALL TAO_IDLFLAGS PARAMETERS ARE OVERRIDDEN IN THE RTC
# MAKEFILE.ENV SO THESE PARAMETERS NEED TO BE UPDATED THERE ALSO
# All support files are going into a stable installation, so generate
angle
# brackets on #includes when possible
TAO_IDLFLAGS+= -in
# Enable exception macro arguments since tao_idl may have been
# compiled with exceptions enabled for the host platform.
# Note that this could be enabled always, since the exception macros
# support native exceptions also.
#ifneq ($(exceptions),1)
# TAO_IDLFLAGS+= -Ge 1
#endif
# Disable tie classes to shrink libraries
TAO_IDLFLAGS+= -Sc
# Enable AMI and OBV interfaces
ifeq ($(ami),1)
TAO_IDLFLAGS+= -GC -Gv
IDLFLAGS+= -GC -Gv
endif
# TAO currently calls everything with gcc-2.96 VxWorks 5.4.2.
# Override with the correct value for Tornado 2.2.1.
#VXWORKS_VERSION_FLAG= -DACE_VXWORKS=0x551
include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.3.GNU
# Get the right version of gperf
TAO_IDLFLAGS+= -g /proj/ace/release/$(HOSTARCH)/bin/gperf
# VxWorks does not respect weakly-defined objects.
# Enable the workaround from Rich Johnson.
CPPFLAGS+= -DACE_HAS_BROKEN_WEAK_OBJECTS
# TornadoII supports multicast,
# but this is not turned on by default in ACE
#CPPFLAGS+= -DACE_HAS_IP_MULTICAST=1
# Need static data member templates for the SingletonMap workaround.
# Should move to config-vxworks5.x.h when SingletonMap is added to the
tree.
#CPPFLAGS+= -UACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
# Remove RCS info from source code. Saves some room...
CPPFLAGS+= -DACE_USE_RCSID=0
# Enable patch to use sortable time in log output
CPPFLAGS+= -DACE_USE_ISO8601_TIME
# Set optimization to O1 to allow exceptions under Tornado II 2.0
compiler
#OCFLAGS+= -O0
_________________________
José Rui Simões
Junior Engineer
Critical Software, SA
Parque Industrial de Taveiro, Lote 48
3045-504 Coimbra, Portugal
Tel:+351.239 989 100 Fax:+351.239 989 119
http://www.criticalsoftware.com <http://www.criticalsoftware.com/>
jose-r-simoes at criticalsoftware.com
<mailto:jose-r-simoes%40criticalsoftware.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20070615/c9d02f30/attachment-0001.htm
More information about the Ace-users
mailing list