2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 13:22:11 +00:00
Files
build/v2/tools/common.jam
Vladimir Prus 48c3bed1d9 Make stage.py work on NT/MinGW.
[SVN r16835]
2003-01-09 16:08:51 +00:00

89 lines
1.6 KiB
Plaintext

# Copyright (C) Vladimir Prus 2002. Permission to copy, use, modify, sell and
# distribute this software is granted provided this copyright notice appears in
# all copies. This software is provided "as is" without express or implied
# warranty, and with no claim as to its suitability for any purpose.
# Provides actions common to all toolsets, for as making directoies and
# removing files.
import os ;
import modules ;
if [ os.name ] = NT
{
modules.poke : RM : del /f ;
modules.poke : CP : copy ;
}
else
{
modules.poke : RM : rm ;
modules.poke : CP : cp ;
}
rule MkDir
{
# If dir exists, don't update it
# Do this even for $(DOT).
NOUPDATE $(<) ;
if $(<) != $(DOT) && ! $($(<)-mkdir)
{
local s ;
# Cheesy gate to prevent multiple invocations on same dir
# MkDir1 has the actions
# Arrange for jam dirs
$(<)-mkdir = true ;
MkDir1 $(<) ;
Depends dirs : $(<) ;
# Recursively make parent directories.
# $(<:P) = $(<)'s parent, & we recurse until root
s = $(<:P) ;
if $(NT)
{
switch $(s)
{
case *: : s = ;
case *:\\ : s = ;
}
}
if $(s) && $(s) != $(<)
{
Depends $(<) : $(s) ;
MkDir $(s) ;
}
else if $(s)
{
NOTFILE $(s) ;
}
}
}
actions MkDir1
{
mkdir $(<)
}
actions piecemeal together existing Clean
{
$(RM) $(>)
}
rule copy
{
}
actions copy
{
$(CP) $(>) $(<)
}