// -*- MPC -*-
// $Id: svcconf.mpb 81335 2008-04-11 01:53:36Z iliyan $

feature(ace_svcconf) {
  macros -= ACE_LACKS_ACE_SVCCONF

  Source_Files(ACE_COMPONENTS) {
    DLL.cpp
    Dynamic_Service_Base.cpp
    Dynamic_Service_Dependency.cpp
    Parse_Node.cpp
    Service_Config.cpp
    Service_Gestalt.cpp
    Service_Manager.cpp
    Service_Object.cpp
    Service_Repository.cpp
    Service_Types.cpp
    Shared_Object.cpp
    Svc_Conf_Lexer.cpp
    Svc_Conf_y.cpp
    Encoding_Converter.cpp
    Encoding_Converter_Factory.cpp
    UTF8_Encoding_Converter.cpp
    UTF16_Encoding_Converter.cpp
    UTF32_Encoding_Converter.cpp
    XML_Svc_Conf.cpp
  }

  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"
  }
}
