
import toolset ;

project : requirements <tblgen>../tblgen//tblgen ;


# Create a.c using a custom action defined below.
make a.c : a.td : @tblgen ;

# Use a.c in executable.
exe core : core.cpp a.c ;

# The action has to invoke the tool built in other
# parts of the project. The <tblgen> feature is used
# to specify the location of the tool, and the flags
# statement below make the full path to the tool
# available inside the action.
toolset.flags tblgen COMMAND <tblgen> ;

# We generally want a.c to be rebuilt when the tool changes.
rule tblgen ( targets * : sources * : properties * )
{
    DEPENDS $(targets) : [ on $(targets) return $(COMMAND) ] ;
}

# The action that invokes the tool
actions tblgen bind COMMAND
{
    $(COMMAND:E=tblgen) > $(<)
}
