|
Table of Contents
makestrs - makes string table C source and
header(s)
makestrs [-f source] [-abioptions ...]
The makestrs
command creates string table C source files and headers. If -f source is
not specified makestrs will read from stdin. The C source file is always
written to stdout. makestrs creates one or more C header files as specified
in the source file. The following options may be specified: -sparcabi, -intelabi,
-functionabi, -arrayperabi, and -defaultabi.
-sparcabi is used on SPARC platforms
conforming to the SPARC Compliance Definition, i.e. SVR4/Solaris.
-intelabi
is used on Intel platforms conforming to the System V Application Binary
Interface, i.e. SVR4.
-earlyR6abi may be used in addition to -intelabi for
situations where the vendor wishes to maintain binary compatibility between
X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
-functionabi generates a functional abi to the string table. This mechanism
imposes a severe performance penalty and it's recommended that you not
use it.
-arrayperabi results in a separate array for each string. This is
the default behavior if makestrs was compiled with -DARRAYPERSTR (it almost
never is).
-defaultabi forces the generation of the "normal" string table
even if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
never compiled with -DARRAYPERSTR this is the default behavior if no abioptions
are specified.
The syntax for string-list file is (items in square
brackets are optional):
#prefix <text>
#feature <text>
#externref <text>
#externdef
[<text>]
[#ctempl <text>]
#file <filename>
#table <tablename>
[#htempl]
<text>
<text>
[#table <tablename>
<text>
<text>
...
#table <tablename>
...]
[#file <filename>
...]
In words you may have one or more #file directives. Each #file may have
one or more #table directives.
The #prefix directive determines the string
that makestr will prefix to each definition.
The #feature directive determines
the string that makestr will use for the feature-test macro, e.g. X[TM]STRINGDEFINES.
The #externref directive determines the string that makestr will use for
the extern clause, typically this will be "extern" but Motif wants it to
be "externalref"
The #externdef directive determines the string that makestr
will use for the declaration, typically this will be the null string (note
that makestrs requires a trailing space in this case, i.e. "#externdef "),
and Motif will use "externaldef(_xmstrings).
The #ctmpl directive determines
the name of the file used as a template for the C source file that is generated
Each #file <filename> directive will result in a corresponding header file
by that name containing the appropriate definitions as specified by command
line options. A single C source file containing the declarations for the
definitions in all the headers will be printed to stdout.
The #htmpl directive
determines the name of the file used as a template for the C header file
that is generated.
Each #table <tablename> directive will be processed in
accordance with the ABI. On most platforms all tables will be catenated
into a single table with the name of the first table for that file. To conform
to the Intel ABI separate tables will be generated with the names indicated.
The template files specified by the #ctmpl and #htmpl directives are processed
by copying line for line from the template file to the appropriate output
file. The line containing the string <<<STRING_TABLE_GOES_HERE>>> is not copied
to the output file. The appropriate data is then copied to the output file
and then the remainder of the template file is copied to the output file.
makestrs is not very forgiving of syntax errors. Sometimes you need
a trailing space after # directives, other times they will mess you up.
No warning messages are emitted.
SPARC Compliance Definition 2.2.,
SPARC International Inc., 535 Middlefield Road, Suite 210, Menlo Park, CA
94025
System V Application Binary Interface, Third Edition, ISBN 0-13-100439-5
UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, NJ
07632
System V Application Binary Interface, Third Edition, Intel386 Architecture
Processor Supplement ISBN 0-13-104670-5 UNIX Press, PTR Prentice Hall, 113
Sylvan Avenue, Englewood Cliffs, NJ 07632
System V Application Binary
Interface, Third Edition, SPARC Architecture Processor Supplement ISBN
0-13-104696-9 UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood
Cliffs, NJ 07632
Table of Contents
|