#
# $XORP: xorp/rtrmgr/Jamfile,v 1.3 2007/09/14 01:56:55 pavlin Exp $
#

SubDir TOP rtrmgr ;
SubIncludeOnce TOP libxorp ;
SubIncludeOnce TOP libcomm ;
SubIncludeOnce TOP xrl interfaces ;
SubIncludeOnce TOP xrl targets ;
SubIncludeOnce TOP libxipc ;
SubIncludeOnce TOP libproto ;
SubIncludeOnce TOP cli ;
SubIncludeOnce TOP cli libtecla ;
SubIncludeOnce TOP rtrmgr config ;
SubDir TOP rtrmgr ;

LINKLIBS_RTRMGR_COMMON = 
	librtrmgr
	libfinder
	libxipc
	libcomm
	libxorp
	;

#
# To regenerate the lex/yacc generated code, run from
# this directory using: jam -sGENERATE_PARSERS=1
# Ignore subsequent compile failures.
#
if $(GENERATE_PARSERS) {
 XorpYaccC++ <rtrmgr>y.boot_tab.cc : <rtrmgr>y.boot_tab.h : boot : boot.yy ;
 XorpYaccC++ <rtrmgr>y.opcmd_tab.cc : <rtrmgr>y.opcmd_tab.h : opcmd : op_commands.yy ;
 XorpYaccC++ <rtrmgr>y.tplt_tab.cc : <rtrmgr>y.tplt_tab.h : tplt : template.yy ;
 XorpFlexC++ <rtrmgr>lex.boot.cc : boot : boot.ll ;
 XorpFlexC++ <rtrmgr>lex.opcmd.cc : opcmd : op_commands.ll ;
 XorpFlexC++ <rtrmgr>lex.tplt.cc : tplt : template.ll ;
}

# This is a new dependency introduced with jam, to avoid
# building objects more than once.
Library librtrmgr :
	command_tree.cc
	conf_tree.cc
	conf_tree_node.cc
	config_operators.cc
	generic_module_manager.cc
	glob_win32.c
	lex.boot.cc
	lex.opcmd.cc
	lex.tplt.cc
	master_conf_tree.cc
	master_conf_tree_node.cc
	master_template_tree.cc
	master_template_tree_node.cc
	module_command.cc
	module_manager.cc
	op_commands.cc
	randomness.cc
	slave_conf_tree.cc
	slave_conf_tree_node.cc
	slave_module_manager.cc
	task.cc
	template_base_command.cc
	template_commands.cc
	template_tree.cc
	template_tree_node.cc
	unexpanded_program.cc
	unexpanded_xrl.cc
	userdb.cc
	util.cc
	xorp_client.cc
	xrldb.cc
	y.boot_tab.cc
	y.opcmd_tab.cc
	y.tplt_tab.cc
	;

Main xorp_rtrmgr :
	main_rtrmgr.cc
	xrl_rtrmgr_interface.cc
	;
LinkLibraries xorp_rtrmgr :
	librtrmgrbase
	librtrmgr_clientxif
	libfindereventnotifierxif
	$(LINKLIBS_RTRMGR_COMMON)
	;

Main xorpsh :
	xorpsh_main.cc
	xrl_xorpsh_interface.cc
	cli.cc
	;
LinkLibraries xorpsh :
	libcli
	libtecla
	libproto
	librtrmgrxif
	libxorpshbase
	$(LINKLIBS_RTRMGR_COMMON)
	;

Main xorp_profiler : profiler.cc ;
LinkLibraries xorp_profiler :
	libprofilexif
	libprofileclientbase
	$(LINKLIBS_RTRMGR_COMMON)
	;

if $(MAKE_CHECK) {
 Main test_templates : test_templates.cc ;
 LinkLibraries test_templates : $(LINKLIBS_RTRMGR_COMMON) ;

 Main test_sample_config : test_sample_config.cc ;
 LinkLibraries test_sample_config : $(LINKLIBS_RTRMGR_COMMON) ;

 Main test_module_manager : test_module_manager.cc ;
 LinkLibraries test_module_manager : $(LINKLIBS_RTRMGR_COMMON) ;
}

InstallBin $(PREFIX)/bin : xorp_profiler xorp_rtrmgr xorpsh ;
