--- /dev/null
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+]>
+<refentry id="yaz-comp">
+
+ <refmeta>
+ <refentrytitle>yaz-comp</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>yaz-comp</refname>
+ <refpurpose>YAZ ASN.1 compiler</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>yaz-comp</command>
+ <arg choice="opt"><option>-v</option></arg>
+ <arg choice="opt"><option>-c <replaceable>cfile</replaceable></option></arg>
+ <arg choice="opt"><option>-h <replaceable>hfile</replaceable></option></arg>
+ <arg choice="opt"><option>-p <replaceable>pfile</replaceable></option></arg>
+ <arg choice="opt"><option>-d <replaceable>config</replaceable></option></arg>
+ <arg choice="opt"><option>-I <replaceable>includeout</replaceable></option></arg>
+ <arg choice="opt"><option>-i <replaceable>includedir</replaceable></option></arg>
+ <arg choice="opt"><option>-m <replaceable>module</replaceable></option></arg>
+ <arg choice="opt">asn-file</arg>
+ </cmdsynopsis>
+
+ </refsynopsisdiv>
+ <refsect1><title>DESCRIPTION</title>
+ <para>
+ <command>yaz-comp</command> is an ASN.1 compiler that
+ reads an ASN.1 specification and produces C/C++ definitions
+ and encoders/decoders for it.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+ <variablelist>
+ <varlistentry><term><literal>-v </literal>
+ </term>
+ <listitem>
+ <para>
+ Makes the ASN.1 compiler print more verbose about the
+ various stages of operations.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>-c </literal>
+ <replaceable>cfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of the C/C++ file with encoders/decoders.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-c </literal>
+ <replaceable>cfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of the C/C++ file with encoders/decoders.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-c </literal>
+ <replaceable>cfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of the C/C++ file with encoders/decoders.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-h </literal>
+ <replaceable>hfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of header file with definitions.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-p </literal>
+ <replaceable>pfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of the a private header file with
+ definitions. By default all definitions are put
+ in header file (option -h).
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-d </literal>
+ <replaceable>dfile</replaceable></term>
+ <listitem><para>
+ Specifies the name of a definitions file.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-I </literal>
+ <replaceable>iout</replaceable></term>
+ <listitem><para>
+ Specifies first part of directory in which header files
+ are written.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-i </literal>
+ <replaceable>idir</replaceable></term>
+ <listitem><para>
+ Specifies second part of directory in which header files
+ are written.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>-m </literal>
+ <replaceable>module</replaceable></term>
+ <listitem><para>
+ Specifies that ASN.1 compiler should only process the
+ module given. If this option is not specified,
+ all modules in the ASN.1 file are processed.
+ </para></listitem></varlistentry>
+
+ </variablelist>
+ </refsect1>
+ <refsect1><title>DEFINITIONS FILE</title>
+ <para>
+ The definitions file is really a Tcl script but follows
+ traditional rules for Shell like configuration files.
+ That is # denotes the beginning of a comment. Definitions
+ are line oriented. The definitions files usually consists of
+ a series of variable assignments of the form:
+ </para>
+ <para>
+ <literal>set</literal> <replaceable>name</replaceable> <replaceable>value</replaceable>
+ </para>
+ <para>
+ Available variables are:
+ <variablelist>
+
+ <varlistentry><term><literal>default-prefix</literal></term>
+ <listitem><para>
+ Sets prefix for names in the produced output.
+ The value consists of three tokens: C function prefix,
+ C typedef prefix and preprocessor prefix respectively.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>prefix(</literal><replaceable>module</replaceable><literal>)</literal></term>
+ <listitem><para>
+ This value sets prefix values for module
+ <replaceable>module</replaceable>.
+ The value has same form as <literal>default-prefix</literal>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>filename(</literal><replaceable>module</replaceable><literal>)</literal></term>
+ <listitem><para>
+ Specifies filename for C/header file for module
+ <replaceable>module</replaceable>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
+ <listitem><para>
+ Code fragment to be put in first part of public header for module
+ <replaceable>module</replaceable>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
+ <listitem><para>
+ Code fragment to be put in last part of public header for module
+ <replaceable>module</replaceable> (trailer).
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
+ <listitem><para>
+ Code fragment to be put in first part of C encoder/decoder for
+ module <replaceable>module</replaceable>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
+ <listitem><para>
+ Code fragment to be put in last part of C encoder/decoder for
+ module <replaceable>module</replaceable> (trailer).
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>map(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>)</literal></term>
+ <listitem><para>
+ Maps ASN.1 type in module <replaceable>module</replaceable>
+ of <replaceable>name</replaceable> to value.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>membermap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
+ <listitem><para>
+ Maps member <replaceable>member</replaceable> in SEQUENCE of
+ <replaceable>name</replaceable> in module
+ <replaceable>module</replaceable> to value.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><literal>unionmap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
+ <listitem><para>
+ Maps member <replaceable>member</replaceable> in CHOICE of
+ <replaceable>name</replaceable> in module
+ <replaceable>module</replaceable> to value.
+ Value consists of three tokens.
+ </para></listitem></varlistentry>
+
+ </variablelist>
+ </para>
+ </refsect1>
+ <refsect1><title>FILES</title>
+ <para>
+ <filename>/usr/share/yaz/z39.50/z.tcl</filename>
+ </para>
+ <para>
+ <filename>/usr/share/yaz/z39.50/*.asn</filename>
+ </para>
+ </refsect1>
+ <refsect1><title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>yaz</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry>
+ </para>
+ <para>
+ Section "Generic server" in the YAZ manual.
+ </para>
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-local-catalogs: nil
+sgml-namecase-general:t
+End:
+-->