---
name: "gnulib-tool"
section: "1"
platform: "linux"
package: "gnulib"
version: "20250303-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/gnulib-tool"
---

# gnulib-tool(1)

program for authors or maintainers which want to import modules from gnulib into their packages.

## NAME

gnulib-tool - program for authors or maintainers which want to import modules from gnulib into their packages.

## SYNOPSIS

**gnulib-tool** --list

**gnulib-tool** --import \[module1 ... moduleN\]

**gnulib-tool** --update

**gnulib-tool** --create-testdir --dir=directory module1 ... moduleN

**gnulib-tool** --create-megatestdir --dir=directory \[module1 ... moduleN\]

**gnulib-tool** --test --dir=directory module1 ... moduleN

**gnulib-tool** --megatest --dir=directory \[module1 ... moduleN\]

**gnulib-tool** --extract-description module

**gnulib-tool** --extract-filelist module

**gnulib-tool** --extract-dependencies module

**gnulib-tool** --extract-autoconf-snippet module

**gnulib-tool** --extract-automake-snippet module

**gnulib-tool** --extract-include-directive module

**gnulib-tool** --extract-license module

**gnulib-tool** --extract-maintainer module

**gnulib-tool** --extract-tests-module module

## DESCRIPTION

The GNU portability library is a macro system and C declarations and definitions for commonly-used API elements and abstracted system behaviors. It can be used to improve portability and other functionality in your programs.

## OPTIONS

Operation modes:

- **--list**

  print the available module names.

- **--import**

  import the given modules into the current package; if no modules are specified, update the current package from the current gnulib.

- **--update**

  update the current package, restore files omitted from CVS.

- **--create-testdir**

  create a scratch package with the given modules.

- **--create-megatestdir**

  create a mega scratch package with the given modules one by one and all together.

- **--test**

  test the combination of the given modules (recommended to use CC="gcc -Wall" here).

- **--megatest**

  test the given modules one by one and all together (recommended to use CC="gcc -Wall" here).

- **--extract-description**

  extract the description.

- **--extract-filelist**

  extract the list of files.

- **--extract-dependencies**

  extract the dependencies.

- **--extract-autoconf-snippet**

  extract the snippet for configure.ac.

- **--extract-automake-snippet**

  extract the snippet for lib/Makefile.am.

- **--extract-include-directive**

  extract the #include directive.

- **--extract-license**

  report the license terms of the source files under lib/.

- **--extract-maintainer**

  report the maintainer(s) inside gnulib.

- **--extract-tests-module**

  report the unit test module, if it exists.

Options:

- **--dir=DIRECTORY**

  specify the target directory. For --import, this specifies where your configure.ac can be found. Defaults to current directory.

- **--lib=LIBRARY**

  Specify the library name. Defaults to 'libgnu'.

- **--source-base=DIRECTORY**

  Directory relative --dir where source code is placed (default "lib"), for --import.

- **--m4-base=DIRECTORY**

  Directory relative --dir where \*.m4 macros are placed (default "m4"), for --import.

- **--tests-base=DIRECTORY**

  Directory relative --dir where unit tests are placed (default "tests"), for --import.

- **--aux-dir=DIRECTORY**

  Directory relative --dir where auxiliary build tools are placed (default "build-aux").

- **--with-tests**

  Include unit tests for the included modules.

- **--avoid=MODULE**

  Avoid including the given MODULE. Useful if you have code that provides equivalent functionality. This option can be repeated.

- **--lgpl**

  Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL.

- **--libtool**

  Use libtool rules, for --import.

- **--macro-prefix=PREFIX**

  Specify the prefix of the macros 'gl\_EARLY' and 'gl\_INIT'. Default is 'gl'.

- **--no-changelog**

  don't update or create ChangeLog files.

- **--dry-run**

  For --import, only print what would have been done.

- **-s, --symbolic, --symlink**

  Make symbolic links instead of copying files.

- **-h, --help**

  Show summary of options.

## BUGS

Report bugs to \<bug-gnulib@gnu.org\>.

## SEE ALSO

[**check-module**(1)](/check-module/1.md).

## AUTHOR

gnulib was written by the Free Software Foundation and others (sources of various origins).

This manual page was written by Daniel Baumann \<daniel@debian.org\>, for the Debian project (but may be used by others).
