curl/docs
Viktor Szakats 10fbd8b4e3
Makefile.m32: major rework [ci skip]
This patch overhauls `Makefile.m32` scripts, fixing a list of quirks,
making its behaviour and customization envvars align better with other
build systems, aiming for less code, that is easier to read, use and
maintain.

Details:
- Rename customization envvars:
  `CURL_CC` -> `CC`
  `CURL_RC` -> `RC`
  `CURL_AR` -> `AR`
  `CURL_LDFLAG_EXTRAS_DLL` -> `CURL_LDFLAGS_LIB`
  `CURL_LDFLAG_EXTRAS_EXE` -> `CURL_LDFLAGS_BIN`
- Drop `CURL_STRIP` and `CURL_RANLIB`. These tools are no longer used.
- Accept `CFLAGS`, `CPPFLAGS`, `RCFLAGS`, `LDFLAGS` and `LIBS` envvars.
- Drop `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, `CURL_RCFLAG_EXTRAS` in
  favor of the above.
- Do not automatically enable `zlib` with `libssh2`. `zlib` is optional
  with `libssh2`.
- Omit unnecessary `CPPFLAGS` options when building `curl.exe` and
  examples.
- Drop support for deprecated `-winssl` `CFG` option. Use `-schannel`
  instead.
- Avoid late evaluation where not necessary (`=` -> `:=`).
- Drop support for `CURL_DLL_A_SUFFIX` to override the implib suffix.
  Instead, use the standard naming scheme by default: `libcurl.dll.a`.
  The toolchain recognizes the name, and selects it automatically when
  asking for a `-shared` vs. `-static` build.
- Stop applying `strip` to `libcurl.a`. Follow-up from
  16a58e9f93. There was no debug info to
  strip since then.
- Stop setting `-O3`, `-W`, `-Wall` options. You can add these to
  `CFLAGS` as desired.
- Always enable `-DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG` with OpenSSL,
  to avoid that vulnerability on Windows.
- Add `-lbrotlicommon` to `LIBS` when using `brotli`.
- Do not enable `-nghttp3` without `-ngtcp2`.
- `-ssh2` and `-rtmp` options no longer try to auto-select a TLS-backend.
  You need to set the backend explicitly. This scales better and avoids
  issues with certain combinations (e.g. `libssh2` + `wolfssl` with no
  `schannel`).
- Default to OpenSSL TLS-backend with `ngtcp2`. Possible to override via
  `NGTCP2_LIBS`.
- Old, alternate method of enabling components (e.g. `SSH2=1`) no longer
  supported.
- Delete `SPNEGO` references. They were no-ops.
- Drop support for Win9x environments.
- Allow setting `OPENSSL_LIBS` independently from `OPENSSL_LIBPATH`.
- Support autotools/CMake `libssh2` builds by default.
- Respect `CURL_DLL_SUFFIX` in `-dyn` mode when building `curl.exe` and
  examples.
- Assume standard directory layout with `LIBCARES_PATH`. (Instead of the
  long gone embedded one.)
- Stop static linking with c-ares by default. Add
  `CPPFLAGS=-DCARES_STATICLIB` to enable it.
- Reorganize internal layout to avoid redundancy and emit clean diffs
  between src/lib and example make files.
- Delete unused variables.
- Code cleanups/rework.
- Comment and indentation fixes.

Closes #9632
2022-10-03 19:46:56 +00:00
..
cmdline-opts lib: sanitize conditional exclusion around MIME 2022-09-29 10:51:04 +02:00
examples Makefile.m32: major rework [ci skip] 2022-10-03 19:46:56 +00:00
libcurl curl_url_set.3: document CURLU_APPENDQUERY proper 2022-10-01 16:22:53 +02:00
.gitignore
ALTSVC.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
BINDINGS.md docs: update sourceforge project links [ci skip] 2022-10-01 18:40:47 +00:00
BUFREF.md docs: spellfixes 2022-09-21 15:20:08 +02:00
BUG-BOUNTY.md
BUGS.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
CHECKSRC.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CIPHERS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CMakeLists.txt
CODE_OF_CONDUCT.md
CODE_REVIEW.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CODE_STYLE.md
CONTRIBUTE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
curl-config.1 docs: spellfixes 2022-09-21 15:20:08 +02:00
CURL-DISABLE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
DEPRECATE.md configure: deprecate builds with small curl_off_t 2022-09-28 08:19:06 +02:00
DYNBUF.md docs: spellfixes 2022-09-21 15:20:08 +02:00
EXPERIMENTAL.md docs: spellfixes 2022-09-21 15:20:08 +02:00
FAQ docs: spelling nits 2022-09-29 21:29:04 +00:00
FEATURES.md docs: spellfixes 2022-09-21 15:20:08 +02:00
GOVERNANCE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HELP-US.md
HISTORY.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HSTS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HTTP2.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HTTP3.md HTTP3.md: update Caddy example 2022-09-30 08:21:15 +02:00
HTTP-COOKIES.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HYPER.md
INSTALL
INSTALL.cmake
INSTALL.md Makefile.m32: major rework [ci skip] 2022-10-03 19:46:56 +00:00
INTERNALS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
KNOWN_BUGS docs: spellfixes 2022-09-21 15:20:08 +02:00
MAIL-ETIQUETTE docs: remove him/her/he/she from documentation 2022-07-27 13:52:53 +02:00
Makefile.am docs: use "WebSocket" in singular 2022-09-13 10:04:46 +02:00
MANUAL.md docs: spellfixes 2022-09-21 15:20:08 +02:00
mk-ca-bundle.1 docs: spellfixes 2022-09-21 15:20:08 +02:00
MQTT.md
NEW-PROTOCOL.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
options-in-versions
PARALLEL-TRANSFERS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
README.md
RELEASE-PROCEDURE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
ROADMAP.md
RUSTLS.md
SECURITY-PROCESS.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
SSL-PROBLEMS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
SSLCERTS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
THANKS THANKS: add contributors from the 7.85.0 release 2022-08-31 08:09:21 +02:00
THANKS-filter THANKS: merged two entries for Evgeny Grin 2022-07-01 09:49:14 +02:00
TheArtOfHttpScripting.md docs: spellfixes 2022-09-21 15:20:08 +02:00
TODO TODO: Provide the error body from a CONNECT response 2022-09-23 23:31:08 +02:00
URL-SYNTAX.md docs: spellfixes 2022-09-21 15:20:08 +02:00
VERSIONS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
WEBSOCKET.md docs: spellfixes 2022-09-21 15:20:08 +02:00

curl logo

Documentation

you will find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.

If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.