X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=INSTALL;h=581ec11ba1127a18ee3dc06c129048614d95c186;hp=7c1dd4067dc9b9aa18e291b71e68d96bcbda1d2d;hb=aec2fac89b051dbde2a2dbd2414d73fcce508ea9;hpb=25e3bfdbea9eccc871a772b8f9f1729898382c3d diff --git a/INSTALL b/INSTALL index 7c1dd406..581ec11b 100644 --- a/INSTALL +++ b/INSTALL @@ -1,21 +1,76 @@ - -*- text -*- - Installation Procedure - -0) Preparation - -To build and install GNU Wget, you need to unpack the archive (which -you have presumably done, since you are reading this), and read on. -Like most GNU utilities, Wget uses the GNU Autoconf mechanism for -build and installation; those of you familiar with compiling GNU -software will feel at home. - -1) Configuration - -To configure Wget, run the configure script provided with the -distribution. You may use all the standard arguments configure -scripts take. The most important ones are: - - --help print help message + -*- text -*- + GNU Wget Installation Procedure + =============================== + +0. Introduction +--------------- + +This document describes how to build Wget from source code on +Unix-like systems. If you want to install a precompiled Wget, this +document is not for you -- refer to the documentation provided by the +distributors instead. If you already have Wget and want to learn how +to use it, refer to Wget's Info documentation or man page which you +should have received with your system. If you are using Windows +(except for Cygwin), read windows/README instead. If you want to +compile Wget from source code on a Unix-like system, read on. + +The preferred form of building Wget is to get a release archive and +unpack it (which you have presumably done, since you are reading +this). If you have obtained the source code via the Mercurial +repository, please follow the instructions in `README.checkout' before +continuing, as the sources from the Mercurial repository do not include +some files that are present in official distributions; these additional +files must be generated first. + +1. Dependencies +--------------- + +To build Wget, your system must support a Unix-like command-line +development environment, including the text-processing utilities (sh, +grep, awk, sed, etc.) and a functional C compiler. On some GNU/Linux +systems, this means that you will need to install packages such as +`gcc', `glibc-devel' (or `libc6-dev') and `make'. Most systems come +with these packages preinstalled, but it doesn't hurt to check. If +you have successfully compiled other software from source, you +probably have them all. + +In addition to the C development environment, Wget can use a number of +optional libraries to provide additional features, such as translated +messages and support for "https" URLs. The "external" dependencies +include: + + - OpenSSL -- for "https" URLs. + - GNU gettext -- for translated messages. + - GNU libidn -- for IDN/IRI support. + - GNU libiconv -- for IDN/IRI support (not needed on GNU). + +To be usable for building Wget, the listed libraries must be installed +with their "development" header files. On GNU/Linux systems this +typically means installing the corredponsing "lib-devel" or +"lib-dev" package along with the package with "lib". + +2. Configuration +---------------- + +Before compiling Wget, you need to "configure" it using the +`configure' script provided with the distribution. Configuration +serves two distinct purposes: it enables Wget's build system to +inspect certain features of your operating system for more robust +compilation, and it enables you to choose which features you want the +resulting Wget to have. + +As is the case with most GNU software, Wget's configure script was +generated with GNU Autoconf. If you're not familiar with +Autoconf-generated scripts, read on. + +The most straightforward way to configure Wget is by running the +configure script without any arguments. After running some +compilation-related tests, it will create the Makefiles needed to +build Wget. However, you may wish to customize Wget's configuration +by providing arguments to `configure'. Wget's configure script +accepts standard Autoconf arguments, the most important ones being: + + --help display a help message and exit --prefix=PREFIX install architecture-independent files in PREFIX (/usr/local by default) @@ -23,65 +78,112 @@ scripts take. The most important ones are: --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] +For example, if you are not root and want to install Wget in +subdirectories of your home directory, you can use: ---enable and --with options recognized (mostly Wget-specific): - --with-ssl[=SSL_ROOT] link with libssl [in SSL_ROOT/lib] for https: support + ./configure --prefix=$HOME + +In addition to the above generic options, Wget's configuration +supports a number of options more or less specific to Wget. Options +beginning with "--disable", such as `--disable-opie' or +`--disable-ntlm', allow you to turn off certain built-in functionality +you don't need in order to reduce the size of the executable. Options +beginning with "--with" turning off autodetection and use of external +software Wget can link with, such as the SSL libraries. Recognized +"--enable" and "--with" options include: + + --without-ssl disable SSL autodetection (used for https support) + --with-libssl-prefix=DIR search for libssl in DIR/lib --disable-opie disable support for opie or s/key FTP login --disable-digest disable support for HTTP digest authorization + --disable-ntlm disable support for HTTP NTLM authorization --disable-debug disable support for debugging output --disable-nls do not use Native Language Support --disable-largefile omit support for large files --disable-ipv6 disable IPv6 support - -So, if you want to configure Wget for installation in your home -directory, you can type: - - ./configure --prefix=$HOME - -You can customize many default settings by editing Makefile and -config.h. The program will work very well without your touching these -files, but it is useful to have a look at things you can change there. - -If you have OpenSSL libraries installed in one of the default -directories, such as /usr/local/lib or /usr/local/ssl/lib, you can -simply `configure --with-ssl'. If you have it installed elsewhere, -you need to specify your alternate OpenSSL root directory. For -instance, if libcrypto.* and libssl.* are in /opt/openssl/lib, you -need to `configure --with-ssl=/opt/openssl'. - -To configure Wget on Windows, read the instructions in -`windows/README'. If this doesn't work for any reason, talk to the -Windows developers listed there; I do not maintain the port. That -does not apply to the "Cygwin" environment, where Wget should compile -out of the box as described here. - -2) Compilation - -To compile the program, type make and cross your fingers. If you do -not have an ANSI compiler, Wget will try to KNR-ize its sources "on -the fly". This should make GNU Wget compilable on almost any -Unix-like system out there. - -After the compilation a ready to use `wget' executable should reside -in the src directory. I do not have any kind of test-suite as of this -moment, but it should be easy enough to test whether the basic stuff -works. - -3) Installation + --disable-rpath do not hardcode runtime library paths + --disable-iri disable IDN/IRIs support + +For the full list, see the output of `./configure --help'. + +You can inspect decisions made by configure by editing the generated +Makefiles and the `src/config.h' include file. The defaults should +work without intervention, but if you know what you are doing, editing +the generated files before compilation is fine -- they will not be +regenerated until you run configure again. + +`configure' will try to find a compiler in your PATH, defaulting to +`gcc', but falling back to `cc' if the former is unavailable. This is +a reasonable default on most Unix-like systems, but sometimes you +might want to override it. The compiler choice is overridden by +setting the `CC' environment variable to the desired compiler file +name. For example, to force compilation with the Unix `cc' compiler, +invoke configure like this: + + ./configure CC=cc + +This assumes that `cc' is in your path -- if it is not, simply use +CC=/path/to/cc instead. Note that environment variables that affect +configure can be set with the usual shell syntax `VAR=value ./configure' +(assuming sh syntax), but can also be specified as arguments to +configure, as shown above. The latter method, while being specific to +configure, works unmodified in all shells, and in addition allows +configure to detect when that setting has been changed across +invocations. + +Environment variables that affect `configure' include: CFLAGS for C +compiler flags, CPPFLAGS for C preprocessor flags, LDFLAGS for linker +flags, and LIBS for libraries. + +Barring the use of --without-* flags, configure will try to autodetect +external libraries needed by Wget, currently only the OpenSSL +libraries. If they are installed in the system library directories or +in the same prefix where you plan to install Wget, configure should be +able to autodetect them. If they are installed elsewhere, use the +`--with-libNAME' option to specify the root directory under which +libraries reside in the `lib/' subdirectory and the corresponding +header files reside in the `include/' subdirectory. For example, if +the OpenSSL libraries are installed under the /usr/local/ssl prefix, +use `--with-libssl=/usr/local/ssl'. + +Sometimes external libraries will be installed on the system, but the +header files will be missing. This often happens on GNU/Linux if you +forget to install the "-devel" or "-dev" package that corresponds to +the library and that is typically *not* installed by default. In that +case configure will not find the library and you will not be able to +use the features provided by the library until you install the devel +package and rerun configure. If you believe you have the necessary +headers, but configure still fails to detect the library, please +report it as a bug. + +3. Compilation +-------------- + +To compile GNU Wget after it has been configured, simply type make. +Wget requires a compiler and standard library compliant with the 1990 +ISO C standard, which includes the vast majority of compilation +environments present on systems in use today. + +After the compilation a ready-to-use `wget' executable should reside +in the src directory. At this point there is no formal test suite for +testing the binary, but it should be easy enough to test whether the +basic functionality works. + +4. Installation +--------------- Use `make install' to install GNU Wget to directories specified to -configure. The standard prefix is "/usr/local/", which can be changed -using the `--prefix' configure option. +configure. To install it in a system directory (which is the +default), you will need to be root. The standard prefix is +"/usr/local/", which can be changed using the `--prefix' configure +option. The installation process will copy the wget binary to $PREFIX/bin, -install the wget.info* info pages to $PREFIX/info, the autogenerated +install the wget.info* info pages to $PREFIX/info, the generated manual page (where available) wget.1 to $PREFIX/man/man1, and the default config file to $PREFIX/etc, unless a config file already exists there. You can customize these directories either through the configuration process or making the necessary changes in the Makefile. -To delete the files created by Wget installation, you can use make -uninstall. +To delete the files created by Wget installation, you can use `make +uninstall'.