GNAT User's Guide for Native Platforms
======================================

.. only:: not latex

    *GNAT, The GNU Ada Development Environment*

    .. only:: PRO

       *GNAT Pro Edition*

       | Version |version|
       | Date: |today|

    .. only:: GPL

       *GNAT Community Edition*

       | Version |version|
       | Date: |today|

    .. only:: FSF

       .. raw:: texinfo

          @include gcc-common.texi
          GCC version @value{version-GCC}@*

    AdaCore

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3 or
    any later version published by the Free Software Foundation; with no
    Invariant Sections, with the Front-Cover Texts being
    "GNAT User's Guide for Native Platforms",
    and with no Back-Cover Texts.  A copy of the license is
    included in the section entitled :ref:`gnu_fdl`.

.. toctree::
   :maxdepth: 3
   :numbered:

   gnat_ugn/about_this_guide
   gnat_ugn/getting_started_with_gnat
   gnat_ugn/the_gnat_compilation_model
   gnat_ugn/building_executable_programs_with_gnat
   gnat_ugn/gnat_utility_programs
   gnat_ugn/gnat_and_program_execution

.. raw:: latex

   \appendix

.. toctree::
   :maxdepth: 3

   A. Platform-Specific Information <gnat_ugn/platform_specific_information>
   B. Example of Binder Output <gnat_ugn/example_of_binder_output>
   C. Elaboration Order Handling in GNAT <gnat_ugn/elaboration_order_handling_in_gnat>
   D. Inline Assembler <gnat_ugn/inline_assembler>
   E. GNU Free Documentation License <share/gnu_free_documentation_license>


