1*6236dae4SAndroid Build Coastguard Worker<!-- 2*6236dae4SAndroid Build Coastguard WorkerCopyright (C) Daniel Stenberg, <[email protected]>, et al. 3*6236dae4SAndroid Build Coastguard Worker 4*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl 5*6236dae4SAndroid Build Coastguard Worker--> 6*6236dae4SAndroid Build Coastguard Worker 7*6236dae4SAndroid Build Coastguard Worker# curl internals 8*6236dae4SAndroid Build Coastguard Worker 9*6236dae4SAndroid Build Coastguard WorkerThe canonical libcurl internals documentation is now in the [everything 10*6236dae4SAndroid Build Coastguard Workercurl](https://everything.curl.dev/internals) book. This file lists supported 11*6236dae4SAndroid Build Coastguard Workerversions of libs and build tools. 12*6236dae4SAndroid Build Coastguard Worker 13*6236dae4SAndroid Build Coastguard Worker## Portability 14*6236dae4SAndroid Build Coastguard Worker 15*6236dae4SAndroid Build Coastguard Worker We write curl and libcurl to compile with C89 compilers on 32-bit and up 16*6236dae4SAndroid Build Coastguard Worker machines. Most of libcurl assumes more or less POSIX compliance but that is 17*6236dae4SAndroid Build Coastguard Worker not a requirement. 18*6236dae4SAndroid Build Coastguard Worker 19*6236dae4SAndroid Build Coastguard Worker We write libcurl to build and work with lots of third party tools, and we 20*6236dae4SAndroid Build Coastguard Worker want it to remain functional and buildable with these and later versions 21*6236dae4SAndroid Build Coastguard Worker (older versions may still work but is not what we work hard to maintain): 22*6236dae4SAndroid Build Coastguard Worker 23*6236dae4SAndroid Build Coastguard Worker## Dependencies 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard Worker We aim to support these or later versions. 26*6236dae4SAndroid Build Coastguard Worker 27*6236dae4SAndroid Build Coastguard Worker - OpenSSL 0.9.7 28*6236dae4SAndroid Build Coastguard Worker - GnuTLS 3.1.10 29*6236dae4SAndroid Build Coastguard Worker - zlib 1.1.4 30*6236dae4SAndroid Build Coastguard Worker - libssh2 1.0 31*6236dae4SAndroid Build Coastguard Worker - c-ares 1.16.0 32*6236dae4SAndroid Build Coastguard Worker - libidn2 2.0.0 33*6236dae4SAndroid Build Coastguard Worker - wolfSSL 2.0.0 34*6236dae4SAndroid Build Coastguard Worker - OpenLDAP 2.0 35*6236dae4SAndroid Build Coastguard Worker - MIT Kerberos 1.2.4 36*6236dae4SAndroid Build Coastguard Worker - Heimdal ? 37*6236dae4SAndroid Build Coastguard Worker - nghttp2 1.15.0 38*6236dae4SAndroid Build Coastguard Worker - Winsock 2.2 (on Windows 95+ and Windows CE .NET 4.1+) 39*6236dae4SAndroid Build Coastguard Worker 40*6236dae4SAndroid Build Coastguard Worker## Build tools 41*6236dae4SAndroid Build Coastguard Worker 42*6236dae4SAndroid Build Coastguard Worker When writing code (mostly for generating stuff included in release tarballs) 43*6236dae4SAndroid Build Coastguard Worker we use a few "build tools" and we make sure that we remain functional with 44*6236dae4SAndroid Build Coastguard Worker these versions: 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker - GNU Libtool 1.4.2 47*6236dae4SAndroid Build Coastguard Worker - GNU Autoconf 2.59 48*6236dae4SAndroid Build Coastguard Worker - GNU Automake 1.7 49*6236dae4SAndroid Build Coastguard Worker - GNU M4 1.4 50*6236dae4SAndroid Build Coastguard Worker - perl 5.8 51*6236dae4SAndroid Build Coastguard Worker - roffit 0.5 52*6236dae4SAndroid Build Coastguard Worker - cmake 3.7 53*6236dae4SAndroid Build Coastguard Worker 54*6236dae4SAndroid Build Coastguard WorkerLibrary Symbols 55*6236dae4SAndroid Build Coastguard Worker=============== 56*6236dae4SAndroid Build Coastguard Worker 57*6236dae4SAndroid Build Coastguard Worker All symbols used internally in libcurl must use a `Curl_` prefix if they are 58*6236dae4SAndroid Build Coastguard Worker used in more than a single file. Single-file symbols must be made static. 59*6236dae4SAndroid Build Coastguard Worker Public ("exported") symbols must use a `curl_` prefix. Public API functions 60*6236dae4SAndroid Build Coastguard Worker are marked with `CURL_EXTERN` in the public header files so that all others 61*6236dae4SAndroid Build Coastguard Worker can be hidden on platforms where this is possible. 62