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.