import toolset ; import os ; project : requirements ../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 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 ; # 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) > $(<) } if [ os.name ] = VMS { actions tblgen bind COMMAND { PIPE MCR $(COMMAND:WE=tblgen) > $(<:W) } }