6

I follows an instruction to install shtool

  1. Download and extract

    wget ftp://ftp.gnu.org/gnu/shtool/shtool-2.0.8.tar.gz
    tar -zxvf shtool-2.0.8.tar.gz
    
  2. Build the library

    $ ./configure 
    $ make
    

I could refer to make manual by

man make

How could I reach the manual about configure

  • 4
    configure is a script, not a command, thus there is no man page. – Panther Oct 29 '18 at 15:02
  • 3
    @Panther This is an artificial distinction. – Konrad Rudolph Oct 29 '18 at 17:29
17

The configure script is a script that will configure the software that it was distributed with for compilation (if applicable) and installation.

These scripts are often (as in this case) created by GNU autoconf (a tool used by developers specifically for creating portable configure scripts), which means that it will have at least a minimum of a certain set of options. One of these options is --help.

$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

(etc.)

There is no manual for configure as it's specific to the software package that it was distributed with, and some of the available options may depend on the software that it configures (so it can't be a system-wide tool with its own manual). In particular, there are often --with-xxx and --without-xxx options to configure projects with or without some library xxx, and likewise --enable-xxx and --disable-xxx options to enable or disable certain features (not in this shtool distribution though, it seems).

There is often (as in this case) both a README and an INSTALL text file distributed with the source code. These files will describe the software and how to configure it and install it. The INSTALL document will often tell you how the authors envisage the installation should happen, and you can refer to the configure --help output for how to customise this to your own needs.

  • 1
    as some of the available options may depend on the software that it configures This part is crucial. Almost the only safe thing you can assume will be present on a GNU system is the --help option, which in turn will show all of the others. Thus, they/we never bothered with a man page. – Ti Strga Oct 29 '18 at 19:40
  • @TiStrga I believe most, if not all, of the options that I included in the output above will always be there, but it may also depend on the version of autoconf used to generate the configure tool. – Kusalananda Oct 29 '18 at 19:56
  • Indeed, some of those are still "new" to my old brain. :-) Technically, --version is also required to be there, and in practice the caching controls always have been. – Ti Strga Oct 29 '18 at 20:02
  • --prefix=DIR is also pretty much universal among configure scripts and is an essential argument (unless somehow you're satisfied with dumping everything into the single /usr/local tree). – Daniel Schepler Oct 30 '18 at 0:04
4

configure is a script, not a command, thus there is no man page.

You can find information in the README file and, if the author was kind, a --help option

See https://www.linuxquestions.org/questions/linux-general-1/configure-command-315662/ or similar for a discussion.

  • 4
    If configure was generated by autoconf, then it will always have a --help option. A README or INSTALL file may exist if the author has written and distributed them. Also, calling configure "not a command" is not quite right. It's a command like any other, it's just that it's a specific command for configuring a particular piece of software (and it's probably not located in $PATH). Any command can be a script (firefox, for example, is often a script). – Kusalananda Oct 29 '18 at 15:47
  • @Kusalananda true, but autoconf is not always used, it varies by project as does README and / or INSTALL and / or a clean or remove option(s) – Panther Oct 29 '18 at 15:50
  • 1
    I'd be surprised if a configure script distributed by the GNU people was not built by autoconf... – Kusalananda Oct 29 '18 at 15:52
  • On my Ubuntu, which is a script, but it does have a manpage. – Digital Trauma Oct 29 '18 at 21:07
  • configure is a script included in the source of the downloaded package, so it would be odd if it had a man page installed on the system. – Roger Lipscombe Oct 30 '18 at 13:26
0

Well by ./configure command you are executing a file called configure. This is similar as executing any file so there will be no manual entry as this is not a command. While make is a command so you will find manual entry for make.

  • 4
    There is no distinction between "commands" and "scripts" on Unix systems. – Kusalananda Oct 29 '18 at 15:50
  • this clicks with me, there is no distinction among "commands", "function", "script", "program", "process", "routine", "modular", "lib". they are functions in nature. @Kusalananda – Algebra Oct 29 '18 at 23:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.