1 .\" $XConsortium: makestrs.man /main/3 1996/09/28 16:16:52 rws $
2 .\" Copyright (c) 1993, 1994 X Consortium
4 .\" Permission is hereby granted, free of charge, to any person obtaining a
5 .\" copy of this software and associated documentation files (the "Software"),
6 .\" to deal in the Software without restriction, including without limitation
7 .\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 .\" and/or sell copies of the Software, and to permit persons to whom the
9 .\" Software furnished to do so, subject to the following conditions:
11 .\" The above copyright notice and this permission notice shall be included in
12 .\" all copies or substantial portions of the Software.
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 .\" THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 .\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
19 .\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 .\" Except as contained in this notice, the name of the X Consortium shall not
23 .\" be used in advertising or otherwise to promote the sale, use or other
24 .\" dealing in this Software without prior written authorization from the
26 .TH MAKESTRS 1 "Release 6.1" "X Version 11"
28 makestrs \- makes string table C source and header(s)
30 .B makestrs [-f source] [-abioptions ...]
34 command creates string table C source files and headers.
42 The C source file is always written to
45 creates one or more C header files as specified in the source file.
46 The following options may be specified:
55 is used on SPARC platforms conforming to the SPARC
56 Compliance Definition, i.e. SVR4/Solaris.
59 is used on Intel platforms conforming to the System
60 V Application Binary Interface, i.e. SVR4.
63 may be used in addition to
66 where the vendor wishes to maintain binary compatiblity between
67 X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
70 generates a functional abi to the string table. This
71 mechanism imposes a severe performance penalty and it's recommended
75 results in a separate array for each string. This is
76 the default behavior if makestrs was compiled with -DARRAYPERSTR
80 forces the generation of the "normal" string table even
81 if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
82 never compiled with -DARRAYPERSTR this is the default behavior if
83 no abioptions are specified.
85 The syntax for string-list file is (items in square brackets are optional):
148 In words you may have one or more #file directives. Each #file may have
149 one or more #table directives.
151 The #prefix directive determines the string that makestr will prefix
154 The #feature directive determines the string that makestr will use
155 for the feature-test macro, e.g. X[TM]STRINGDEFINES.
157 The #externref directive determines the string that makestr will use
158 for the extern clause, typically this will be "extern" but Motif wants
159 it to be "externalref"
161 The #externdef directive determines the string that makestr will use
162 for the declaration, typically this will be the null string (note that
163 makestrs requires a trailing space in this case, i.e. "#externdef "),
164 and Motif will use "externaldef(_xmstrings).
166 The #ctmpl directive determines the name of the file used as a template
167 for the C source file that is generated
169 Each #file <filename> directive will result in a corresponding header
170 file by that name containing the appropriate definitions as specified
171 by command line options. A single C source file containing the
172 declarations for the definitions in all the headers will be printed
175 The #htmpl directive determines the name of the file used as a template
176 for the C header file that is generated.
178 Each #table <tablename> directive will be processed in accordance with
179 the ABI. On most platforms all tables will be catenated into a single
180 table with the name of the first table for that file. To conform to
181 the Intel ABI separate tables will be generated with the names indicated.
183 The template files specified by the #ctmpl and #htmpl directives
184 are processed by copying line for line from the template file to
185 the appropriate output file. The line containing the string
186 .I <<<STRING_TABLE_GOES_HERE>>>
187 is not copied to the output file. The appropriate data is then
188 copied to the output file and then the remainder of the template
189 file is copied to the output file.
191 makestrs is not very forgiving of syntax errors. Sometimes you need
192 a trailing space after # directives, other times they will mess you
193 up. No warning messages are emitted.
195 SPARC Compliance Definition 2.2., SPARC International Inc.,
196 535 Middlefield Road, Suite 210, Menlo Park, CA 94025
198 System V Application Binary Interface, Third Edition,
200 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
203 System V Application Binary Interface, Third Edition, Intel386
204 Architecture Processor Supplement
206 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
209 System V Application Binary Interface, Third Edition, SPARC
210 Architecture Processor Supplement
212 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,