1
.\" $TOG: makestrs.man /main/4 1998/02/06 11:24:22 kaleb $
3
.\" @OPENGROUP_COPYRIGHT@
5
.\" Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
6
.\" Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group
7
.\" ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
8
.\" the full copyright text.
10
.\" The above copyright notice and this permission notice shall be included in
11
.\" all copies or substantial portions of the Software.
13
.\" This software is subject to an open license. It may only be
14
.\" used on, with or for operating systems which are themselves open
15
.\" source systems. You must contact The Open Group for a license
16
.\" allowing distribution and sublicensing of this software on, with,
17
.\" or for operating systems which are not Open Source programs.
19
.\" See http://www.opengroup.org/openmotif/license for full
20
.\" details of the license agreement. Any use, reproduction, or
21
.\" distribution of the program constitutes recipient's acceptance of
24
.\" EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
25
.\" PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
26
.\" KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
27
.\" WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
28
.\" OR FITNESS FOR A PARTICULAR PURPOSE
30
.\" EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
31
.\" NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
32
.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33
.\" DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
34
.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
36
.\" ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
37
.\" EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
38
.\" POSSIBILITY OF SUCH DAMAGES.
39
.TH MAKESTRS 1 "Release 6.4" "X Version 11"
41
makestrs \- makes string table C source and header(s)
43
.B makestrs [-f source] [-abioptions ...]
47
command creates string table C source files and headers.
55
The C source file is always written to
58
creates one or more C header files as specified in the source file.
59
The following options may be specified:
68
is used on SPARC platforms conforming to the SPARC
69
Compliance Definition, i.e. SVR4/Solaris.
72
is used on Intel platforms conforming to the System
73
V Application Binary Interface, i.e. SVR4.
76
may be used in addition to
79
where the vendor wishes to maintain binary compatiblity between
80
X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
83
generates a functional abi to the string table. This
84
mechanism imposes a severe performance penalty and it's recommended
88
results in a separate array for each string. This is
89
the default behavior if makestrs was compiled with -DARRAYPERSTR
93
forces the generation of the "normal" string table even
94
if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
95
never compiled with -DARRAYPERSTR this is the default behavior if
96
no abioptions are specified.
98
The syntax for string-list file is (items in square brackets are optional):
161
In words you may have one or more #file directives. Each #file may have
162
one or more #table directives.
164
The #prefix directive determines the string that makestr will prefix
167
The #feature directive determines the string that makestr will use
168
for the feature-test macro, e.g. X[TM]STRINGDEFINES.
170
The #externref directive determines the string that makestr will use
171
for the extern clause, typically this will be "extern" but Motif wants
172
it to be "externalref"
174
The #externdef directive determines the string that makestr will use
175
for the declaration, typically this will be the null string (note that
176
makestrs requires a trailing space in this case, i.e. "#externdef "),
177
and Motif will use "externaldef(_xmstrings).
179
The #ctmpl directive determines the name of the file used as a template
180
for the C source file that is generated
182
Each #file <filename> directive will result in a corresponding header
183
file by that name containing the appropriate definitions as specified
184
by command line options. A single C source file containing the
185
declarations for the definitions in all the headers will be printed
188
The #htmpl directive determines the name of the file used as a template
189
for the C header file that is generated.
191
Each #table <tablename> directive will be processed in accordance with
192
the ABI. On most platforms all tables will be catenated into a single
193
table with the name of the first table for that file. To conform to
194
the Intel ABI separate tables will be generated with the names indicated.
196
The template files specified by the #ctmpl and #htmpl directives
197
are processed by copying line for line from the template file to
198
the appropriate output file. The line containing the string
199
.I <<<STRING_TABLE_GOES_HERE>>>
200
is not copied to the output file. The appropriate data is then
201
copied to the output file and then the remainder of the template
202
file is copied to the output file.
204
makestrs is not very forgiving of syntax errors. Sometimes you need
205
a trailing space after # directives, other times they will mess you
206
up. No warning messages are emitted.
208
SPARC Compliance Definition 2.2., SPARC International Inc.,
209
535 Middlefield Road, Suite 210, Menlo Park, CA 94025
211
System V Application Binary Interface, Third Edition,
213
UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
216
System V Application Binary Interface, Third Edition, Intel386
217
Architecture Processor Supplement
219
UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
222
System V Application Binary Interface, Third Edition, SPARC
223
Architecture Processor Supplement
225
UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,