1MAKESTRS(1)                 General Commands Manual                MAKESTRS(1)
2
3
4

NAME

6       makestrs - makes string table C source and header(s)
7

SYNOPSIS

9       makestrs [-f source] [-i includedir] [-abioptions ...]
10

DESCRIPTION

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

SYNTAX

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

BUGS

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

SEE ALSO

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)
Impressum