summaryrefslogtreecommitdiff
path: root/ace/svcconf.mpb
blob: ff8a4a1f0175ee9a556f4fa15629b3edd807a6b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// -*- MPC -*-
// $Id$

feature(ace_svcconf) {
  macros += ACE_HAS_ACE_SVCCONF

  Source_Files(ACE_COMPONENTS) {
    DLL.cpp
    DLL_Manager.cpp
    Dynamic_Service_Base.cpp
    Parse_Node.cpp
    Service_Config.cpp
    Service_Manager.cpp
    Service_Object.cpp
    Service_Repository.cpp
    Service_Types.cpp
    Service_Templates.cpp
    Shared_Object.cpp
    Svc_Conf_l.cpp
    Svc_Conf_y.cpp
    Svc_Conf_Lexer_Guard.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/char \\*getenv/char *ace_foo/g' \\"
    "       -e 's/= getenv/= ACE_OS::getenv/g' \\"
    "       -e 's/fprintf/ACE_OS::fprintf/g' \\"
    "       -e 's/yy/ace_yy/g' \\"
    "       -e 's/->ace_yyerrno/->yyerrno/g' \\"
    "       -e 's/->ace_yylineno/->yylineno/g' \\"
    "       -e 's/YY/ACE_YY/g' \\"
    "       -e 's/^char /ACE_TCHAR /g' \\"
    "       -e 's/ char / ACE_TCHAR /g' \\"
    "       -e 's/(char/(ACE_TCHAR/g' \\"
    "       -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 (int ace_yyerrno, int ace_yylineno, const ACE_TCHAR/ace_yyerror (int ace_yyerrno, int ace_yylineno, const char/' \\"
    "       -e 's@#include <stdio\.h>@@' \\"
    "       -e 's/Svc_Conf\\.tab\\.c/Svc_Conf_y.cpp/g' < Svc_Conf.tab.c > /tmp/$@"
    "	cp /tmp/$@ $@"
    "	echo \/\/ '$$I''d$$' > Svc_Conf_Tokens.h"
    "	cat Svc_Conf.tab.h >> Svc_Conf_Tokens.h"
    "	$(RM) -f /tmp/$@ Svc_Conf.tab.c Svc_Conf.tab.h 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_l.cpp: Svc_Conf.l"
    "ifeq ($(notdir $(LEX)), flex)"
    "	echo '#define YY_NO_UNPUT' > $@"
    "	echo >> $@"
    "	echo '#include \"ace/Object_Manager.h\"' >> $@"
    "	echo '#include \"ace/Guard_T.h\"' >> $@"
    "	echo '#include \"ace/Recursive_Thread_Mutex.h\"' >> $@"
    "	echo '#include \"ace/Synch_Traits.h\"' >> $@"
    "	echo '#include \"ace/OS_NS_ctype.h\"' >> $@"
    "	echo '#include \"ace/OS_NS_string.h\"' >> $@"
    "	$(LEX) -L -t -I Svc_Conf.l >> $@"
    "	echo '#endif /* ACE_USES_CLASSIC_SVC_CONF = 1 */' >> $@"
    "	sed -e 's/yy/ace_yy/g' \\"
    "       -e 's/YY/ACE_YY/g' \\"
    "       -e 's@#define unput.*@#if (ACE_USES_CLASSIC_SVC_CONF == 1)@' \\"
    "       -e 's/typedef unsigned char/typedef char/g' \\"
    "       -e 's/	/        /g' \\"
    "       -e 's/^char /ACE_TCHAR /g' \\"
    "       -e 's/ char / ACE_TCHAR /g' \\"
    "       -e 's/(char/(ACE_TCHAR/g' \\"
    "       -e 's/ NULL/ 0/g' \\"
    "       -e 's/->ace_yyerrno/->yyerrno/g' \\"
    "       -e 's/->ace_yylineno/->yylineno/g' \\"
    "       -e 's/free( ptr );/free( ACE_MALLOC_T (ptr) );/g' \\"
    "       -e 's/exit(/ACE_OS::exit(/g' \\"
    "       -e 's/isatty( fileno(file)/ACE_OS::isatty( fileno (file)/g' \\"
    "       -e 's/int isatty/int nop_isatty/g' \\"
    "       -e 's/realloc( (ACE_TCHAR \\*) ptr/realloc( (char *) ptr/g' \\"
    "       -e 's/unsigned ACE_TCHAR/unsigned char/g' \\"
    "       -e 's/ACE_TCHAR msg\\[\\]/char msg[]/g' \\"
    "       -e 's/fprintf/ACE_OS::fprintf/g' \\"
    "       -e 's/if[ ]*([ ]*num_to_read/if ( num_to_read * sizeof (ACE_TCHAR)/g' \\"
    "       -e 's/b->ace_yy_buf_size + 2/(&) * sizeof (ACE_TCHAR)/g' \\"
    "       -e 's@= ACE_YY_READ_BUF_SIZE@& / sizeof (ACE_TCHAR)@g' \\"
    "       -e 's/ace_yy_flex_alloc( n /&* sizeof (ACE_TCHAR)/g' \\"
    "       -e 's@#include <stdio\.h>@#include \"ace/OS_NS_stdio.h\"@' \\"
    "       -e 's@#include <unistd\.h>@#include \"ace/OS_NS_unistd.h\"@' \\"
    "       -e 's@#include <stdlib\.h>@#include \"ace/OS_NS_stdlib.h\"@' \\"
    "       -e 's@#include <@#include /**/ <@' \\"
    "       -e 's@ECHO@ACE_SVC_CONF_ECHO@' < $@ > /tmp/$@"
    "	cp /tmp/$@ $@"
    "	patch < ../etc/Svc_Conf_l.cpp.diff"
    "	$(RM) -f /tmp/$@ Svc_Conf_l.cpp.orig"
    "else"
    "	@echo 'ERROR: You must use flex 2.5.4 or higher to process this file'"
    "	@/bin/false"
    "endif"

  }

}