1MAKESTRS(1) General Commands Manual MAKESTRS(1)
2
3
4
6 makestrs - makes string table C source and header(s)
7
9 makestrs [-f source] [-i includedir] [-abioptions ...]
10
12 The makestrs command creates string table C source files and headers.
13 If -f source is not specified makestrs will read from stdin. The C
14 source file is always written to stdout. makestrs creates one or more
15 C header files as specified in the source file. The following options
16 may be specified: -sparcabi, -intelabi, -functionabi, -arrayperabi, and
17 -defaultabi.
18
19 -sparcabi is used on SPARC platforms conforming to the SPARC Compliance
20 Definition, i.e. SVR4/Solaris.
21
22 -intelabi is used on Intel platforms conforming to the System V Appli‐
23 cation Binary Interface, i.e. SVR4.
24
25 -earlyR6abi may be used in addition to -intelabi for situations where
26 the vendor wishes to maintain binary compatibility between X11R6 pub‐
27 lic-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
28
29 -functionabi generates a functional abi to the string table. This mech‐
30 anism imposes a severe performance penalty and it's recommended that
31 you not use it.
32
33 -arrayperabi results in a separate array for each string. This is the
34 default behavior if makestrs was compiled with -DARRAYPERSTR (it almost
35 never is).
36
37 -defaultabi forces the generation of the "normal" string table even if
38 makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
39 never compiled with -DARRAYPERSTR this is the default behavior if no
40 abioptions are specified.
41
42 -i includedir forces the reading of templates from the includedir
43 instead of the local directory. This is useful to have separate source
44 and build directories.
45
47 The syntax for string-list file is (items in square brackets are
48 optional):
49 #prefix <text>
50 #feature <text>
51 #externref <text>
52 #externdef [<text>]
53 [#ctempl <text>]
54
55 #file <filename>
56 #table <tablename>
57 [#htempl]
58 <text>
59 ...
60 <text>
61 [#table <tablename>
62 <text>
63 ...
64 <text>
65 ...
66 #table <tablename>
67 ...]
68 [#file <filename>
69 ...]
70
71 In words you may have one or more #file directives. Each #file may have
72 one or more #table directives.
73
74 The #prefix directive determines the string that makestr will prefix to
75 each definition.
76
77 The #feature directive determines the string that makestr will use for
78 the feature-test macro, e.g. X[TM]STRINGDEFINES.
79
80 The #externref directive determines the string that makestr will use
81 for the extern clause, typically this will be "extern" but Motif wants
82 it to be "externalref"
83
84 The #externdef directive determines the string that makestr will use
85 for the declaration, typically this will be the null string (note that
86 makestrs requires a trailing space in this case, i.e. "#externdef "),
87 and Motif will use "externaldef(_xmstrings).
88
89 The #ctmpl directive determines the name of the file used as a template
90 for the C source file that is generated
91
92 Each #file <filename> directive will result in a corresponding header
93 file by that name containing the appropriate definitions as specified
94 by command line options. A single C source file containing the declara‐
95 tions for the definitions in all the headers will be printed to stdout.
96
97 The #htmpl directive determines the name of the file used as a template
98 for the C header file that is generated.
99
100 Each #table <tablename> directive will be processed in accordance with
101 the ABI. On most platforms all tables will be catenated into a single
102 table with the name of the first table for that file. To conform to the
103 Intel ABI separate tables will be generated with the names indicated.
104
105 The template files specified by the #ctmpl and #htmpl directives are
106 processed by copying line for line from the template file to the appro‐
107 priate output file. The line containing the string <<<STRING_TA‐
108 BLE_GOES_HERE>>> is not copied to the output file. The appropriate data
109 is then copied to the output file and then the remainder of the tem‐
110 plate file is copied to the output file.
111
113 makestrs is not very forgiving of syntax errors. Sometimes you need a
114 trailing space after # directives, other times they will mess you up.
115 No warning messages are emitted.
116
118 SPARC Compliance Definition 2.2., SPARC International Inc., 535 Middle‐
119 field Road, Suite 210, Menlo Park, CA 94025
120
121 System V Application Binary Interface, Third Edition, ISBN
122 0-13-100439-5 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Engle‐
123 wood Cliffs, NJ 07632
124
125 System V Application Binary Interface, Third Edition, Intel386 Archi‐
126 tecture Processor Supplement ISBN 0-13-104670-5 UNIX Press, PTR Pren‐
127 tice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632
128
129 System V Application Binary Interface, Third Edition, SPARC Architec‐
130 ture Processor Supplement ISBN 0-13-104696-9 UNIX Press, PTR Prentice
131 Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ 07632
132
133
134
135X Version 11 libXt 1.0.7 MAKESTRS(1)