mirror of
https://github.com/mirror/wget.git
synced 2024-12-31 07:20:16 +08:00
153 lines
7.0 KiB
Plaintext
153 lines
7.0 KiB
Plaintext
Compiling From Repository Sources
|
||
|
||
To reduce bandwidth and needless updates, the source code repository
|
||
does not contain automatically-generated files, even when these are
|
||
normally present in the distribution tarballs. Therefore, to build GNU
|
||
Wget from the sources in the repository, you'll need to have one or
|
||
more of the following (note that gettext, OpenSSL, libidn, libiconv
|
||
and libpsl are not absolutely required):
|
||
|
||
* [20]autoconf (currently, GNU Wget requires version 2.61). This is
|
||
needed to generate the configure script from configure.in. This is
|
||
not required when building from a tarball distribution; only when
|
||
building from repository sources.
|
||
|
||
* [21]automake (currently, GNU Wget requires version 1.10.1). This is
|
||
needed for generating the Makefile.in templates that the configure
|
||
script uses to generate the Makefiles. As with autoconf, it is not
|
||
required when building from a tarball distribution; only when
|
||
building from repository sources.
|
||
|
||
* [22]flex is needed to generate the CSS-parsing code.
|
||
|
||
* [23]Perl, if you wish to generate the wget(1) manpage, or run the
|
||
tests in the tests/ sub directory. Tarball distributions include an
|
||
already-generated wget.1 manual. The command "make check" runs the
|
||
test suite written in perl. To execute all the tests you need
|
||
[24]libwww-perl perl library. If "perl -MCPAN -e 'install
|
||
Bundle::LWP'" fails then you most likely don't have cpan module
|
||
installed. First download [25]CPAN and [26]install it. Then execute
|
||
"perl -MCPAN -e 'install Bundle::LWP'". Now "make check" should
|
||
pass most of the tests in the test suite.
|
||
|
||
* [27]texinfo in order to generate Info, PostScript and/or HTML
|
||
documentation. You don't need texinfo in order to generate the
|
||
wget(1) manpage; however, note that the manpage does not include
|
||
the full documentation. Tarball distributions include the
|
||
already-generated documentation in these formats.
|
||
|
||
* [28]gettext, if you wish to compile with NLS (Native Language
|
||
Support), which is enabled by default. If you do not have gettext,
|
||
you can compile without it by specifying --disable-nls to the
|
||
./configure script. This is true regardless of where you obtained
|
||
the source you're building. NOTE: if you get errors about
|
||
AM_GNU_GETTEXT and/or AM_INTL_SUBDIR, you probably have a buggy
|
||
version of GNU m4. Upgrade to the latest version. You may also need
|
||
to export M4=<new m4 path>, to be sure that autoconf/automake use
|
||
it instead of the old one.
|
||
|
||
* [29]OpenSSL to handle encrypted web sessions. You almost certainly
|
||
want this. It is not enough to have the library installed; you need
|
||
to have the header files available to compile against as well. For
|
||
GNU/Linux systems, this usually means installing a "developer"
|
||
package for openssl (for example, [30]Debian systems require
|
||
installation of the libssl-dev package). Alternatively, you can
|
||
compile GNU Wget against the [31]GNUTLS library instead, by
|
||
specifying --with-ssl=gnutls to the ./configure script; however,
|
||
building against GNUTLS is currently experimental, and not
|
||
officially supported. If you have OpenSSL and its development
|
||
headers installed, but don't want to build Wget with it, specify
|
||
--without-ssl to the ./configure script.
|
||
|
||
* [32]libidn is required for IDN/IRI support (non-ASCII characters
|
||
within what would otherwise be URLs).
|
||
|
||
* [33]libiconv is required on non-GNU systems, for IDN/IRI support.
|
||
On GNU systems, the functionality provided by libiconv is already
|
||
present in the system libraries.
|
||
|
||
* [34]git is used to fetch gnulib files trough the bootstrap.sh script.
|
||
|
||
* [35]libpsl is required for using a public suffix list to check for valid
|
||
cookie domains.
|
||
|
||
For those who might be confused as to what to do once they check out
|
||
the source code, considering configure and Makefile do not yet exist at
|
||
that point, a shell script called bootstrap has been provided. After
|
||
calling ./bootstrap you're ready to build GNU Wget in the normal
|
||
fashion, with ./configure and make.
|
||
|
||
So, to sum up, after checking out the source code as described above,
|
||
you may proceed as follows:
|
||
1. Change to the topmost GNU Wget directory:
|
||
$ cd wget # assumes you've cloned a repository to "./wget"
|
||
2. Generate all the automatically-generated files required prior to
|
||
configuring the package:
|
||
$ ./bootstrap
|
||
3. Configure the package and compile it:
|
||
$ ./configure --enable-assert [some_parameters]
|
||
$ make
|
||
4. Hack, compile, test, hack, compile, test...
|
||
$ src/wget --version
|
||
GNU Wget 1.12-devel (9cb2563197bc)
|
||
|
||
All developers are requested to enable the assertions on their development
|
||
builds to ensure a stable codebase. Assertions are added to state certain
|
||
assumptions about the code and its data which all developers should be mindful
|
||
of. To enable assertions, run the configure command with the --enable-assert
|
||
option, like this:
|
||
|
||
$ ./configure --enable-assert [other configure options]
|
||
|
||
Copyright <20> 2008,2010 Free Software Foundation, Inc.
|
||
License GPLv3+: GNU GPL version 3 or later
|
||
<http://www.gnu.org/licenses/gpl.html>.
|
||
This is free software: you are free to change and redistribute it.
|
||
There is NO WARRANTY, to the extent permitted by law.
|
||
|
||
Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
|
||
|
||
* [36]Edit
|
||
* [37]Comments
|
||
* [38]Info
|
||
* [39]Attachments
|
||
* More Actions:
|
||
[Raw Text................] Do
|
||
|
||
* [40]MoinMoin Powered
|
||
* [41]Python Powered
|
||
* [42]GPL licensed
|
||
* [43]Valid HTML 4.01
|
||
__________________________________________________________________
|
||
|
||
All content <20> 2007 Free Software Foundation. For terms of use,
|
||
redistribution, and modification, please see the [44]WikiLicense page.
|
||
|
||
References
|
||
|
||
20. http://www.gnu.org/software/autoconf/
|
||
21. http://www.gnu.org/software/automake/
|
||
22. http://flex.sourceforge.net/
|
||
23. http://www.perl.org/
|
||
24. http://search.cpan.org/dist/libwww-perl/lib/Bundle/LWP.pm
|
||
25. http://search.cpan.org/CPAN/authors/id/A/AN/ANDK/CPAN-1.9402.tar.gz
|
||
26. http://apthorpe.cynistar.net/code/configuring_cpan.html
|
||
27. http://www.gnu.org/software/texinfo/
|
||
28. http://www.gnu.org/software/gettext/
|
||
29. http://www.openssl.org/
|
||
30. http://www.debian.org/
|
||
31. http://www.gnu.org/software/gnutls/
|
||
32. http://www.gnu.org/software/libidn/
|
||
33. http://www.gnu.org/software/libiconv/
|
||
34. http://git-scm.com/
|
||
35. https://github.com/rockdaboot/libpsl
|
||
36. http://wget.addictivecode.org/CompilingRepoSources?action=edit&editor=text
|
||
37. http://wget.addictivecode.org/CompilingRepoSources
|
||
38. http://wget.addictivecode.org/CompilingRepoSources?action=info
|
||
39. http://wget.addictivecode.org/CompilingRepoSources?action=AttachFile
|
||
40. http://moinmo.in/
|
||
41. http://moinmo.in/Python
|
||
42. http://moinmo.in/GPL
|
||
43. http://validator.w3.org/check?uri=referer
|
||
44. http://wget.addictivecode.org/WikiLicense
|