MAKESTRS(1)

MAKESTRS(1)

makeindex Home Page User Commands Index man


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

SYNOPSIS
       makestrs [-f source] [-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 situ-
       ations where the vendor wishes to maintain binary compati-
       blity  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 speci-
       fied.

SYNTAX
       The syntax for string-list file is (items in square brack-
       ets 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]STRINGDE-
       FINES.

       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  corre-
       sponding header file by that name containing the appropri-
       ate 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  indi-
       cated.

       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 &lt;&lt;&lt;STRING_TABLE_GOES_HERE&gt;&gt;&gt; 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,  Engle-
       wood Cliffs, NJ  07632

makeindex Home Page User Commands Index man