Man Linux: Main Page and Category List

NAME

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

SYNOPSIS

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

DESCRIPTION

       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.

       -i  includedir  forces  the  reading  of  templates from the includedir
       instead of the local directory. This is useful to have separate  source
       and build directories.

SYNTAX

       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.

BUGS

       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.

SEE ALSO

       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