Boost logo

Boost-Build :

From: Ilya Sokolov (fal_delivery_at_[hidden])
Date: 2006-06-10 07:39:08


borland:
- archive actions fixed

msvc:
- cleanup: LINKFLAGS replaced with OPTIONS

gcc:
- added <user-interface>gui/<os>NT support

cvs -q diff -u -d -- borland.jam (in directory J:\w\boost\boost\tools\build\v2\tools\)
Index: borland.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/borland.jam,v
retrieving revision 1.23
diff -u -d -r1.23 borland.jam
--- borland.jam 14 Nov 2005 16:14:06 -0000 1.23
+++ borland.jam 10 Jun 2006 11:07:00 -0000
@@ -154,34 +154,23 @@
 # The NEED_IMPLIB variable controls whether we need to invoke implib.
 
 flags borland.archive AROPTIONS <archiveflags> ;
-# Declare action for archives. We don't use response file
-# since it's hard to get "+-" there.
-# CONSIDER: don't know what 'together' is for...
-actions updated together piecemeal archive
-{
- $(.set-path)$(.root:W)$(.old-path)
- tlib $(AROPTIONS) /u /a /C "$(<:W)" +-"$(>:W)"
-}
 
+rule archive ( targets * : sources * : properties * )
+{
+ # Always remove archive and start again. See rationale in gcc.jam
+ local clean.a = $(targets[1])(clean) ;
+ TEMPORARY $(clean.a) ;
+ NOCARE $(clean.a) ;
+ LOCATE on $(clean.a) = [ on $(targets[1]) return $(LOCATE) ] ;
+ DEPENDS $(clean.a) : $(sources) ;
+ DEPENDS $(targets) : $(clean.a) ;
+ common.RmTemps $(clean.a) : $(targets) ;
+}
 
 if [ os.name ] = CYGWIN
 {
     .set-path = "cmd /S /C set \"PATH=" ;
     .old-path = ";%PATH%\" \"&&\"" ;
-
-
- # Couldn't get TLIB to stop being confused about pathnames
- # containing dashes (it seemed to treat them as option separators
- # when passed through from bash), so we explicitly write the
- # command into a .bat file and execute that. TLIB is also finicky
- # about pathname style! Forward slashes, too, are treated as
- # options.
- actions updated together piecemeal archive
- {
- chdir $(<:D)
- echo +-$(>:BS) > $(<:BS).rsp
- $(.set-path)$(.root)$(.old-path) "tlib.exe" $(AROPTIONS) /P256 /C $(<:BS) @$(<:BS).rsp && $(RM) $(<:BS).rsp
- }
 }
 else if [ os.name ] = NT
 {
@@ -197,6 +186,21 @@
       " ;
 }
 
+plus = "+" ;
+
+# Ilya Sokolov:
+# TLIB response file requirements:
+# - `+' is a very first symbol of line
+# - no spaces between `+' and source file name
+# - no . / \ " symbols in source file name, ie no paths
+actions together archive
+{
+ rem @($(<:W).rsp:E=$(plus)$(>:BS))
+ cd $(<:D)
+ $(.set-path)$(.root:W)$(.old-path)
+ tlib.exe $(AROPTIONS) /P1024 /C $(<:BS) @$(<:BS).rsp
+}
+
 RM = [ common.rm-command ] ;
 
 nl = "

cvs -q diff -u -d -- gcc.jam (in directory J:\w\boost\boost\tools\build\v2\tools)
Index: gcc.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/gcc.jam,v
retrieving revision 1.76
diff -u -d -r1.76 gcc.jam
--- gcc.jam 24 May 2006 10:37:55 -0000 1.76
+++ gcc.jam 8 Jun 2006 09:29:22 -0000
@@ -302,6 +373,8 @@
 flags gcc.link FINDLIBS-ST <find-static-library> ;
 flags gcc.link FINDLIBS-SA <find-shared-library> ;
 flags gcc.link LIBRARIES <library-file> ;
+flags gcc.link OPTIONS <user-interface>gui/<os>NT : -mwindows ;
+
 
 # For <runtime-link>static we made sure there are no dynamic libraries
 # in the link

cvs -q diff -u -d -- msvc.jam (in directory J:\w\boost\boost\tools\build\v2\tools)
Index: msvc.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/msvc.jam,v
retrieving revision 1.81
diff -u -d -r1.81 msvc.jam
--- msvc.jam 17 May 2006 12:57:53 -0000 1.81
+++ msvc.jam 8 Jun 2006 09:00:39 -0000
@@ -633,17 +736,17 @@
 
 # Declare flags and action for linking
 flags msvc.link PDB_LINKFLAG <debug-symbols>on/<debug-store>database : /PDB: ; # not used yet
-flags msvc.link LINKFLAGS <debug-symbols>on : /DEBUG ;
+flags msvc.link OPTIONS <debug-symbols>on : /DEBUG ;
 flags msvc.link DEF_FILE <def-file> ;
-# The linker disables the default optimizations when using /DEBUG. Whe have
+# The linker disables the default optimizations when using /DEBUG. We have
 # to enable them manually for release builds with debug symbols.
-flags msvc LINKFLAGS <debug-symbols>on/<runtime-debugging>off : /OPT:REF,ICF ;
+flags msvc.link OPTIONS <debug-symbols>on/<runtime-debugging>off : /OPT:REF,ICF ;
 
-flags msvc LINKFLAGS <user-interface>console : /subsystem:console ;
-flags msvc LINKFLAGS <user-interface>gui : /subsystem:windows ;
-flags msvc LINKFLAGS <user-interface>wince : /subsystem:windowsce ;
-flags msvc LINKFLAGS <user-interface>native : /subsystem:native ;
-flags msvc LINKFLAGS <user-interface>auto : /subsystem:posix ;
+flags msvc.link OPTIONS <user-interface>console : /subsystem:console ;
+flags msvc.link OPTIONS <user-interface>gui : /subsystem:windows ;
+flags msvc.link OPTIONS <user-interface>wince : /subsystem:windowsce ;
+flags msvc.link OPTIONS <user-interface>native : /subsystem:native ;
+flags msvc.link OPTIONS <user-interface>auto : /subsystem:posix ;
 
 flags msvc.link OPTIONS <linkflags> ;
 flags msvc.link LINKPATH <library-path> ;
@@ -701,7 +804,7 @@
 {
     actions link bind DEF_FILE
     {
- $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /NOLOGO /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
         if exist "$(<[1]).manifest" (
             mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);1"
         )
@@ -709,7 +812,7 @@
 
     actions link.dll bind DEF_FILE
     {
- $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /NOLOGO /DLL /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
         if exist "$(<[1]).manifest" (
             mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);2"
         )
@@ -719,7 +822,7 @@
 {
     actions link bind DEF_FILE
     {
- $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /NOLOGO /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
         if test -e "$(<[1]).manifest"; then
             $(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);1"
         fi
@@ -727,7 +830,7 @@
 
     actions link.dll bind DEF_FILE
     {
- $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
+ $(.LD) /NOLOGO /DLL /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
         if test -e "$(<[1]).manifest"; then
             $(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);2"
         fi


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