Lines Matching +full:cross +full:- +full:ios +full:- +full:build
7 package. This document describes how to compile, build and install curl and
16 ./bootstrap-vcpkg.sh
25 the `GIT-INFO` file in the root directory for specific instructions on how to
42 ./configure --help
47 ./configure --prefix=/path/to/curl/tree
53 ./configure --prefix=$HOME
62 ./configure --with-ssl
65 you have pkg-config installed, set the pkg-config path first, like this:
67 env PKG_CONFIG_PATH=/opt/OpenSSL/lib/pkgconfig ./configure --with-ssl
69 Without pkg-config installed, use this:
71 ./configure --with-ssl=/opt/OpenSSL
73 If you insist on forcing a build without SSL support, even though you may
76 ./configure --without-ssl
83 CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" ./configure
85 If you have shared SSL libs installed in a directory where your run-time
87 provide this option to gcc to set a hard-coded path to the run-time linker:
89 LDFLAGS=-Wl,-R/usr/local/ssl/lib ./configure --with-ssl
96 ./configure --disable-shared
98 To tell the configure script to skip searching for thread-safe functions, add
101 ./configure --disable-thread
104 options with the `--enable-debug` option.
107 services, and configure will try to auto-detect a decent default. But if you
115 - GnuTLS: `--without-ssl --with-gnutls`.
116 - wolfSSL: `--without-ssl --with-wolfssl`
117 - NSS: `--without-ssl --with-nss`
118 - mbedTLS: `--without-ssl --with-mbedtls`
119 - schannel: `--without-ssl --with-schannel`
120 - secure transport: `--without-ssl --with-secure-transport`
121 - MesaLink: `--without-ssl --with-mesalink`
122 - BearSSL: `--without-ssl --with-bearssl`
126 ## Building Windows DLLs and C run-time (CRT) linkage issues
136 - [How To Use the C Run-Time](https://support.microsoft.com/help/94248/how-to-use-the-c-run-time)
137 …- [Run-Time Library Compiler Options](https://docs.microsoft.com/cpp/build/reference/md-mt-ld-use-…
138 …- [Potential Errors Passing CRT Objects Across DLL Boundaries](https://docs.microsoft.com/cpp/c-ru…
153 then run `mingw32-make mingw32` in the root dir. There are other
154 make targets available to build libcurl with more features, use:
156 - `mingw32-make mingw32-zlib` to build with Zlib support;
157 - `mingw32-make mingw32-ssl-zlib` to build with SSL and Zlib enabled;
158 - `mingw32-make mingw32-ssh2-ssl-zlib` to build with SSH2, SSL, Zlib;
159 - `mingw32-make mingw32-ssh2-ssl-sspi-zlib` to build with SSH2, SSL, Zlib
167 set ZLIB_PATH=c:\zlib-1.2.8
168 set OPENSSL_PATH=c:\openssl-1.0.2c
169 set LIBSSH2_PATH=c:\libssh2-1.6.0
171 It is also possible to build with other LDAP SDKs than MS LDAP; currently
172 it is possible to build with native Win32 OpenLDAP, or with the Novell CLDAP
195 environment, therefore, you cannot use the various disable-protocol options of
199 [CURL-DISABLE.md](CURL-DISABLE-md) for the full list.
203 - Modify `lib/config-win32.h`
204 - Modify `lib/curl_setup.h`
205 - Modify `winbuild/Makefile.vc`
206 - Modify the "Preprocessor Definitions" in the libcurl project
208 Note: The pre-processor settings can be found using the Visual Studio IDE
209 under "Project -> Settings -> C/C++ -> General" in VC6 and "Project ->
210 Properties -> Configuration Properties -> C/C++ -> Preprocessor" in later
213 ## Using BSD-style lwIP instead of Winsock TCP/IP stack in Win32 builds
215 In order to compile libcurl and curl using BSD-style lwIP TCP/IP stack it is
220 - Modify `lib/config-win32.h` and `src/config-win32.h`
221 - Modify `winbuild/Makefile.vc`
222 - Modify the "Preprocessor Definitions" in the libcurl project
224 Note: The pre-processor settings can be found using the Visual Studio IDE
225 under "Project -> Settings -> C/C++ -> General" in VC6 and "Project ->
226 Properties -> Configuration Properties -> C/C++ -> Preprocessor" in later
229 Once that libcurl has been built with BSD-style lwIP TCP/IP stack support, in
236 1.4.0](https://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip) and
237 [contrib-1.4.0](https://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip).
239 This BSD-style lwIP TCP/IP stack support must be considered experimental given
246 you must add `-DCURL_STATICLIB` to your `CFLAGS`. Otherwise the linker will
257 # Apple iOS and macOS
260 implementation, Secure Transport, instead of OpenSSL. To build with Secure
261 Transport for SSL/TLS, use the configure option `--with-secure-transport`. (It
262 is not necessary to use the option `--without-ssl`.) This feature requires iOS
265 When Secure Transport is in use, the curl options `--cacert` and `--capath`
269 OS. The `--cert` and `--engine` options, and their libcurl equivalents, are
275 must build curl on Mountain Lion or later, or by using the equivalent SDK. If
280 commands in curl's directory in the shell will build the code such that it
284 ./configure --with-secure-transport
290 since using curl's `configure` script is the easiest way to build curl
291 for Android. Before you can build curl for Android, you need to install the
299 export HOST_TAG=darwin-x86_64
301 export AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
302 export AS=$TOOLCHAIN/bin/aarch64-linux-android-as
303 export CC=$TOOLCHAIN/bin/aarch64-linux-android29-clang
304 export CXX=$TOOLCHAIN/bin/aarch64-linux-android29-clang++
305 export LD=$TOOLCHAIN/bin/aarch64-linux-android-ld
306 export RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib
307 export STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip
310 to adjust those variables accordingly. After that you can build curl like this:
312 ./configure --host aarch64-linux-android --with-pic --disable-shared
315 to build curl against a SSL/TLS layer, e.g. OpenSSL, because it's impossible for
316 curl to access Android's native SSL/TLS layer. To build curl for Android using
317 OpenSSL, follow the OpenSSL build instructions and then install `libssl.a` and
319 `$TOOLCHAIN/sysroot/usr/include`. Now you can build curl for Android using
322 …./configure --host aarch64-linux-android --with-pic --disable-shared --with-ssl="$TOOLCHAIN/sysroo…
328 # Cross compile
332 `cd` to the new directory. (e.g. `cd curl-7.12.3`)
334 Set environment variables to point to the cross-compile toolchain and call
335 configure with any options you need. Be sure and specify the `--host` and
336 `--build` parameters at configuration time. The following script is an
337 example of cross-compiling for the IBM 405GP PowerPC processor using the
343 export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include"
344 export AR=ppc_405-ar
345 export AS=ppc_405-as
346 export LD=ppc_405-ld
347 export RANLIB=ppc_405-ranlib
348 export CC=ppc_405-gcc
349 export NM=ppc_405-nm
351 ./configure --target=powerpc-hardhat-linux
352 --host=powerpc-hardhat-linux
353 --build=i586-pc-linux-gnu
354 --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local
355 --exec-prefix=/usr/local
357 You may also need to provide a parameter like `--with-random=/dev/urandom` to
359 device for a target system. The `--prefix` parameter specifies where curl
365 ./configure --host=ARCH-OS
373 would mean at minimum the -Os option, and potentially the `-march=X`,
374 `-mdynamic-no-pic` and `-flto` options as well, e.g.
376 ./configure CFLAGS='-Os' LDFLAGS='-Wl,-Bsymbolic'...
381 Be sure to specify as many `--disable-` and `--without-` flags on the
382 configure command-line as you can to disable all the libcurl features that you
384 `--disable-PROTOCOL` flags for all the types of URLs your application will not
387 - `--disable-ares` (disables support for the C-ARES DNS library)
388 - `--disable-cookies` (disables support for HTTP cookies)
389 - `--disable-crypto-auth` (disables HTTP cryptographic authentication)
390 - `--disable-ipv6` (disables support for IPv6)
391 - `--disable-manual` (disables support for the built-in documentation)
392 - `--disable-proxy` (disables support for HTTP and SOCKS proxies)
393 - `--disable-unix-sockets` (disables support for UNIX sockets)
394 - `--disable-verbose` (eliminates debugging strings and error code strings)
395 - `--disable-versioned-symbols` (disables support for versioned symbols)
396 - `--enable-hidden-symbols` (eliminates unneeded symbols in the shared library)
397 - `--without-libidn` (disables support for the libidn DNS library)
398 - `--without-librtmp` (disables support for RTMP)
399 - `--without-ssl` (disables support for SSL/TLS)
400 - `--without-zlib` (disables support for on-the-fly decompression)
405 the configure command-line, e.g.
407 CFLAGS="-Os -ffunction-sections -fdata-sections
408 -fno-unwind-tables -fno-asynchronous-unwind-tables -flto"
409 LDFLAGS="-Wl,-s -Wl,-Bsymbolic -Wl,--gc-sections"
412 using 'strip' (or the appropriate variant if cross-compiling). If space is
414 library using the -R option to objcopy (e.g. the .comment section).
416 Using these techniques it is possible to create a basic HTTP-only shared
418 FTP-only library that is 113 KiB in size (as of libcurl version 7.50.3, using
425 the `--disable` statements suggested above. Use will cause tests relying on
430 - `--disable-cookies` !cookies
431 - `--disable-manual` !--manual
432 - `--disable-proxy` !HTTP\ proxy !proxytunnel !SOCKS4 !SOCKS5
440 - Alpha DEC OSF 4
441 - Alpha Digital UNIX v3.2
442 - Alpha FreeBSD 4.1, 4.5
443 - Alpha Linux 2.2, 2.4
444 - Alpha NetBSD 1.5.2
445 - Alpha OpenBSD 3.0
446 - Alpha OpenVMS V7.1-1H2
447 - Alpha Tru64 v5.0 5.1
448 - AVR32 Linux
449 - ARM Android 1.5, 2.1, 2.3, 3.2, 4.x
450 - ARM INTEGRITY
451 - ARM iOS
452 - Cell Linux
453 - Cell Cell OS
454 - HP-PA HP-UX 9.X 10.X 11.X
455 - HP-PA Linux
456 - HP3000 MPE/iX
457 - MicroBlaze uClinux
458 - MIPS IRIX 6.2, 6.5
459 - MIPS Linux
460 - OS/400
461 - Pocket PC/Win CE 3.0
462 - Power AIX 3.2.5, 4.2, 4.3.1, 4.3.2, 5.1, 5.2
463 - PowerPC Darwin 1.0
464 - PowerPC INTEGRITY
465 - PowerPC Linux
466 - PowerPC Mac OS 9
467 - PowerPC Mac OS X
468 - SH4 Linux 2.6.X
469 - SH4 OS21
470 - SINIX-Z v5
471 - Sparc Linux
472 - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8, 9, 10
473 - Sparc SunOS 4.1.X
474 - StrongARM (and other ARM) RISC OS 3.1, 4.02
475 - StrongARM/ARM7/ARM9 Linux 2.4, 2.6
476 - StrongARM NetBSD 1.4.1
477 - Symbian OS (P.I.P.S.) 9.x
478 - TPF
479 - Ultrix 4.3a
480 - UNICOS 9.0
481 - i386 BeOS
482 - i386 DOS
483 - i386 eCos 1.3.1
484 - i386 Esix 4.1
485 - i386 FreeBSD
486 - i386 HURD
487 - i386 Haiku OS
488 - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6
489 - i386 Mac OS X
490 - i386 MINIX 3.1
491 - i386 NetBSD
492 - i386 Novell NetWare
493 - i386 OS/2
494 - i386 OpenBSD
495 - i386 QNX 6
496 - i386 SCO unix
497 - i386 Solaris 2.7
498 - i386 Windows 95, 98, ME, NT, 2000, XP, 2003
499 - i486 ncr-sysv4.3.03 (NCR MP-RAS)
500 - ia64 Linux 2.3.99
501 - m68k AmigaOS 3
502 - m68k Linux
503 - m68k uClinux
504 - m68k OpenBSD
505 - m88k dg-dgux5.4R3.00
506 - s390 Linux
507 - x86_64 Linux
508 - XScale/PXA250 Linux 2.4
509 - Nios II uClinux