1 .\" $TOG: makestrs.man /main/4 1998/02/06 11:24:22 kaleb $
2 .\" Copyright (c) 1993, 1994, 1998 The Open Group
4 .\" All Rights Reserved.
6 .\" The above copyright notice and this permission notice shall be included in
7 .\" all copies or substantial portions of the Software.
9 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10 .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11 .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
12 .\" THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
13 .\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
14 .\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17 .\" Except as contained in this notice, the name of The Open Group shall not
18 .\" be used in advertising or otherwise to promote the sale, use or other
19 .\" dealing in this Software without prior written authorization from The
21 .TH MAKESTRS 1 "Release 6.4" "X Version 11"
23 makestrs \- makes string table C source and header(s)
25 .B makestrs [-f source] [-abioptions ...]
29 command creates string table C source files and headers.
37 The C source file is always written to
40 creates one or more C header files as specified in the source file.
41 The following options may be specified:
50 is used on SPARC platforms conforming to the SPARC
51 Compliance Definition, i.e. SVR4/Solaris.
54 is used on Intel platforms conforming to the System
55 V Application Binary Interface, i.e. SVR4.
58 may be used in addition to
61 where the vendor wishes to maintain binary compatiblity between
62 X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
65 generates a functional abi to the string table. This
66 mechanism imposes a severe performance penalty and it's recommended
70 results in a separate array for each string. This is
71 the default behavior if makestrs was compiled with -DARRAYPERSTR
75 forces the generation of the "normal" string table even
76 if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
77 never compiled with -DARRAYPERSTR this is the default behavior if
78 no abioptions are specified.
80 The syntax for string-list file is (items in square brackets are optional):
143 In words you may have one or more #file directives. Each #file may have
144 one or more #table directives.
146 The #prefix directive determines the string that makestr will prefix
149 The #feature directive determines the string that makestr will use
150 for the feature-test macro, e.g. X[TM]STRINGDEFINES.
152 The #externref directive determines the string that makestr will use
153 for the extern clause, typically this will be "extern" but Motif wants
154 it to be "externalref"
156 The #externdef directive determines the string that makestr will use
157 for the declaration, typically this will be the null string (note that
158 makestrs requires a trailing space in this case, i.e. "#externdef "),
159 and Motif will use "externaldef(_xmstrings).
161 The #ctmpl directive determines the name of the file used as a template
162 for the C source file that is generated
164 Each #file <filename> directive will result in a corresponding header
165 file by that name containing the appropriate definitions as specified
166 by command line options. A single C source file containing the
167 declarations for the definitions in all the headers will be printed
170 The #htmpl directive determines the name of the file used as a template
171 for the C header file that is generated.
173 Each #table <tablename> directive will be processed in accordance with
174 the ABI. On most platforms all tables will be catenated into a single
175 table with the name of the first table for that file. To conform to
176 the Intel ABI separate tables will be generated with the names indicated.
178 The template files specified by the #ctmpl and #htmpl directives
179 are processed by copying line for line from the template file to
180 the appropriate output file. The line containing the string
181 .I <<<STRING_TABLE_GOES_HERE>>>
182 is not copied to the output file. The appropriate data is then
183 copied to the output file and then the remainder of the template
184 file is copied to the output file.
186 makestrs is not very forgiving of syntax errors. Sometimes you need
187 a trailing space after # directives, other times they will mess you
188 up. No warning messages are emitted.
190 SPARC Compliance Definition 2.2., SPARC International Inc.,
191 535 Middlefield Road, Suite 210, Menlo Park, CA 94025
193 System V Application Binary Interface, Third Edition,
195 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
198 System V Application Binary Interface, Third Edition, Intel386
199 Architecture Processor Supplement
201 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
204 System V Application Binary Interface, Third Edition, SPARC
205 Architecture Processor Supplement
207 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,