~ubuntu-branches/ubuntu/dapper/curl/dapper-updates

« back to all changes in this revision

Viewing changes to docs/INSTALL

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2005-12-12 15:04:52 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20051212150452-2ymlra67b2p7kjyy
Tags: 7.15.1-1ubuntu1
Resynchronise with Debian to get URL parser overflow fix from 7.15.1
(CVE-2005-4077).

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
Win32
133
133
=====
134
134
 
135
 
   Without SSL:
136
 
 
137
 
      MingW32 (GCC-2.95) style
138
 
      ------------------------
139
 
        Run the 'mingw32.bat' file to get the proper environment variables
140
 
        set, then run 'make mingw32' in the root dir.
141
 
 
142
 
        If you have any problems linking libraries or finding header files, be
143
 
        sure to verify that the provided "Makefile.m32" files use the proper
144
 
        paths, and adjust as necessary.
145
 
 
146
 
      Cygwin style
147
 
      ------------
148
 
        Almost identical to the unix installation. Run the configure script in
149
 
        the curl root with 'sh configure'. Make sure you have the sh
150
 
        executable in /bin/ or you'll see the configure fail towards the end.
151
 
 
152
 
        Run 'make'
153
 
 
154
 
      Microsoft command line style
155
 
      ----------------------------
156
 
        Run the 'vcvars32.bat' file to get the proper environment variables
157
 
        set, then run 'nmake vc' in the root dir.
158
 
 
159
 
        The vcvars32.bat file is part of the Microsoft development
160
 
        environment.
161
 
 
162
 
      IDE-style
163
 
      -------------------------
164
 
        If you use VC++, Borland or similar compilers. Include all lib source
165
 
        files in a static lib "project" (all .c and .h files that is).
166
 
        (you should name it libcurl or similar)
167
 
 
168
 
        Make the sources in the src/ drawer be a "win32 console application"
169
 
        project. Name it curl.
170
 
 
171
 
        For VC++ 6, there's an included Makefile.vc6 that should be possible
172
 
        to use out-of-the-box.
173
 
 
174
 
 
175
 
   With SSL:
176
 
 
177
 
      MingW32 (GCC-2.95) style
178
 
      ------------------------
179
 
        Run the 'mingw32.bat' file to get the proper environment variables
180
 
        set, then run 'make mingw32-ssl' in the root dir.
181
 
 
182
 
        If you have any problems linking libraries or finding header files, be
183
 
        sure to look at the provided "Makefile.m32" files for the proper
184
 
        paths, and adjust as necessary.
185
 
 
186
 
      Cygwin style
187
 
      ------------
188
 
        Haven't done, nor got any reports on how to do. It should although be
189
 
        identical to the unix setup for the same purpose. See above.
190
 
 
191
 
      Microsoft command line style
192
 
      ----------------------------
193
 
 
194
 
        Run the 'vcvars32.bat' file to get a proper environment. The
195
 
        vcvars32.bat file is part of the Microsoft development environment and
196
 
        you may find it in 'C:\Program Files\Microsoft Visual Studio\vc98\bin'
197
 
        provided that you installed Visual C/C++ 6 in the default directory.
198
 
 
199
 
        Then run 'nmake vc' in curl's root directory.
200
 
 
201
 
        If you want to compile with zlib support, you will need to build
