// -*- MPC -*-
// $Id: svcconfgen.mpc 89216 2010-02-25 07:39:30Z johnnyw $

project(ace_svcconf_gen) {
  requires += ace_svcconf_gen
  verbatim(gnuace, local) {
    "Svc_Conf_y.cpp: Svc_Conf.y"
    "ifeq ($(notdir $(YACC)), bison)"
    "   $(YACC) -l -d Svc_Conf.y"
    "   sed -e 's/fprintf/ACE_OS::fprintf/g' \\"       // Use ACE's fprintf, not library's
    "       -e 's/\\t/  /g' \\"                        // Eliminate tabs (replace with 2 spaces)
    "       -e 's/yy/ace_yy/g' \\"
    "       -e 's/->ace_yyerrno/->yyerrno/g' \\"       // This reverses the ace_ prefix where it
    "       -e 's/->ace_yylineno/->yylineno/g' \\"     // should not have been added by the substitution, above.
    "       -e 's/ NULL/ 0/g' \\"
    "       -e 's/ace_yyerror[ ]*([ ]*\"/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, \"/g' \\"
    "       -e 's/ace_yyerror[ ]*([ ]*ace_yymsg/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ace_yymsg/g' \\"
    "       -e 's/ace_yyerror[ ]*([ ]*YY_/ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_/g' \\"
    "       -e 's@#include <stdio\.h>@@' \\"
    "       -e 's/Svc_Conf\\.tab\\.c/Svc_Conf_y.cpp/g' <Svc_Conf.tab.c >$@"
    "   $(RM) -f Svc_Conf.tab.c Svc_Conf_y.cpp.orig"
    "else"
    "   @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
    "   @/bin/false"
    "endif"

    "Svc_Conf_Token_Table.h: Svc_Conf.y Svc_Conf_y.cpp"
    "ifeq ($(notdir $(YACC)), bison)"
    "   mv Svc_Conf.tab.h Svc_Conf_Token_Table.h"
    "else"
    "   @echo 'ERROR: You must use bison 1.35 or higher to process this file'"
    "   @/bin/false"
    "endif"
  }
}
