#############################################################  -*- c -*-
## top level mfd conf file
## $Id$
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile$ $Revision$ */
@end@
########################################################################
##
@if "x$mfd_interactive_setup" == "x"@
@   eval $mfd_interactive_setup = 1@
@end@
@if "x$m2c_report_progress" == "x"@
@   eval $m2c_report_progress = 1@
@end@
##
@ifconf default-mfd-top.m2c@
@   include default-mfd-top.m2c@
@end@
##
@if $name =~ /Table$/i@
@else@
@   print This module can only be used with tables, not branches or entire MIBs.@
@   print Please specify and OID that is a table. (OID: $name)@
@   quit@
@end@
##
@run mfd-top.m2c@
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile$ $Revision$ */
@end@
