---
name: "gnatstub"
section: "1"
platform: "linux"
package: "asis-programs"
version: "2019-5"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/gnatstub"
---

# gnatstub(1)

Generate skeletons for Ada package bodies

## NAME

gnatstub - Generate skeletons for Ada package bodies

## SYNOPSIS

**gnatstub** \[*OPTION*\]... *filename* \[directory\]

## DESCRIPTION

**gnatstub** is an Ada library unit body sample generator. It takes a source file containing the source of an Ada library unit declaration and generates the sample body for this unit in another source file. Sample body is a kind of "minimal", but compilable body for a given unit declaration.

**gnatstub** is an ASIS application developed on top of the ASIS implementation for GNAT. The important thing to know about **gnatstub** is that to create a body, **gnatstub** first compiles the spec to create in your current directory the tree output file (or, simply, a tree file). After creating a body, **gnatstub** deletes this tree file (the tree file may be kept by setting the corresponding option). Therefore, if you have some other ASIS-based tools built on top of ASIS-for-GNAT, working on the tree files located in your current directory, be aware of possible changes in the set of tree files as a result of using gnatstub.

## OPTIONS

- **-f**

  Replace an existing body file (if any) with a body sample. If destination directory contains a file which should be considered as the body for *filename* according to the GNAT file name conventions, **gnatstub** treats this file as a body for *filename*, and it does not create a sample body if '-f' option is not set;

- **-hs**

  Put in body sample the comment header from the source of the library unit declaration contained in *filename* ("comment header" is all the comments preceding the compilation unit).

- **-hg**

  Put in body sample a sample comment header.

- **-I***dir*

  - **-I-**

  These options have just the same meaning as in calls to **gnatgcc** or **gnatmake**. They are used to define the source search path in the call to **gnatgcc** issued by **gnatstub** to create the tree file. Note, that to create a body, **gnatstub** needs a legal Ada unit, therefore if *filename* depends on some unit located in another directory, '-I' should be used to provide the path to this unit.

- **-i***n*

  (n is a decimal natural number) Sets the indentation level in a body sample to *n*, '-i0' means "no indentation", the default indentation is 3;

- **-k**

  Do not remove the tree file: as default, gnatstub removes from the current directory the tree file created for *filename* after creating the body sampler. '-k' prevents deleting the tree file.

- **-l***n*

  (n is a decimal positive number) Sets maximum line length in a body sample to *n*, the default line length is 78;

- **-q**

  Quiet mode: gnatstub does not generate a confirmation when a body is successfully created or a message when a body is not required for an argument unit.

- **-t**

  Overwrite the existing tree file: if the current directory already contains the file which, according to the GNAT file name rules should be considered as a tree file for *filename*, **gnatstub** will refuse to create the tree file needed to create a body sampler, unless '-t' option is set.

- **-v**

  Verbose mode: gnatstub generates version information.

## SEE ALSO

[gnat(1)](/gnat/1.md), [asistant(1)](/asistant/1.md), [gnat2xml(1)](/gnat2xml/1.md), [gnatcheck(1)](/gnatcheck/1.md), [gnatelim(1)](/gnatelim/1.md), [gnatmetric(1)](/gnatmetric/1.md), [gnatpp(1)](/gnatpp/1.md), [gnattest(1)](/gnattest/1.md)

Documentation about the ASIS tools may be found in */usr/share/doc/asis-doc/* if the **asis-doc** package is installed. The reference documentation about ASIS is excluded due to license problems, but may be found in various formats at *http://libre.adacore.com/developers/documentation*.
