|
Boost-Build : |
From: Jim Douglas (jim_at_[hidden])
Date: 2005-11-04 04:05:07
Rene,
I have attached the tools.jam files I have been using for the QNX tests.
There are a few points I would like to discuss:
1. As it stands, the qcc-tools.jam file represents a 'virtual' tool and
will produce undefined results if used on its own. Is there some way we
can insert some default values for GXX/GCC in case this happens?
2. I have overloaded the "gcc-C++-action" because of the explicit "-W" &
"-f" options that need to be prefixed. Is the text processing of bjam
good enough to scan the command and insert a "-Wc," in front of every
"-W" & "-f" option? I note that other libraries sometimes insert
additional compiler options and these should be prefixed also.
3. The "gcc-Link-action" is overloaded because I needed to add an
explicit instruction to link against libm. For some reason QNX does not
include libm on the default list of libraries. It is tacked onto the end
of the command for now. What is the correct way of specifying additional
link libraries so that we can use the rule inherited from the gcc tools?
4. Where is the "ar" rule defined. Theoretically QCC can be used to
build archives, so I thought I might try that sometime.
5. Any further suggestions as to optimisation are welcome.
PS Which branch should I be using for continued testing, and what hoops
do I have to jump though in order to get QNX accepted?
Regards
Jim
# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
extends-toolset gcc ;
CFLAGS = [ difference $(CFLAGS) : -fno-inline -Wno-inline -finline-functions -g ] ;
flags qcc CFLAGS <inlining>off : -Wc,-fno-inline ;
flags qcc CFLAGS <inlining>on : -Wc,-Wno-inline ;
flags qcc CFLAGS <inlining>full : -Wc,-finline-functions,-Wno-inline ;
flags qcc CFLAGS <debug-symbols>on : -gstabs+ ;
LINKFLAGS = [ difference $(LINKFLAGS) : -g ] ;
flags qcc LINKFLAGS <debug-symbols>on : -gstabs+ ;
actions gcc-C++-action
{
$(.SET_EXIT)
"$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) -c -Wc,-Wall,-Wno-non-virtual-dtor,-ftemplate-depth-255 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)" -o "$(<)" "$(>)"
"$(.OBJCOPY[1])"$(_)$(OBJCOPY_FLAGS)$(_)"$(<)"
}
actions gcc-Link-action bind NEEDLIBS NEEDIMPS
{
$(.SET_EXIT)
$(SHELL_SET)$(gSHELL_LIBPATH)=$(LINK_LIBPATH)$(gAPPEND_LD_LIBRARY_PATH)
$(SHELL_EXPORT)$(gSHELL_LIBPATH)
"$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) "$(DLL_LINK_FLAGS)" "$(IMPLIB_COMMAND)$(<[2])" $(LINKFLAGS) -o "$(<[1])$(OUTTAG)" -L"$(LIBPATH:T)" -L"$(STDLIBPATH:T)" "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" "$(IMPLIB_FLAGS)$(NEEDIMPS)" -l$(FINDLIBS) $(LNOPT)$(RPATH_LINK). $(LNOPT)$(SONAME)$(<[1]:D=)$(SOTAG) -lm
$(ACTION_1)$(LN)$(_)-fs$(_)"$(<[1]:D=)$(OUTTAG)"$(_)"$(<[1])"
}
# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
{
local GXX = QCC -V2.95.3,gcc_ntox86_cpp ;
local GCC = qcc -V2.95.3,gcc_ntox86_cpp ;
extends-toolset qcc ;
}
# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
{
local GXX = QCC -V2.95.3,gcc_ntox86_gpp ;
local GCC = qcc -V2.95.3,gcc_ntox86_gpp ;
extends-toolset qcc ;
}
# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
{
local GXX = QCC -V3.3.5,gcc_ntox86_cpp ;
local GCC = qcc -V3.3.5,gcc_ntox86_cpp ;
extends-toolset qcc ;
}
# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
{
local GXX = QCC -V3.3.5,gcc_ntox86_gpp ;
local GCC = qcc -V3.3.5,gcc_ntox86_gpp ;
extends-toolset qcc ;
}
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk