# Copyright 2001 Dave Abrahams 
# 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) 

# This rule establishes a dependency, with no special build actions
rule do-nothing ( target : source )
{
    DEPENDS $(target) : $(source) ;
}
actions quietly do-nothing
{
}

# Make a non-file target which depends on a file that exists
NOTFILE fake-target ;
SEARCH on file-to-bind = subdir1 ;

do-nothing fake-target
    : file-to-bind ;

# Set jam up to call our bind-rule
BINDRULE = bind-rule ;

rule bind-rule ( target : path )
{
    ECHO found: $(target) at $(path) ;
}

DEPENDS all : fake-target ;
