-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathINSTALL.html
417 lines (360 loc) · 18.8 KB
/
INSTALL.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Libwww - the W3C Sample Code Library Installation</title>
<link rel="STYLESHEET" href="/StyleSheets/libwww.css" type="text/css">
</head>
<body>
<p><a href="./"><img border="0" src="Icons/WWW/w3c_home" alt="W3C" width="72"
height="48"></a> <a href="Library/"><img border="0" src="Icons/WWW/Lib48x"
alt="libwww" width="48" height="48"></a> <img border="0"
src="Icons/WWW/install48x" alt="INSTALL"></p>
<h1>Libwww - the W3C Sample Code Library Installation</h1>
<pre> (c) COPYRIGHT MIT 1995-2003.
Please first read the full copyright statement in the file COPYRIGH.
</pre>
<p>First, if you got libwww <a href="Library/cvs.html">directly from CVS</a>
then you <a href="Library/cvs.html#Boot">must bootstrap the code</a> before
compiling. If you have already done that or if you started from a
distribution file then you can continue installation here:</p>
<ul>
<li><a href="#Windows">Building on Windows using MSVC</a></li>
<li><a href="#Unix">Building on Unix or in the Cygwin Environment for
Windows NT, 95, and 98</a></li>
<li>After you have installed libwww, <a
href="Library/libwww-config.html">checkout how you can compile and link
libwww apps</a></li>
</ul>
<p></p>
<hr>
<h2><a name="Windows">Building on Windows using MSVC</a></h2>
<p>Note that you can also use the <a
href="http://sourceware.cygnus.com/cygwin/">Cygwin environment</a> which is a
Win32 port of the popular GNU development tools for Windows NT, 95, and 98
which allows us to use <a href="#Unix">autoconf, automake, and
libtool</a>.</p>
<p>Vladimir Kozlov provides <a href="http://www.idm.ru/libwww.htm">fresh
binaries for wintel</a> and MSVC makefiles are part of the <a
href="Library/Distribution.html#Tar">distribution package</a>.</p>
<p>You can also get the <a
href="Library/Distribution/libwww-win32.zip">latest MSVC makefiles</a> (<a
href="Library/Distribution/libwww-win32.zip.sig">PGP signature</a>) which are
in sync with the <a href="Library/cvs.html">current CVS source tree</a>
(<em>not</em> the <a href="Library/Distribution.html#Tar">distribution
package!</a>). The makesfiles are <em>not</em> in CVS themselves as they
constantly cause CVS conflicts. Unzip them on top (directly in the libwww
folder) of your checked out CVS tree and repeat the <a
href="Library/cvs.html#Boot">bootstrap mechanism</a>.</p>
<p>Regardless of whether you are using the <a href="cvs.html">CVS tree</a>
directly or got the <a href="Distribution.html#tar">distribution package</a>,
you can compile by opening the <tt>libwww/windows/world.dsw</tt> workspace
and do a batch build of the whole thing.</p>
<p>You can configure libwww in <a href="Library/src/windows/config.h">windows
config.h</a> and if you are interested in the details of how we build libwww
on Windows then please read the documentation on <a
href="Library/User/Platform/WinDLL.html">how to install on Windows</a>.
Libwww can work with <a href="Library/External/">several external software
packages</a> of which <a href="Library/External/">some you get by
default</a>. Here is the current list:</p>
<h3>WebDAV Support</h3>
<p>If <code>HT_DAV</code> is defined in the <a
href="Library/src/windows/config.h">windows config.h file</a> then libwww can
use the <a href="http://www.webdav.org/">WebDAV</a> familiy of protocols for
collaborative work on the web. <a
href="Library/Examples/davsample.c">davsample</a> is a sample C program
showing how to use the DAV module.</p>
<ol>
<li>Define <code>HT_DAV</code> in <a
href="Library/src/windows/config.h">windows config.h file</a></li>
</ol>
<h3>EXPAT (XML parser) Support</h3>
<p>If <code>HT_EXPAT</code> is defined in the <a
href="Library/src/windows/config.h">windows config.h file</a> then libwww can
use the <a href="http://sourceforge.net/projects/expat/">expat library</a>
for parsing XML files. In particular, this is necessary for using the XML.
RDF and DAV libwww modules. A version of the precompiled <a
href="http://www.winimage.com/zLibDll/">expat DLLs for Win32</a> is already
included in the w3c-libwww distribution file.</p>
<ol>
<li>Define <code>HT_EXPAT</code> in <a
href="Library/src/windows/config.h">windows config.h file</a></li>
<li>Copy <code>xmlparse.dll</code> and <code>xmltok.dll </code>into a
location where Windows can find it, for example
<code>.\Bin\Debug\</code></li>
</ol>
<h3>Zlib Support</h3>
<p>If <code>HT_ZLIB</code> is defined in the <a
href="Library/src/windows/config.h">windows config.h file</a> then libwww can
use the <a href="http://www.cdrom.com/pub/infozip/zlib/">zlib library</a> for
handling the <b>deflate</b> content-encoding. This may cause better
performance as we then can inflate a compressed document on the fly. A
version of the precompiled <a href="http://www.winimage.com/zLibDll/">zlib
DLL for Win32</a> is already included in the w3c-libwww distribution file.</p>
<ol>
<li>Define <code>HT_ZLIB</code> in <a
href="Library/src/windows/config.h">windows config.h file</a></li>
<li>Copy <code>zlib.dll</code> into a location where Windows can find it,
for example <code>.\Bin\Debug\</code></li>
</ol>
<h3>Regular Expressions</h3>
<p>If <code>HT_POSIX_REGEX</code> is defined in the <a
href="Library/src/windows/config.h">windows config.h file</a> then libwww can
use <a href="http://www.delorie.com/gnu/docs/rx/">posix compliant regular
expressions</a>, for example to handle URI matching. This is for example <a
href="Robot/User/CommandLine.html#Constraints">used in the webbot</a> which
can handle regular expressions when matching which URIs to check. The library
has been tested with the <a
href="http://people.delphi.com/gjc/gnu_regex.html">GNU regular expression
library for Win32</a>.</p>
<ol>
<li>Define <code>HT_POSIX_REGEX</code> in <a
href="Library/src/windows/config.h">windows config.h file</a></li>
<li>Copy <code>regex.h</code> into <code>.\Library\External</code> and name
it <code>rxposix.h</code></li>
<li>Add <code>gnu_regex.lib</code> to the robot project (or whatever
application you are building)</li>
<li>Copy <code>gnu_regex.dll</code> into a location where Windows can find
it, for example <code>.\Bin\Debug\</code></li>
</ol>
<h3>SQL Access</h3>
<p> <code>HT_MYSQL</code> is defined in the <a
href="Library/src/windows/config.h">windows config.h file</a> then libwww can
use a <a href="http://www.tcx.se/">MySQL database</a> for handling <a
href="Robot/User/CommandLine.html#Logging">logging</a> instead of plain text
files. This has a <a href="Robot/www-sql/">huge set of advantages</a>.</p>
<h3>SOCKS Support</h3>
<p>If either <tt>SOCKS</tt> and either <tt>SOCKS4</tt> or <tt>SOCKS5</tt> is
defined in the <a href="Library/src/windows/config.h">windows config.h
file</a> then libwww can use <a href="http://www.socks.nec.com/">SOCKS</a> to
go through firewalls. The SOCKS handling code in libwww can be found in <a
href="Library/src/wwwsys.html">wwwsys.h</a>.</p>
<h2><a name="Unix">Building on Unix and in the Cygwin Environment</a></h2>
<p>You probably need the <a href="http://www.delorie.com/gnu/docs/make/">GNU
version of make</a> in order to build libwww. The reason is that some of the
make files contain some syntax that most other makefiles don't understand.
These installation instructions are based on the suggested instructions
provided with <a href="http://www.delorie.com/gnu/docs/autoconf/">GNU
Autoconf</a>.</p>
<p>The <a href="http://sourceware.cygnus.com/cygwin/">Cygwin environment</a>
is a Win32 port of the popular GNU development tools for Windows NT, 95, and
98. They function through the use of the Cygwin library which provides a
UNIX-like API on top of the Win32 API.</p>
<p>The <i>configure</i> shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses those
values to create a `Makefile' and a `wwwconf.h' file containing
system-dependent definitions. Finally, it creates a shell script
`config.status' that you can run in the future to recreate the current
configuration, a file `config.cache' that saves the results of its tests to
speed up reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging <i>configure</i>).</p>
<p>The simplest way to compile this package on a Unix platform is:</p>
<ol>
<li>`cd' to the directory containing the package's source code and type
`<code>./configure</code>' to configure the package for your system. If
you're using `csh' on an old version of System V, you might need to type
`<code>sh ./configure</code>' instead to prevent `csh' from trying to
execute <i>configure</i> itself. Running <i>configure</i> takes awhile.
While running, it prints some messages telling which features for which
it is checking.</li>
<li>Type `make' to compile the package.</li>
<li>Type `make install' to install the library.</li>
<li>You can remove the library and object files from the source directory
by typing `make clean.' To also remove the files that <i>configure</i>
created (so you can compile the package for a different kind of
computer), type `make distclean.'</li>
</ol>
<h3>Compilers and Options</h3>
<p>Some systems require unusual options for compilation or linking that the
<i>configure</i> script does not know about. You can give <i>configure</i>
initial values for variables by setting them in the environment. Using a
Bourne-compatible shell, you can do that on the command line like this:</p>
<pre> CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure</pre>
<p>Or on systems that have the `env' program, you can do it like this:</p>
<pre> env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure</pre>
<h3>Using a Different Build Directory</h3>
<p>You can compile the package in a directory different from the one
containing the source code. Doing so allows you to compile it on more than
one kind of computer at the same time. To do this, you must use a version of
`make' that supports the `VPATH' variable, such as GNU `make.' `cd' to the
directory where you want to object files and library to go and run the
<i>configure</i> script (i.e., go `<code>../src/configure</code>').
<i>configure</i> automatically checks for source code in the directory that
<i>configure</i> is in and in `..' as well.</p>
<h3>Installation Names</h3>
<p>By default, `<code>make install</code>' will install the library in
`<code>/usr/local/lib</code>'. You can specify an installation prefix other
than `/usr/local' by giving <i>configure</i> the option
`<code>--prefix=PATH</code>'. You can cause the library to be installed with
an extra prefix or suffix on its name by giving <i>configure</i> the options
`<code>--program-prefix=PREFIX</code>' or
`<code>--program-suffix=SUFFIX</code>'.</p>
<h3><a name="features">Extra Features and Packages</a></h3>
<p>There are a set of options you can give to <i>configure</i> in addition to
those understood by all <a
href="http://www.delorie.com/gnu/docs/autoconf/">GNU Autoconf
<i>configure</i></a> scripts. This is how you can enable, disable, include,
or exclude them:</p>
<dl>
<dt><code>--disable-FEATURE</code></dt>
<dd>do not include FEATURE (same as <code>--enable-FEATURE=no</code>)</dd>
<dt><code>--enable-FEATURE[=ARG]</code></dt>
<dd>include FEATURE [ARG=yes]</dd>
<dt><code>--with-PACKAGE[=ARG]</code></dt>
<dd>use PACKAGE [ARG=yes]</dd>
<dt><code>--without-PACKAGE</code></dt>
<dd>do not use PACKAGE (same as <code>--with-PACKAGE=no</code>)</dd>
</dl>
<h4>Options for Handling Shared/Static Linking</h4>
<p><img src="Icons/32x32/caution" alt="NOTE" border="0" width="32"
height="32"><em> Solaris 2.5.x has serious problems handling shared libraries
(the linker dumps core) and therefore you <strong>MUST</strong> use the
<code>--disable-shared</code> when compiling on this platform.</em></p>
<p>Libwww uses <a href="http://www.gnu.org/software/libtool/libtool.html">GNU
Libtool</a> to build shared libraries on a variety of systems. While this is
very nice for making usable binaries, it can be a pain when trying to debug a
program. For that reason, compilation of shared libraries can be turned off
by specifying the <code>--disable-shared</code> option to
<code>configure</code>.</p>
<dl>
<dt><code>--with-gnu-ld</code></dt>
<dd>assume the C compiler uses GNU ld [default=no]</dd>
<dt><code>--enable-shared</code></dt>
<dd>Build shared libraries [default=yes]</dd>
<dt><code>--enable-static</code></dt>
<dd>Build static libraries [default=yes]</dd>
</dl>
<h4><a name="Highly">Highly Recommended Packages!</a></h4>
<p>These provide very useful added functionality in the <a
href="Library/">libwww</a> and the <a
href="Library/User/Applications.html">libwww applications</a></p>
<dl>
<dt><code>--with-expat[=PATH]</code></dt>
<dd>Compile a libwww XML parser wrapper for the <a
href="Library/External/#Expat">Expat library</a> and enable it as a
libwww converter stream. This is <strong>on</strong> by default as the
code is incorporated into the libwww codebase!</dd>
<dt><code>--with-md5[=PATH]</code></dt>
<dd>Compile a <a href="Library/External/#Support">MD5 library</a> which
is required in order to handle HTTP digest authentication etc. This is
<strong>on</strong> by default as the code is incorporated into the
libwww codebase!</dd>
<dt><code>--with-mysql[=PATH]</code></dt>
<dd>Compile with support for <a href="Library/External/#MySQL">MySQL
database access</a> used for <a
href="Robot/User/CommandLine.html#Logging">Webbot logging</a> etc.</dd>
<dt><code>--with-regex[=PATH]</code></dt>
<dd>Compile with <a href="Library/External/Overview.html#Regular">POSIX
regex library</a> support used for regular expession matching of
URIs</dd>
<dt><code>--with-ssl[=path]</code></dt>
<dd>Libwww can be <a href="Library/External/Overview.html">set up to use
SSL as a transport</a>, for example in order to deal with the
<code>https</code> URI access scheme. This requires the <a
href="http://www.openssl.org/">OpenSSL library</a>, for example.</dd>
<dt><code>--with-zlib[=PATH]</code></dt>
<dd>Compile with <a href="Library/External/#Zlib">zlib
compress/decompress support</a> used for compressing HTML etc.</dd>
</dl>
<h4>Other Packages</h4>
<p>These are less used packages (or less tested packages, I should say)</p>
<dl>
<dt><code>--with-socks</code></dt>
<dd>Compile with SOCKS firewall traversal support.</dd>
<dt><code>--with-socks5[=PATH]</code></dt>
<dd>Compile with SOCKS5 firewall traversal support.</dd>
<dt><code>--with-socks4[=PATH]</code></dt>
<dd>Compile with SOCKS4 firewall traversal support.</dd>
<dt><code>--with-wais[=PATH]</code></dt>
<dd>Compile with support for <a href="Library/User/WAIS.html">direct WAIS
access</a>.</dd>
<dt>--with-dav</dt>
<dd>Compile with <a href="http://www.webdav.org/">WebDAV</a> support.
WebDAV is a set of extensions to the HTTP protocol, which allows
users to collaboratively edit and manage web resources.</dd>
<dt>--with-extension</dt>
<dd>Compile with extension methods. Extension methods are methods that
can be defined by the application. They allow an easy support to new
methods proposed by protocols such as <a
href="http://www.webdav.org/deltav/">Delta-V</a> and others.</dd>
</dl>
<h4>Less Used Libwww Configuration Options</h4>
<p>Normally, you don't have to change the default settings here</p>
<dl>
<dt><code>--disable-nagle</code></dt>
<dd>Turning off Nagle's algorithm. Nagle is off by default</dd>
<dt><code>--disable-pipelining</code></dt>
<dd>Turning off HTTP/1.1 Pipelining. Pipelining is on by default</dd>
<dt><code>--enable-reentrant</code></dt>
<dd>Define <code>_REENTRANT</code> to enable reentrant system calls. Off
by default</dd>
<dt><code>--enable-signals</code></dt>
<dd>Use internal libwww signal handler. Off by default</dd>
<dt><code>--enable-posix</code></dt>
<dd>Define _POSIX_SOURCE. Off by default</dd>
<dt><code>--enable-cyrillic</code></dt>
<dd>Include support for Cyrillic in <a href="LineMode/">Line Mode
browser</a></dd>
</dl>
<h4>Location of X Files</h4>
<p>As libwww doesn't use X, this is not really used.</p>
<dl>
<dt><code>--x-includes=DIR</code></dt>
<dd>X include files are in DIR</dd>
<dt><code>--x-libraries=DIR</code></dt>
<dd>X library files are in DIR</dd>
<dt><code>--with-x</code></dt>
<dd>Use the X Window System</dd>
</dl>
<h3>Specifying the System Type</h3>
<p>There may be some features <i>configure</i> can not figure out
automatically, but needs to determine by the type of host the package will
run on. Usually <i>configure</i> can figure that out, but if it prints a
message saying it can not guess the host type, give it the `--host=TYPE'
option. TYPE can either be a short name for the system type, such as `sun4',
or a canonical name with three fields:</p>
<pre> CPU-COMPANY-SYSTEM</pre>
<p>See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't need
to know the host type.</p>
<p>If you are building compiler tools for cross-compiling, you can also use
the `--target=TYPE' option to select the type of system they will produce
code for and the `--build=TYPE' option to select the type of system on which
you are compiling the package.</p>
<h3>Sharing Defaults</h3>
<p>If you want to set default values for <i>configure</i> scripts to share,
you can create a site shell script called `config.site' that gives default
values for variables like `CC', `cache_file', and `prefix'. <i>configure</i>
looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE'
environment variable to the location of the site script. A warning: not all
<i>configure</i> scripts look for a site script.</p>
<h3>Operation Controls</h3>
<p><i>configure</i> recognizes the following options to control how it
operates.</p>
<dl>
<dt><code>--cache-file=FILE</code></dt>
<dd>Save the results of the tests in FILE instead of `config.cache'. Set
FILE to `/dev/null' to disable caching, for debugging
<i>configure</i>.</dd>
<dt><code>--help</code></dt>
<dd>Print a summary of the options to <i>configure</i>, and exit.</dd>
<dt><code>--quiet</code>, <code>--silent</code></dt>
<dd>Do not print messages saying which checks are being made.</dd>
<dt><code>--srcdir=DIR</code></dt>
<dd>Look for the package's source code in directory DIR. Usually
<i>configure</i> can determine that directory automatically.</dd>
<dt><code>--version</code></dt>
<dd>Print the version of Autoconf used to generate the <i>configure</i>
script, and exit.</dd>
</dl>
<p><i>configure</i> also accepts some other, not widely useful, options.</p>
<p></p>
<hr>
<address>
<a href="/People/Jose/">Jose Kahan</a>,<br>
@(#) $Id$
</address>
</body>
</html>