mirror of
https://github.com/boostorg/build.git
synced 2026-02-15 00:52:16 +00:00
TODO.txt
Added missing jobs; marked others done. allyourbase.jam Fixed split and split-path for Unix boost-base.jam Fixed the Run action for Windows gcc-tools.jam intel-win32-tools.jam kcc-tools.jam metrowerks-tools.jam msvc-tools.jam Removed UNDEFS from link line, moved NEEDLIBS to end unit-tests.jam Added tests splitpath tests for rooted Unix paths jam_src/make1.c NOCARE targets with build actions now don't cause the parent to fail when they fail. build_system.htm Documented NOCARE enhancements [SVN r11463]
This commit is contained in:
41
TODO.txt
41
TODO.txt
@@ -7,6 +7,17 @@ to its suitability for any purpose.
|
||||
Boost Build system TODO
|
||||
===== ===== ====== ====
|
||||
|
||||
DONE * Fix split-path bug which unroots paths on Unix
|
||||
|
||||
DONE * move NEEDLIBS to end of link line
|
||||
|
||||
* Fix bug with not found Python scripts
|
||||
|
||||
* $(REDIRECT) for toolset invocations:
|
||||
Unix: > filename 2>&1 -- puts stdout && stderr in same file
|
||||
|
||||
* add "|| exit $?" for unix to get it to exit for multi-line test commands.
|
||||
|
||||
* Make it possible to qualify dependencies just like requirements.
|
||||
|
||||
* consider eliminating the need for <*>
|
||||
@@ -15,12 +26,12 @@ Boost Build system TODO
|
||||
|
||||
* Add support for invoking debuggers from within the build system.
|
||||
|
||||
* Fix the subinclude problem with project-wide variable settings (e.g.
|
||||
DONE * Fix the subinclude problem with project-wide variable settings (e.g.
|
||||
BOOST_ROOT) that Beman pointed out to me.
|
||||
|
||||
* Move test target rules from status/Jamfile into boost-base.jam
|
||||
|
||||
* Add requested test targets. I think we need at least the following
|
||||
SORTA DONE * Add requested test targets. I think we need at least the following
|
||||
capability:
|
||||
1. The ability to run any built executable
|
||||
2. Two categories of test targets (call them "test" and "full-test") which
|
||||
@@ -33,9 +44,9 @@ needs to be updated by running the executable with stdout redirected to the
|
||||
|
||||
* Add examples directory back into CVS
|
||||
|
||||
* Support for KCC
|
||||
DONE * Support for KCC
|
||||
|
||||
* Specific support for GCC-3
|
||||
DONE * Specific support for GCC-3
|
||||
|
||||
* Eliminate the need for intermediate dispatching rules (e.g. C++-action) in
|
||||
each toolset.
|
||||
@@ -69,7 +80,7 @@ Implement <sysinclude> feature for separately searching #include <...> paths?
|
||||
search algorithm.
|
||||
|
||||
Clean up documentation
|
||||
describe gristing
|
||||
DONE describe gristing
|
||||
revise free/path feature definition
|
||||
|
||||
Add a hook function to allow output directory customization that some people
|
||||
@@ -77,12 +88,10 @@ want (instead of subdirectories, string together short names with '-').
|
||||
|
||||
Platform support:
|
||||
Unix paths on Mac/VMS
|
||||
Integrate Win95/98/ME support
|
||||
DONE Integrate Win95/98/ME support
|
||||
|
||||
Since the above require modification to Jam compiled source, getting the
|
||||
code into the Perforce public depot would be good at this point.
|
||||
|
||||
Compile allyourbase/boost-base.jam into Jam itself.
|
||||
DONE (something better) Compile allyourbase/boost-base.jam into Jam itself.
|
||||
It might be best to review differences between allyourbase.jam and Jambase,
|
||||
and arrange the new Jambase to be a superset of the perforce Jambase so that
|
||||
a boost-compiled Jam can be used on standard Jambase projects without
|
||||
@@ -99,9 +108,9 @@ Testing
|
||||
MacOS
|
||||
|
||||
Additional toolset descriptions
|
||||
Kai (needs refurbishment)
|
||||
Intel
|
||||
Comeau
|
||||
DONE Kai (needs refurbishment)
|
||||
DONE, but needs rework Intel
|
||||
DONE(windows) Comeau
|
||||
...
|
||||
|
||||
Better support for single-valued free features. GCC needs a default
|
||||
@@ -129,12 +138,12 @@ Implement some test tools:
|
||||
|
||||
=== FTJam core requests ===
|
||||
|
||||
In debugging output, indirect rule invocations should reflect the rule name
|
||||
DONE In debugging output, indirect rule invocations should reflect the rule name
|
||||
being invoked.
|
||||
|
||||
Fix modulus on nesting in debug output, so my emacs stepping tools don't get
|
||||
DONE Fix modulus on nesting in debug output, so my emacs stepping tools don't get
|
||||
confused.
|
||||
|
||||
Expand MAXLINE for NT, possibly as described by Chris Antos.
|
||||
DONE-ish Expand MAXLINE for NT, possibly as described by Chris Antos.
|
||||
|
||||
Implement a way to invert the result of a rule, so that failure becomes success.
|
||||
DONE Implement a way to invert the result of a rule, so that failure becomes success.
|
||||
|
||||
@@ -1387,13 +1387,20 @@ if $(JAM_VERSION[1]) >= 03 {
|
||||
SEARCH on new-split.jam = $(BOOST_BUILD_PATH) ;
|
||||
include new-split.jam ; # this is temporary.
|
||||
|
||||
rule split-path
|
||||
{
|
||||
return [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $1 ] # rooting slash(es), if any
|
||||
[ split $(<) "[/$(SLASH)]" ] # the rest.
|
||||
;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
rule split # string pattern
|
||||
{
|
||||
local source = $(<[1]) ;
|
||||
local divider = $(<[2]) ;
|
||||
local pattern = "(.*)("$(divider)")(.*)" ;
|
||||
local pattern = "^(.*)("$(divider)")(.*)" ;
|
||||
|
||||
# SUBST rule is weird. When there's no match it returns the original string.
|
||||
local match = [ SUBST $(source) $(pattern) $1$2$3xxx ] ;
|
||||
@@ -1409,12 +1416,18 @@ rule split # string pattern
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# simpler reimplementation of split-path for boost
|
||||
rule split-path
|
||||
{
|
||||
return [ split $(<) "[/$(SLASH)]" ] ;
|
||||
local unmatched = [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $2 ] ;
|
||||
local root ;
|
||||
if ! $(unmatched)
|
||||
{
|
||||
root = [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $1 ] ;
|
||||
}
|
||||
return $(root) [ split $(<) "[/$(SLASH)]" ]
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# dwa 6/4/01 - added for boost
|
||||
|
||||
@@ -164,7 +164,8 @@ RUN_PATH ?= $(PATH) ;
|
||||
# A simple action to run an executable target
|
||||
actions Run
|
||||
{
|
||||
$(SHELL_EXPORT)PATH=$(RUN_PATH)
|
||||
$(SHELL_SET)PATH=$(RUN_PATH)
|
||||
$(SHELL_EXPORT)PATH
|
||||
$(<)
|
||||
}
|
||||
|
||||
|
||||
@@ -143,6 +143,7 @@
|
||||
<li><a href="#negative_indexing">Negative Indexing</a>
|
||||
<li><a href="#BINDRULE">Target Binding Detection</a>
|
||||
<li><a href="#FAIL_EXPECTED">Return Code Inversion</a>
|
||||
<li><a href="#NOCARE">Ignoring Return Codes</a>
|
||||
<li><a href="#SUBST_rule">The <tt>SUBST</tt> Rule</a>
|
||||
<li><a href="#JAM_VERSION">The <tt>JAM_VERSION</tt> global variable</a>
|
||||
<li>
|
||||
@@ -1608,6 +1609,14 @@ rule bind-rule ( target : path )
|
||||
if it fails, building of dependent targets continues as though it
|
||||
succeeded. If it succeeds, dependent targets are skipped.
|
||||
|
||||
<h4><a name="NOCARE">Ignoring Return Codes</a></h4>
|
||||
|
||||
<p>Perforce Jam suppplied a <tt>NOCARE</tt> rule which is typically used
|
||||
for header files to indicate that if they are not found, the dependent
|
||||
targets should be built anyway. Boost Jam extends <tt>NOCARE</tt> to apply
|
||||
to targets with build actions: if their build actions exit with a nonzero
|
||||
return code, dependent targets will still be built.
|
||||
|
||||
<h4><a name="SUBST_rule">The <tt>SUBST</tt> Rule</a></h4>
|
||||
|
||||
<p>The behavior of the <tt>SUBST</tt> rule for regular-expression matching
|
||||
|
||||
@@ -72,7 +72,7 @@ rule Link-action
|
||||
# for gcc, we repeat all libraries so that dependencies are always resolved
|
||||
actions gcc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
|
||||
$(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" -l$(FINDLIBS) "$(NEEDLIBS)" "$(NEEDLIBS)"
|
||||
}
|
||||
|
||||
# older actions
|
||||
|
||||
@@ -59,7 +59,7 @@ rule Link-action
|
||||
|
||||
actions intel-win32-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(NEEDLIBS)" "$(>)"
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -19,7 +19,7 @@ rule Link-action
|
||||
|
||||
actions kcc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(kcc.bin-directory)KCC $(LINKFLAGS) -o "$(<)" $(UNDEFS) -L$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(kcc.bin-directory)KCC $(LINKFLAGS) -o "$(<)" -L$(STDLIBPATH) "$(>)" NEEDLIBS
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -80,7 +80,7 @@ actions metrowerks-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(METROWERKS_SETUP)
|
||||
$(METROWERKS_LINK_SETUP)$(STDLIBS)
|
||||
mwld -export dllexport -nowraplines $(LINKFLAGS) -L$(LIBPATH) -L$(STDLIBPATH) $(IMPLIB_COMMAND)"$(<[2])" -o "$(<[1])" $(UNDEFS) $(NEEDLIBS) "$(>)" -l$(FINDLIBS)
|
||||
mwld -export dllexport -nowraplines $(LINKFLAGS) -L$(LIBPATH) -L$(STDLIBPATH) $(IMPLIB_COMMAND)"$(<[2])" -o "$(<[1])" "$(NEEDLIBS)" "$(>)" -l$(FINDLIBS)
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -57,7 +57,7 @@ rule Link-action
|
||||
|
||||
actions msvc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(MSVC_TOOL_PATH)link /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(MSVC_TOOL_PATH)link /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(NEEDLIBS)" "$(>)"
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -8,7 +8,7 @@ rule split ( string separator )
|
||||
|
||||
while $(s)
|
||||
{
|
||||
local match = [ SUBST $(s) (.*)$(separator)(.*) $1 $2 ] ;
|
||||
local match = [ SUBST $(s) ^(.*)$(separator)(.*) $1 $2 ] ;
|
||||
|
||||
local tail = $(match[2]) ;
|
||||
tail ?= $(s) ;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# assert_equal a : b
|
||||
#
|
||||
# exits with an assertion failure if a != b
|
||||
ECHO running unit tests... ;
|
||||
rule assert_equal
|
||||
{
|
||||
if $(<) != $(>)
|
||||
@@ -75,6 +76,7 @@ assert_equal [ is-subset a b c : c a b d ] : true ;
|
||||
assert_equal [ is-subset a b z : c a b d ] : ;
|
||||
|
||||
# split-path
|
||||
assert_equal [ split-path /a/b/c ] : / a b c ;
|
||||
assert_equal [ split-path b/c.d/.f/g./h.i ] : b c.d .f g. h.i ;
|
||||
assert_equal [ split-path <a>b/c/<d>e ] : <a>b c <d>e ;
|
||||
assert_equal [ split-path <a>/<d>/<e> ] : <a> <d> <e> ;
|
||||
@@ -267,3 +269,4 @@ assert_equal [ strip-initial a b c : a b d e f g ] : a b d e f g ;
|
||||
assert_equal [ strip-initial a b c : b d e f g ] : b d e f g ;
|
||||
assert_equal [ strip-initial a b c : ] : ;
|
||||
|
||||
ECHO unit tests complete. ;
|
||||
41
v1/TODO.txt
41
v1/TODO.txt
@@ -7,6 +7,17 @@ to its suitability for any purpose.
|
||||
Boost Build system TODO
|
||||
===== ===== ====== ====
|
||||
|
||||
DONE * Fix split-path bug which unroots paths on Unix
|
||||
|
||||
DONE * move NEEDLIBS to end of link line
|
||||
|
||||
* Fix bug with not found Python scripts
|
||||
|
||||
* $(REDIRECT) for toolset invocations:
|
||||
Unix: > filename 2>&1 -- puts stdout && stderr in same file
|
||||
|
||||
* add "|| exit $?" for unix to get it to exit for multi-line test commands.
|
||||
|
||||
* Make it possible to qualify dependencies just like requirements.
|
||||
|
||||
* consider eliminating the need for <*>
|
||||
@@ -15,12 +26,12 @@ Boost Build system TODO
|
||||
|
||||
* Add support for invoking debuggers from within the build system.
|
||||
|
||||
* Fix the subinclude problem with project-wide variable settings (e.g.
|
||||
DONE * Fix the subinclude problem with project-wide variable settings (e.g.
|
||||
BOOST_ROOT) that Beman pointed out to me.
|
||||
|
||||
* Move test target rules from status/Jamfile into boost-base.jam
|
||||
|
||||
* Add requested test targets. I think we need at least the following
|
||||
SORTA DONE * Add requested test targets. I think we need at least the following
|
||||
capability:
|
||||
1. The ability to run any built executable
|
||||
2. Two categories of test targets (call them "test" and "full-test") which
|
||||
@@ -33,9 +44,9 @@ needs to be updated by running the executable with stdout redirected to the
|
||||
|
||||
* Add examples directory back into CVS
|
||||
|
||||
* Support for KCC
|
||||
DONE * Support for KCC
|
||||
|
||||
* Specific support for GCC-3
|
||||
DONE * Specific support for GCC-3
|
||||
|
||||
* Eliminate the need for intermediate dispatching rules (e.g. C++-action) in
|
||||
each toolset.
|
||||
@@ -69,7 +80,7 @@ Implement <sysinclude> feature for separately searching #include <...> paths?
|
||||
search algorithm.
|
||||
|
||||
Clean up documentation
|
||||
describe gristing
|
||||
DONE describe gristing
|
||||
revise free/path feature definition
|
||||
|
||||
Add a hook function to allow output directory customization that some people
|
||||
@@ -77,12 +88,10 @@ want (instead of subdirectories, string together short names with '-').
|
||||
|
||||
Platform support:
|
||||
Unix paths on Mac/VMS
|
||||
Integrate Win95/98/ME support
|
||||
DONE Integrate Win95/98/ME support
|
||||
|
||||
Since the above require modification to Jam compiled source, getting the
|
||||
code into the Perforce public depot would be good at this point.
|
||||
|
||||
Compile allyourbase/boost-base.jam into Jam itself.
|
||||
DONE (something better) Compile allyourbase/boost-base.jam into Jam itself.
|
||||
It might be best to review differences between allyourbase.jam and Jambase,
|
||||
and arrange the new Jambase to be a superset of the perforce Jambase so that
|
||||
a boost-compiled Jam can be used on standard Jambase projects without
|
||||
@@ -99,9 +108,9 @@ Testing
|
||||
MacOS
|
||||
|
||||
Additional toolset descriptions
|
||||
Kai (needs refurbishment)
|
||||
Intel
|
||||
Comeau
|
||||
DONE Kai (needs refurbishment)
|
||||
DONE, but needs rework Intel
|
||||
DONE(windows) Comeau
|
||||
...
|
||||
|
||||
Better support for single-valued free features. GCC needs a default
|
||||
@@ -129,12 +138,12 @@ Implement some test tools:
|
||||
|
||||
=== FTJam core requests ===
|
||||
|
||||
In debugging output, indirect rule invocations should reflect the rule name
|
||||
DONE In debugging output, indirect rule invocations should reflect the rule name
|
||||
being invoked.
|
||||
|
||||
Fix modulus on nesting in debug output, so my emacs stepping tools don't get
|
||||
DONE Fix modulus on nesting in debug output, so my emacs stepping tools don't get
|
||||
confused.
|
||||
|
||||
Expand MAXLINE for NT, possibly as described by Chris Antos.
|
||||
DONE-ish Expand MAXLINE for NT, possibly as described by Chris Antos.
|
||||
|
||||
Implement a way to invert the result of a rule, so that failure becomes success.
|
||||
DONE Implement a way to invert the result of a rule, so that failure becomes success.
|
||||
|
||||
@@ -1387,13 +1387,20 @@ if $(JAM_VERSION[1]) >= 03 {
|
||||
SEARCH on new-split.jam = $(BOOST_BUILD_PATH) ;
|
||||
include new-split.jam ; # this is temporary.
|
||||
|
||||
rule split-path
|
||||
{
|
||||
return [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $1 ] # rooting slash(es), if any
|
||||
[ split $(<) "[/$(SLASH)]" ] # the rest.
|
||||
;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
rule split # string pattern
|
||||
{
|
||||
local source = $(<[1]) ;
|
||||
local divider = $(<[2]) ;
|
||||
local pattern = "(.*)("$(divider)")(.*)" ;
|
||||
local pattern = "^(.*)("$(divider)")(.*)" ;
|
||||
|
||||
# SUBST rule is weird. When there's no match it returns the original string.
|
||||
local match = [ SUBST $(source) $(pattern) $1$2$3xxx ] ;
|
||||
@@ -1409,12 +1416,18 @@ rule split # string pattern
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# simpler reimplementation of split-path for boost
|
||||
rule split-path
|
||||
{
|
||||
return [ split $(<) "[/$(SLASH)]" ] ;
|
||||
local unmatched = [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $2 ] ;
|
||||
local root ;
|
||||
if ! $(unmatched)
|
||||
{
|
||||
root = [ SUBST $(<[1]) "^([/$(SLASH)]+).*" $1 ] ;
|
||||
}
|
||||
return $(root) [ split $(<) "[/$(SLASH)]" ]
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# dwa 6/4/01 - added for boost
|
||||
|
||||
@@ -164,7 +164,8 @@ RUN_PATH ?= $(PATH) ;
|
||||
# A simple action to run an executable target
|
||||
actions Run
|
||||
{
|
||||
$(SHELL_EXPORT)PATH=$(RUN_PATH)
|
||||
$(SHELL_SET)PATH=$(RUN_PATH)
|
||||
$(SHELL_EXPORT)PATH
|
||||
$(<)
|
||||
}
|
||||
|
||||
|
||||
@@ -143,6 +143,7 @@
|
||||
<li><a href="#negative_indexing">Negative Indexing</a>
|
||||
<li><a href="#BINDRULE">Target Binding Detection</a>
|
||||
<li><a href="#FAIL_EXPECTED">Return Code Inversion</a>
|
||||
<li><a href="#NOCARE">Ignoring Return Codes</a>
|
||||
<li><a href="#SUBST_rule">The <tt>SUBST</tt> Rule</a>
|
||||
<li><a href="#JAM_VERSION">The <tt>JAM_VERSION</tt> global variable</a>
|
||||
<li>
|
||||
@@ -1608,6 +1609,14 @@ rule bind-rule ( target : path )
|
||||
if it fails, building of dependent targets continues as though it
|
||||
succeeded. If it succeeds, dependent targets are skipped.
|
||||
|
||||
<h4><a name="NOCARE">Ignoring Return Codes</a></h4>
|
||||
|
||||
<p>Perforce Jam suppplied a <tt>NOCARE</tt> rule which is typically used
|
||||
for header files to indicate that if they are not found, the dependent
|
||||
targets should be built anyway. Boost Jam extends <tt>NOCARE</tt> to apply
|
||||
to targets with build actions: if their build actions exit with a nonzero
|
||||
return code, dependent targets will still be built.
|
||||
|
||||
<h4><a name="SUBST_rule">The <tt>SUBST</tt> Rule</a></h4>
|
||||
|
||||
<p>The behavior of the <tt>SUBST</tt> rule for regular-expression matching
|
||||
|
||||
@@ -72,7 +72,7 @@ rule Link-action
|
||||
# for gcc, we repeat all libraries so that dependencies are always resolved
|
||||
actions gcc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)
|
||||
$(GCC_BIN_DIRECTORY)g++ $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" -l$(FINDLIBS) "$(NEEDLIBS)" "$(NEEDLIBS)"
|
||||
}
|
||||
|
||||
# older actions
|
||||
|
||||
@@ -59,7 +59,7 @@ rule Link-action
|
||||
|
||||
actions intel-win32-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(NEEDLIBS)" "$(>)"
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -19,7 +19,7 @@ rule Link-action
|
||||
|
||||
actions kcc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(kcc.bin-directory)KCC $(LINKFLAGS) -o "$(<)" $(UNDEFS) -L$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(kcc.bin-directory)KCC $(LINKFLAGS) -o "$(<)" -L$(STDLIBPATH) "$(>)" NEEDLIBS
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -80,7 +80,7 @@ actions metrowerks-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(METROWERKS_SETUP)
|
||||
$(METROWERKS_LINK_SETUP)$(STDLIBS)
|
||||
mwld -export dllexport -nowraplines $(LINKFLAGS) -L$(LIBPATH) -L$(STDLIBPATH) $(IMPLIB_COMMAND)"$(<[2])" -o "$(<[1])" $(UNDEFS) $(NEEDLIBS) "$(>)" -l$(FINDLIBS)
|
||||
mwld -export dllexport -nowraplines $(LINKFLAGS) -L$(LIBPATH) -L$(STDLIBPATH) $(IMPLIB_COMMAND)"$(<[2])" -o "$(<[1])" "$(NEEDLIBS)" "$(>)" -l$(FINDLIBS)
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -57,7 +57,7 @@ rule Link-action
|
||||
|
||||
actions msvc-Link-action bind NEEDLIBS
|
||||
{
|
||||
$(MSVC_TOOL_PATH)link /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) $(NEEDLIBS) "$(>)"
|
||||
$(MSVC_TOOL_PATH)link /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(NEEDLIBS)" "$(>)"
|
||||
}
|
||||
|
||||
#### Cc #####
|
||||
|
||||
@@ -8,7 +8,7 @@ rule split ( string separator )
|
||||
|
||||
while $(s)
|
||||
{
|
||||
local match = [ SUBST $(s) (.*)$(separator)(.*) $1 $2 ] ;
|
||||
local match = [ SUBST $(s) ^(.*)$(separator)(.*) $1 $2 ] ;
|
||||
|
||||
local tail = $(match[2]) ;
|
||||
tail ?= $(s) ;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# assert_equal a : b
|
||||
#
|
||||
# exits with an assertion failure if a != b
|
||||
ECHO running unit tests... ;
|
||||
rule assert_equal
|
||||
{
|
||||
if $(<) != $(>)
|
||||
@@ -75,6 +76,7 @@ assert_equal [ is-subset a b c : c a b d ] : true ;
|
||||
assert_equal [ is-subset a b z : c a b d ] : ;
|
||||
|
||||
# split-path
|
||||
assert_equal [ split-path /a/b/c ] : / a b c ;
|
||||
assert_equal [ split-path b/c.d/.f/g./h.i ] : b c.d .f g. h.i ;
|
||||
assert_equal [ split-path <a>b/c/<d>e ] : <a>b c <d>e ;
|
||||
assert_equal [ split-path <a>/<d>/<e> ] : <a> <d> <e> ;
|
||||
@@ -267,3 +269,4 @@ assert_equal [ strip-initial a b c : a b d e f g ] : a b d e f g ;
|
||||
assert_equal [ strip-initial a b c : b d e f g ] : b d e f g ;
|
||||
assert_equal [ strip-initial a b c : ] : ;
|
||||
|
||||
ECHO unit tests complete. ;
|
||||
Reference in New Issue
Block a user