~ubuntu-branches/ubuntu/intrepid/curl/intrepid-security

« back to all changes in this revision

Viewing changes to docs/INSTALL

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2006-10-30 10:56:48 UTC
  • mto: This revision was merged to the branch mainline in revision 10.
  • Revision ID: james.westby@ubuntu.com-20061030105648-kfd50jram0rzbtlo
Tags: upstream-7.15.5
ImportĀ upstreamĀ versionĀ 7.15.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
129
129
     If you're a curl developer and use gcc, you might want to enable more
130
130
     debug options with the --enable-debug option.
131
131
 
 
132
     curl can be built to use a whole range of libraries to provide various
 
133
     useful services, and configure will try to auto-detect a decent
 
134
     default. But if you want to alter it, you can select how to deal with
 
135
     each individual library.
 
136
 
 
137
     To build with GnuTLS support instead of OpenSSL for SSL/TLS, note that
 
138
     you need to use both --without-ssl and --with-gnutls.
 
139
 
 
140
     To build with yassl support instead of OpenSSL or GunTLS, you must build
 
141
     yassl with its OpenSSL emulation enabled and point to that directory root
 
142
     with configure --with-ssl.
 
143
 
132
144
Win32
133
145
=====
134
146
 
506
518
 
507
519
       ./configure --host=ARCH-OS
508
520
 
 
521
REDUCING SIZE
 
522
=============
 
523
 
509
524
   There are a number of configure options that can be used to reduce the
510
525
   size of libcurl for embedded applications where binary size is an
511
 
   important factor.  First, be sure to set the CFLAGS environment variable
512
 
   when configuring with any compiler optimization flags to reduce the
513
 
   size of the binary.  For gcc, this would mean at minimum:
 
526
   important factor.  First, be sure to set the CFLAGS variable when
 
527
   configuring with any relevant compiler optimization flags to reduce the
 
528
   size of the binary.  For gcc, this would mean at minimum the -Os option
 
529
   and probably the -march=X option as well, e.g.:
514
530
 
515
 
      env CFLAGS='-Os' ./configure ...
 
531
      ./configure CFLAGS='-Os' ...
516
532
 
517
533
   Be sure to specify as many --disable- and --without- flags on the configure
518
534
   command-line as you can to disable all the libcurl features that you
526
542
     --disable-crypto-auth (disables HTTP cryptographic authentication)
527
543
     --disable-ipv6 (disables support for IPv6)
528
544
     --disable-verbose (eliminates debugging strings and error code strings)
 
545
     --enable-hidden-symbols (eliminates unneeded symbols in library)
529
546
     --without-libidn (disables support for the libidn DNS library)
530
547
     --without-ssl (disables support for SSL/TLS)
531
548
     --without-zlib (disables support for on-the-fly decompression)
532
549
 
 
550
   The GNU linker has a number of options to reduce the size of the libcurl
 
551
   dynamic libraries on some platforms even further. Specify them by giving
 
552
   the options -Wl,-Bsymbolic and -Wl,-s on the gcc command-line.  
 
553
   Be sure also to strip debugging symbols from your binaries after
 
554
   compiling using 'strip' (or the appropriate variant if cross-compiling).
 
555
   If space is really tight, you may be able to remove some unneeded
 
556
   sections of the library using the -R option to objcopy (e.g. the
 
557
   .comment section).
 
558
 
 
559
   Using these techniques it is possible to create an HTTP-only shared
 
560
   libcurl library for i386 Linux platforms that is less than 90 KB in
 
561
   size (as of version 7.15.4).
 
562
 
533
563
   You may find that statically linking libcurl to your application will
534
564
   result in a lower total size.
535
565