mirror of
https://github.com/boostorg/build.git
synced 2026-02-16 13:22:11 +00:00
107 lines
1.8 KiB
Plaintext
107 lines
1.8 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
|
|
{
|
|
RM = del /f ;
|
|
CP = copy ;
|
|
}
|
|
else
|
|
{
|
|
RM = rm ;
|
|
CP = cp ;
|
|
}
|
|
|
|
nl = "
|
|
" ;
|
|
|
|
# Returns the command needed to set shell variable on the
|
|
# current platform.
|
|
rule variable-setting-command ( variable value )
|
|
{
|
|
if [ modules.peek : NT ]
|
|
{
|
|
return "set $(variable)=$(value)$(nl)" ;
|
|
}
|
|
else
|
|
{
|
|
return "$(variable)=$(value)" ;
|
|
}
|
|
}
|
|
|
|
|
|
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) "$(>)" "$(<)"
|
|
}
|
|
|
|
|