Boost logo

Boost-Build :

From: Raoul Gough (raoulgough_at_[hidden])
Date: 2003-01-17 07:15:27


"David Abrahams" <dave_at_[hidden]> wrote in message
news:uhec8rdoo.fsf_at_boost-consulting.com...
> "Raoul Gough" <raoulgough_at_[hidden]> writes:
[snip]
> > mingw-tools.jam includes the following for the link commands:
> >
> > # Workaround GCC's lack of command-files and NT's line-length
> > limitation.
> > if $(NT) {
> > JAMSHELL on $(<) = % ;
> > }
> >
> > Don't understand that myself, but maybe it would help.
>
> It prevents the build command from being sent to the command-shell,
> going directly to the system instead, as long as it appears on one
> line. Makes a difference for gcc toolsets because they don't
support
> command-files. That's present in gcc-tools.jam as well but whoever
> added -mno-cygwin support somehow made sure it wouldn't be used in
> that case:
>
> if $(<[2]) && $(NT) && ( -mno-cygwin in
$(gBUILD_PROPERTIES:G=) )
> {
> gcc-dllwrap $(<) : $(>) ;
> }
> else
> {
> # Workaround GCC's lack of command-files and NT's
line-length limitation.
> if $(NT) {
> JAMSHELL on $(<) = % ;
> }
>
> All you need to do is to move the 2nd if statement outside the first
> one.

Weird. The jam code you've identified has been there since 2001/12/13,
quite a while before I "added" -mno-cygwin support. This makes me
wonder why I had such troubles getting it to work in the first place.
It's possible that my Cygwin installation was broken, or that
something changed in Cygwin or boost to prevent it working before I
tried it. AFAIK, there was nothing documented at the time, so it's
hard to say what was necessary to get it working, unless David
can remember anything about it?

Regards,
Raoul Gough.

---------------
Here's the diff between revision 1.12 and 1.13 of gcc-tools.jam:

Index: boost/tools/build/gcc-tools.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/gcc-tools.jam,v
retrieving revision 1.12
retrieving revision 1.13
diff -r1.12 -r1.13
74c74,82
< gcc-Link-action $(<) : $(>) ;

---
> DEPENDS $(<) : $(NEEDLIBS) ;
> if $(<[2]) && $(NT) && ( -mno-cygwin in
$(gBUILD_PROPERTIES:G=) )
> {
> gcc-dllwrap $(<) : $(>) ;
> }
> else
> {
> gcc-Link-action $(<) : $(>) ;
> }
80c88,93
< $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o
"$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)"
"$(NEEDLIBS)" -l$(FINDLIBS) -Wl,-rpath-link,.
---
> $(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o
"$(<[1])" -L$(LIBPATH:T) -L$(STDLIBPATH:T) "$(>)" "$(NEEDLIBS)"
"$(NEEDLIBS)" -l$(FINDLIBS) -Wl,-rpath-link,.
> }
>
> actions gcc-dllwrap bind NEEDLIBS
> {
> dllwrap --dllname $(<[1]) -o foo.pyd $(>) -s --entry
_DllMain_at_12 --target=i386-mingw32 -L$(LIBPATH:T) -L$(STDLIBPATH:T)
"$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -Wl,-rpath-link,.
$(LINKFLAGS)
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

 

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