# Copyright 2002 Dave Abrahams 
# Copyright 2002 Vladimir Prus 
# Distributed under the Boost Software License, Version 1.0. 
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 

import modules ;

if [ modules.peek : NT ]
{
    comment = // ;
}
else
{
    comment = \"//\" ;
}

rule uic ( target : sources * : properties * )
{
    comment on $(<) = $(comment) ;
}
rule uic-h ( target : sources * : properties * )
{
    comment on $(<) = $(comment) ;
}

actions uic 
{
    echo $(comment) $(>) > $(<)
}

actions uic-h
{
    echo $(comment) $(>) > $(<)
}