202
 
        zlib (http://www.gzip.org/zlib/) as well. Please read the zlib
203
 
        documentation on how to compile zlib. Define the ZLIB_PATH environment
204
 
        variable to the location of zlib.h and zlib.lib, for example:
205
 
 
206
 
          set ZLIB_PATH=c:\zlib-1.2.1
207
 
 
208
 
        Then run 'nmake vc-zlib' in curl's root directory.
209
 
 
210
 
        If you want to compile with SSL support you need the OpenSSL package.
211
 
        Please read the OpenSSL documentation on how to compile and install
212
 
        the OpenSSL libraries.  The build process of OpenSSL generates the
213
 
        libeay32.dll and ssleay32.dll files in the out32dll subdirectory in
214
 
        the OpenSSL home directory.  OpenSSL static libraries (libeay32.lib,
215
 
        ssleay32.lib, RSAglue.lib) are created in the out32 subdirectory.
216
 
 
217
 
        Before running nmake define the OPENSSL_PATH environment variable with
218
 
        the root/base directory of OpenSSL, for example:
219
 
 
220
 
          set OPENSSL_PATH=c:\openssl-0.9.7d
221
 
 
222
 
        Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in curl's root
223
 
        directory.  'nmake vc-ssl' will create a libcurl static and dynamic
224
 
        libraries in the lib subdirectory, as well as a statically linked
225
 
        version of curl.exe in the src subdirectory.  This statically linked
226
 
        version is a standalone executable not requiring any DLL at
227
 
        runtime. This make method requires that you have the static OpenSSL
228
 
        libraries available in OpenSSL's out32 subdirectory.
229
 
        'nmake vc-ssl-dll' creates the libcurl dynamic library and
230
 
        links curl.exe against libcurl and OpenSSL dynamically.
231
 
        This executable requires libcurl.dll and the OpenSSL DLLs
232
 
        at runtime.
233
 
        Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support.
234
 
 
235
 
      Microsoft / Borland style
236
 
      -------------------------
237
 
        If you have OpenSSL, and want curl to take advantage of it, edit your
238
 
        project properties to use the SSL include path, link with the SSL libs
239
 
        and define the USE_SSLEAY symbol.
240
 
 
241
 
      Using Borland C++ compiler version 5.5.1 (available as free download
242
 
      from Borland's site)
243
 
      ---------------------------------------------------------------------
244
 
 
245
 
        compile openssl
246
 
 
247
 
        Make sure you include the paths to curl/include and openssl/inc32 in
248
 
        your bcc32.cnf file
249
 
 
250
 
 
251
 
        eg : -I"c:\Bcc55\include;c:\path_curl\include;c:\path_openssl\inc32"
252
 
 
253
 
        Check to make sure that all of the sources listed in lib/Makefile.b32
254
 
        are present in the /path_to_curl/lib directory. (Check the src
255
 
        directory for missing ones.)
256
 
 
257
 
        Make sure the environment variable "BCCDIR" is set to the install
258
 
        location for the compiler eg : c:\Borland\BCC55
259
 
 
260
 
        command line:
261
 
        make -f /path_to_curl/lib/Makefile-ssl.b32
262
 
 
263
 
        compile simplessl.c with appropriate links
264
 
 
265
 
        c:\curl\docs\examples\> bcc32 -L c:\path_to_curl\lib\libcurl.lib
266
 
                                      -L c:\borland\bcc55\lib\psdk\ws2_32.lib
267
 
                                      -L c:\openssl\out32\libeay32.lib
268
 
                                      -L c:\openssl\out32\ssleay32.lib
269
 
                                      simplessl.c
270
 
 
271
 
   Disabling Specific Protocols:
272
 
 
273
 
      The configure utility, unfortunately, is not available for the Windows
274
 
      environment, therefore, you cannot use the various disable-protocol
275
 
      options of the configure utility on this platform.
276
 
 
277
 
      However, you can use the following defines to disable specific
278
 
      protocols:
279
 
 
280
 
      HTTP_ONLY             disables all protocols except HTTP
281
 
      CURL_DISABLE_FTP      disables FTP
282
 
      CURL_DISABLE_LDAP     disables LDAP
283
 
      CURL_DISABLE_TELNET   disables TELNET
284
 
      CURL_DISABLE_DICT     disables DICT
285
 
      CURL_DISABLE_FILE     disables FILE
286
 
      CURL_DISABLE_GOPHER   disables GOPHER
287
 
 
288
 
      If you want to set any of these defines you have the following
289
 
      possibilities:
290
 
 
291
 
      - Modify lib/setup.h
292
 
      - Modify lib/Makefile.vc6
293
 
      - Add defines to Project/Settings/C/C++/General/Preprocessor Definitions
294
 
        in the curllib.dsw/curllib.dsp Visual C++ 6 IDE project.
295
 
 
296
 
 
297
 
   Important (with SSL or not):
298
 
      When building an application that uses the static libcurl library, you
299
 
      must add '-DCURL_STATICLIB' to your CFLAGS.  Otherwise the linker will
300
 
      look for dynamic import symbols.
 
135
   MingW32
 
136
   -------
 
137
 
 
138
   Run the 'mingw32.bat' file to get the proper environment variables set,
 
139
   then run 'make mingw32' in the root dir. Use  'make mingw32-ssl' to build
 
140
   curl SSL enabled.
 
141
 
 
142
   If you have any problems linking libraries or finding header files, be sure
 
143
   to verify that the provided "Makefile.m32" files use the proper paths, and
 
144
   adjust as necessary.
 
145
 
 
146
   Cygwin
 
147
   ------
 
148
 
 
149
   Almost identical to the unix installation. Run the configure script in the
 
150
   curl root with 'sh configure'. Make sure you have the sh executable in
 
151
   /bin/ or you'll see the configure fail towards the end.
 
152
 
 
153
   Run 'make'
 
154
 
 
155
   Dev-Cpp
 
156
   -------
 
157
 
 
158
   See the separate INSTALL.devcpp file for details.
 
159
 
 
160
   MSVC from command line
 
161
   ----------------------
 
162
 
 
163
   Run the 'vcvars32.bat' file to get a proper environment. The
 
164
   vcvars32.bat file is part of the Microsoft development environment and
 
165
   you may find it in 'C:\Program Files\Microsoft Visual Studio\vc98\bin'
 
166
   provided that you installed Visual C/C++ 6 in the default directory.
 
167
 
 
168
   Then run 'nmake vc' in curl's root directory.
 
169
 
 
170
   If you want to compile with zlib support, you will need to build
 
171
   zlib (http://www.gzip.org/zlib/) as well. Please read the zlib
 
172
   documentation on how to compile zlib. Define the ZLIB_PATH environment
 
173
   variable to the location of zlib.h and zlib.lib, for example:
 
174
 
 
175
     set ZLIB_PATH=c:\zlib-1.2.1
 
176
 
 
177
   Then run 'nmake vc-zlib' in curl's root directory.
 
178
 
 
179
   If you want to compile with SSL support you need the OpenSSL package.
 
180
   Please read the OpenSSL documentation on how to compile and install
 
181
   the OpenSSL libraries.  The build process of OpenSSL generates the
 
182
   libeay32.dll and ssleay32.dll files in the out32dll subdirectory in
 
183
   the OpenSSL home directory.  OpenSSL static libraries (libeay32.lib,
 
184
   ssleay32.lib, RSAglue.lib) are created in the out32 subdirectory.
 
185
 
 
186
   Before running nmake define the OPENSSL_PATH environment variable with
 
187
   the root/base directory of OpenSSL, for example:
 
188
 
 
189
     set OPENSSL_PATH=c:\openssl-0.9.7d
 
190
 
 
191
   Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in curl's root
 
192
   directory.  'nmake vc-ssl' will create a libcurl static and dynamic
 
193
   libraries in the lib subdirectory, as well as a statically linked
 
194
   version of curl.exe in the src subdirectory.  This statically linked
 
195
   version is a standalone executable not requiring any DLL at
 
196
   runtime. This make method requires that you have the static OpenSSL
 
197
   libraries available in OpenSSL's out32 subdirectory.
 
198
   'nmake vc-ssl-dll' creates the libcurl dynamic library and
 
199
   links curl.exe against libcurl and OpenSSL dynamically.
 
200
   This executable requires libcurl.dll and the OpenSSL DLLs
 
201
   at runtime.
 
202
   Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support.
 
203
 
 
204
   Borland C++ compiler
 
205
   ---------------------
 
206
 
 
207
   compile openssl
 
208
 
 
209
   Make sure you include the paths to curl/include and openssl/inc32 in
 
210
   your bcc32.cnf file
 
211
 
 
212
   eg : -I"c:\Bcc55\include;c:\path_curl\include;c:\path_openssl\inc32"
 
213
 
 
214
   Check to make sure that all of the sources listed in lib/Makefile.b32
 
215
   are present in the /path_to_curl/lib directory. (Check the src
 
216
   directory for missing ones.)
 
217
 
 
218
   Make sure the environment variable "BCCDIR" is set to the install
 
219
   location for the compiler eg : c:\Borland\BCC55
 
220
 
 
221
   command line:
 
222
   make -f /path_to_curl/lib/Makefile-ssl.b32
 
223
 
 
224
   compile simplessl.c with appropriate links
 
225
 
 
226
   c:\curl\docs\examples\> bcc32 -L c:\path_to_curl\lib\libcurl.lib
 
227
                                 -L c:\borland\bcc55\lib\psdk\ws2_32.lib
 
228
                                 -L c:\openssl\out32\libeay32.lib
 
229
                                 -L c:\openssl\out32\ssleay32.lib
 
230
                                 simplessl.c
 
231
 
 
232
 
 
233
   MSVC IDE
 
234
   --------
 
235
 
 
236
   If you use VC++, Borland or similar compilers. Include all lib source
 
237
   files in a static lib "project" (all .c and .h files that is).
 
238
   (you should name it libcurl or similar)
 
239
 
 
240
   Make the sources in the src/ drawer be a "win32 console application"
 
241
   project. Name it curl.
 
242
 
 
243
   For VC++ 6, there's an included Makefile.vc6 that should be possible
 
244
   to use out-of-the-box.
 
245
 
 
246
 
 
247
   Disabling Specific Protocols in Win32 builds
 
248
   --------------------------------------------
 
249
 
 
250
   The configure utility, unfortunately, is not available for the Windows
 
251
   environment, therefore, you cannot use the various disable-protocol
 
252
   options of the configure utility on this platform.
 
253
 
 
254
   However, you can use the following defines to disable specific
 
255
   protocols:
 
256
 
 
257
   HTTP_ONLY             disables all protocols except HTTP
 
258
   CURL_DISABLE_FTP      disables FTP
 
259
   CURL_DISABLE_LDAP     disables LDAP
 
260
   CURL_DISABLE_TELNET   disables TELNET
 
261
   CURL_DISABLE_DICT     disables DICT
 
262
   CURL_DISABLE_FILE     disables FILE
 
263
   CURL_DISABLE_GOPHER   disables GOPHER
 
264
 
 
265
   If you want to set any of these defines you have the following
 
266
   possibilities:
 
267
 
 
268
   - Modify lib/setup.h
 
269
   - Modify lib/Makefile.vc6
 
270
   - Add defines to Project/Settings/C/C++/General/Preprocessor Definitions
 
271
     in the curllib.dsw/curllib.dsp Visual C++ 6 IDE project.
 
272
 
 
273
 
 
274
   Important static libcurl usage note
 
275
   -----------------------------------
 
276
 
 
277
   When building an application that uses the static libcurl library, you must
 
278
   add '-DCURL_STATICLIB' to your CFLAGS.  Otherwise the linker will look for
 
279
   dynamic import symbols.
301
280
 
302
281
 
303
282
IBM OS/2
462
441
   - optional zlib sources (at the moment only dynamic linking with zlib.imp);
463
442
     sources with NetWare Makefile can be obtained from:
464
443
     http://www.gknw.com/mirror/zlib/
 
444
   - optional OpenSSL sources (version 0.9.8 or later which builds with BSD);
465
445
 
466
 
   Set a search path to your compiler, linker and tools; if you want to have
467
 
   zlib support then set the environment var ZLIB_PATH pointing to your zlib
468
 
   sources, on Linux make sure the var OSTYPE contains the string 'linux';
469
 
   and finally type 'make netware' from the top source directory...
470
 
   I found on some Linux systems (RH9) that OS detection didnlt work although
 
446
   Set a search path to your compiler, linker and tools; on Linux make
 
447
   sure that the var OSTYPE contains the string 'linux'; and then type
 
448
   'make netware' from the top source directory; other tagets available
 
449
   are 'netware-ssl', 'netware-ssl-zlib', 'netware-zlib' and 'netware-ares';
 
450
   if you need other combinations you can control the build with the
 
451
   environment variables WITH_SSL, WITH_ZLIB, WITH_ARES and ENABLE_IPV6.
 
452
   I found on some Linux systems (RH9) that OS detection didnt work although
471
453
   a 'set | grep OSTYPE' shows the var present and set; I simply overwrote it
472
 
   with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked...;
473
 
   other options are currently not supported, although partly prepared.
474
 
   The Ares lib builds arlready fine, and both test tools work fine at least
475
 
   when build with CodeWarrior...; don't know yet why they fail when build with
476
 
   gcc though; if you want to compile with Ares support then set an env var
477
 
   WITH_ARES=1; I've not tested yet including libares into curl.
 
454
   with 'OSTYPE=linux-rh9-gnu' and the detection in the Makefile worked...
478
455
   Any help in testing appreciated!
479
 
   Builds automatically created 4 times a day from current CVS are here:
 
456
   Builds automatically created 8 times a day from current CVS are here:
480
457
   http://www.gknw.com/mirror/curl/autobuilds/
481
458
   the status of these builds can be viewed at the autobuild table:
482
459
   http://curl.haxx.se/auto/
588
565
        - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8, 9, 10
589
566
        - Sparc SunOS 4.1.X
590
567
        - StrongARM (and other ARM) RISC OS 3.1, 4.02
591
 
        - StrongARM Linux 2.4
 
568
        - StrongARM/ARM7/ARM9 Linux 2.4, 2.6
592
569
        - StrongARM NetBSD 1.4.1
593
570
        - Ultrix 4.3a
594
571
        - i386 BeOS