GNULIB-TOOL(1)
π GNULIB-TOOL π
okay bestie, so this is the gnulib-tool page from the GNU Portability Library manual β yeah, the whole GNU Portability Library vibe, we're in section 1 of the manual, and it's giving "program for authors or maintainers which want to import modules from gnulib into their packages." no cap, that's literally what it is. sit down, get a snack π, we're doing this.
β¨ NAME β¨
gnulib-tool β a program for authors or maintainers which want to import modules from gnulib into their packages. that's the whole job description, fr fr. π«Ά
πΈ SYNOPSIS πΈ
like, here's every single way you can call her. don't skip any, they all matter:
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
look at all those modes. main character energy, honestly. π
π DESCRIPTION π
so the GNU portability library is a macro system plus 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. that's the whole tea. ββ¨
π OPTIONS π
Operation modes:
--listβ print the available module names. window shopping, basically. ποΈ--importβ import the given modules into the current package; if no modules are specified, update the current package from the current gnulib. yes, it does two things depending on whether you brought friends. π--updateβ update the current package, restore files omitted from CVS. bringing back the ones that ghosted. π--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. MEGA. all together now. π--testβ test the combination of the given modules (recommended to useCC="gcc -Wall"here).--megatestβ test the given modules one by one and all together (recommended to useCC="gcc -Wall"here).--extract-descriptionβ extract the description.--extract-filelistβ extract the list of files.--extract-dependenciesβ extract the dependencies. the lore. π¦--extract-autoconf-snippetβ extract the snippet forconfigure.ac.--extract-automake-snippetβ extract the snippet forlib/Makefile.am.--extract-include-directiveβ extract the#includedirective.--extract-licenseβ report the license terms of the source files underlib/.--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 yourconfigure.accan be found. Defaults to current directory.--lib=LIBRARYβ Specify the library name. Defaults to'libgnu'.--source-base=DIRECTORYβ Directory relative--dirwhere source code is placed (default"lib"), for--import.--m4-base=DIRECTORYβ Directory relative--dirwhere*.m4macros are placed (default"m4"), for--import.--tests-base=DIRECTORYβ Directory relative--dirwhere unit tests are placed (default"tests"), for--import.--aux-dir=DIRECTORYβ Directory relative--dirwhere auxiliary build tools are placed (default"build-aux").--with-testsβ Include unit tests for the included modules. testing era, we love her. π§--avoid=MODULEβ Avoid including the given MODULE. Useful if you have code that provides equivalent functionality. This option can be repeated. (yes bestie, spam it.)--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 createChangeLogfiles.--dry-runβ For--import, only print what would have been done. imaginary slay. π-s,--symbolic,--symlinkβ Make symbolic links instead of copying files.-h,--helpβ Show summary of options.
π BUGS π
found something cursed? Report bugs to <bug-gnulib@gnu.org>. they want the receipts, ngl.
π₯ SEE ALSO π₯
π AUTHOR π
gnulib was written by the Free Software Foundation and others (sources of various origins). iconic collective effort, honestly.
This manual page was written by Daniel Baumann <daniel@debian.org>, for the Debian project (but may be used by others). shoutout daniel, you ate. π
β¨
and that's the whole page bestie π β this was version 0.0.20060601, dated 2006-06-01, part of the GNU Portability Library era, in section 1 of the manual. go forth and port, queen. ππ¦π
π¦ where this page comes from
- debian bookworm: gnulib 20230209+stable-1 Β· custom-mostly-gpl
- debian trixie: gnulib 20250303-1 Β· custom-mostly-gpl
- epel 10: gnulib-devel 0-57.20260302git4a3650d.el10_3 Β· LicenseRef-Fedora-Public-Domain AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later
- epel 9: gnulib-devel 0-57.20260302git4a3650d.el9 Β· LicenseRef-Fedora-Public-Domain AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later
- fedora 43: gnulib-devel 0-52.20230709git.fc42 Β· Public Domain and BSD and GPLv2+ and GPLv3 and GPLv3+ and LGPLv2 and LGPLv2+ and LGPLv3+
- fedora 43: gnulib-devel 0-57.20260302git4a3650d.fc43 Β· LicenseRef-Fedora-Public-Domain AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later
- fedora 44: gnulib-devel 0-57.20260302git4a3650d.fc44 Β· LicenseRef-Fedora-Public-Domain AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later
- opensuse-leap 16.0: gnulib-devel git.20211127.db493d1ce-bp160.1.13 Β· GPL-2.0-or-later AND SUSE-Public-Domain AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.0-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later
- ubuntu jammy: gnulib 20210822~d383792-1 Β· GPL-2.0-or-later
- ubuntu noble: gnulib 20240117+stable-1 Β· custom-mostly-gpl
- ubuntu questing: gnulib 20250303-1
- ubuntu resolute: gnulib 20260109-1~exp1 Β· custom-mostly-gpl
- ubuntu stonking: gnulib 20260704-2 Β· custom-mostly-gpl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms