]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
build: drop the winbuild build system
authorViktor Szakats <commit@vsz.me>
Sun, 27 Jul 2025 11:50:03 +0000 (13:50 +0200)
committerViktor Szakats <commit@vsz.me>
Fri, 19 Sep 2025 23:20:25 +0000 (01:20 +0200)
In favor of CMake.

Closes #18040

26 files changed:
.github/labeler.yml
.github/scripts/codespell.sh
.github/scripts/spacecheck.pl
.github/scripts/typos.toml
.github/workflows/checksrc.yml
.github/workflows/curl-for-win.yml
.github/workflows/fuzz.yml
.github/workflows/http3-linux.yml
.github/workflows/linux-old.yml
.github/workflows/linux.yml
.github/workflows/macos.yml
.github/workflows/non-native.yml
.github/workflows/windows.yml
.gitignore
Makefile.am
appveyor.sh
appveyor.yml
docs/DEPRECATE.md
docs/INSTALL-CMAKE.md
docs/INSTALL.md
projects/README.md
winbuild/.gitignore [deleted file]
winbuild/Makefile.vc [deleted file]
winbuild/MakefileBuild.vc [deleted file]
winbuild/README.md [deleted file]
winbuild/makedebug.bat [deleted file]

index 42a891e62386bf1d8f95358da77a1422f3e6d86e..982055f16a3b3978f7a56ba129118a6d690fa510 100644 (file)
@@ -75,7 +75,6 @@ build:
               packages/**,\
               plan9/**,\
               projects/**,\
-              winbuild/**,\
               lib/libcurl.def,\
               tests/cmake/**\
               }"
@@ -520,6 +519,5 @@ Windows:
               m4/curl-schannel.m4,\
               projects/**,\
               src/tool_doswin.c,\
-              winbuild/**,\
               lib/libcurl.def\
               }"
index 766eeeb87c6f0529dc3bc65b11480a5a98ad7ae8..b373a7d210ccbbc8081649db059a0bde32c49474 100755 (executable)
@@ -14,7 +14,6 @@ codespell \
   --skip 'docs/THANKS' \
   --skip 'packages/*' \
   --skip 'scripts/wcurl' \
-  --skip 'winbuild/*' \
   --ignore-regex '.*spellchecker:disable-line' \
   --ignore-words '.github/scripts/codespell-ignore.txt' \
   $(git ls-files)
index e61d30b5b0c9901ea776094482f82e887ad87ca7..7caf526327615b3e1e06926ba77aefd4ba27a212 100755 (executable)
@@ -30,7 +30,7 @@ my @tabs = (
     "^m4/zz40-xc-ovr.m4",
     "Makefile\\.(am|example)\$",
     "/mkfile",
-    "\\.(sln|vc)\$",
+    "\\.sln\$",
     "^tests/data/test",
 );
 
@@ -40,7 +40,6 @@ my @mixed_eol = (
 
 my @need_crlf = (
     "\\.(bat|sln)\$",
-    "^winbuild/.+\\.md\$",
 );
 
 my @space_at_eol = (
index 46301615cd4fce1d16ad5983d92f8f91bcf6e2ad..73ecac136aca37da40e44d3f4f3c616be8591f6e 100644 (file)
@@ -25,5 +25,4 @@ extend-exclude = [
   "docs/THANKS",
   "packages/*",
   "scripts/wcurl",
-  "winbuild/*",
 ]
index 061a192297d964de99ad2a07cd7238cefd78b7ac..a0ff120becb3b441dfc97289ba8e75a697c29c6e 100644 (file)
@@ -18,7 +18,6 @@ name: 'Source'
       - 'Dockerfile'
       - 'plan9/**'
       - 'tests/data/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'Source'
       - 'Dockerfile'
       - 'plan9/**'
       - 'tests/data/**'
-      - 'winbuild/**'
 
 permissions: {}
 
index 704a78d2cd287d2270650ddd75456581ddf8145d..0090c7d6e22e59d5ca8aab6837ac32beb83183a5 100644 (file)
@@ -17,7 +17,6 @@ name: 'curl-for-win'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'curl-for-win'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
index d9cc43169e7ab2ce2ad98fe2323a502033d3d766..1c466160fc778a9556681edbfb0364253c543db4 100644 (file)
@@ -20,7 +20,6 @@ name: 'Fuzzer'
       - 'plan9/**'
       - 'projects/**'
       - 'tests/data/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -35,7 +34,6 @@ name: 'Fuzzer'
       - 'plan9/**'
       - 'projects/**'
       - 'tests/data/**'
-      - 'winbuild/**'
 
 permissions: {}
 
index 4ad880ddf6dc163976221cdbd15bf3fb252a5c04..3d3b35dee093f4b9eb5a73091150b8285cb6c2b5 100644 (file)
@@ -17,7 +17,6 @@ name: 'Linux HTTP/3'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'Linux HTTP/3'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   # Hardcoded workflow filename as workflow name above is just Linux again
index 352986eb047342db4ea34060a1ae30a658970fd7..e572c1745fb9926cfdfbc2127c0cb31165956fb3 100644 (file)
@@ -31,7 +31,6 @@ name: 'Old Linux'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -43,7 +42,6 @@ name: 'Old Linux'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 permissions: {}
 
index 70a6a259ab8d3d1b6c239905cd48764a830ab893..af2edf0e092bd03585ba00e14b0c479d05ca8e71 100644 (file)
@@ -16,7 +16,6 @@ name: 'Linux'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -27,7 +26,6 @@ name: 'Linux'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
index 5e817dd4bdd11c0ff77cdc8dcfdf84f77cb3987a..be8565303eb86f253103d33861ba1b295ce984d9 100644 (file)
@@ -17,7 +17,6 @@ name: 'macOS'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'macOS'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
index 3c76ed9de852c5e41cc0bfcc411b30dd3dcd44a7..2670c39078fd5c9055142e701e8af8099d64dc1a 100644 (file)
@@ -17,7 +17,6 @@ name: 'non-native'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'non-native'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
index b519af47d66c8f96d746e62a1e3f7ab2a4353872..d45979c05ac21ef7c97b513dfd0b425960b573dc 100644 (file)
@@ -17,7 +17,6 @@ name: 'Windows'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
   pull_request:
     branches:
       - master
@@ -29,7 +28,6 @@ name: 'Windows'
       - 'packages/**'
       - 'plan9/**'
       - 'projects/**'
-      - 'winbuild/**'
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
index 9c901f9fffef52f90f5e61d1f15a263e1ae863fa..0ac10029569755769a3592ba158ea219721d2e5a 100644 (file)
@@ -28,7 +28,6 @@
 /.vs
 /bld/
 /build/
-/builds/
 /stats/
 __pycache__
 Debug
index b5ab0442a81da0d808f84dd06819e8da2400901d..fd97e61d9df3ec4b67508965efdd81633bd0884a 100644 (file)
@@ -66,9 +66,6 @@ CMAKE_DIST =                                    \
 
 VC_DIST = projects/README.md projects/generate.bat
 
-WINBUILD_DIST = winbuild/README.md \
- winbuild/MakefileBuild.vc winbuild/Makefile.vc winbuild/makedebug.bat
-
 PLAN9_DIST = plan9/include/mkfile \
  plan9/include/mkfile             \
  plan9/mkfile.proto               \
@@ -80,7 +77,7 @@ PLAN9_DIST = plan9/include/mkfile \
  plan9/src/mkfile
 
 EXTRA_DIST = CHANGES.md COPYING RELEASE-NOTES Dockerfile .editorconfig \
- $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST)
+ $(CMAKE_DIST) $(VC_DIST) $(PLAN9_DIST)
 
 DISTCLEANFILES = buildinfo.txt
 
index dea58c9545425fe84715b88637022c40e0ecc59b..4be76095ee4ad519b0f90ea866e9c595510d33f5 100644 (file)
@@ -96,29 +96,6 @@ elif [ "${BUILD_SYSTEM}" = 'VisualStudioSolution' ]; then
     msbuild.exe -maxcpucount "-property:Configuration=${PRJ_CFG}" "Windows/${VC_VERSION}/curl-all.sln"
   )
   curl="build/Win32/${VC_VERSION}/${PRJ_CFG}/curld.exe"
-elif [ "${BUILD_SYSTEM}" = 'winbuild_vs2015' ]; then
-  (
-    cd winbuild
-    cat << EOF > _make.bat
-      call "C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/SetEnv.cmd" /x64
-      call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" x86_amd64
-      nmake -f Makefile.vc mode=dll VC=14 "SSL_PATH=${openssl_root_win}" WITH_SSL=dll MACHINE=x64 DEBUG=${DEBUG} ENABLE_UNICODE=${ENABLE_UNICODE} WINBUILD_ACKNOWLEDGE_DEPRECATED=yes
-EOF
-    ./_make.bat
-    rm _make.bat
-  )
-  curl="builds/libcurl-vc14-x64-${PATHPART}-dll-ssl-dll-ipv6-sspi/bin/curl.exe"
-elif [ "${BUILD_SYSTEM}" = 'winbuild_vs2017' ]; then
-  (
-    cd winbuild
-    cat << EOF > _make.bat
-      call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvars64.bat"
-      nmake -f Makefile.vc mode=dll VC=14.10 "SSL_PATH=${openssl_root_win}" WITH_SSL=dll MACHINE=x64 DEBUG=${DEBUG} ENABLE_UNICODE=${ENABLE_UNICODE} WINBUILD_ACKNOWLEDGE_DEPRECATED=yes
-EOF
-    ./_make.bat
-    rm _make.bat
-  )
-  curl="builds/libcurl-vc14.10-x64-${PATHPART}-dll-ssl-dll-ipv6-sspi/bin/curl.exe"
 fi
 
 find . \( -name '*.exe' -o -name '*.dll' -o -name '*.lib' -o -name '*.pdb' \) -exec file '{}' \;
index 42b580883c3b4d2b8da64a9d98f4362cf65fb41c..af6ecd2c159b47ac2d8fcde2c52e5400d1a04138 100644 (file)
@@ -147,57 +147,6 @@ environment:
       PRJ_CFG: Debug
       HTTP_ONLY: 'ON'
 
-    # winbuild-based builds
-
-    - job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      BUILD_SYSTEM: winbuild_vs2015
-      DEBUG: 'yes'
-      PATHPART: debug
-      ENABLE_UNICODE: 'no'
-    - job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      BUILD_SYSTEM: winbuild_vs2015
-      DEBUG: 'no'
-      PATHPART: release
-      ENABLE_UNICODE: 'no'
-    - job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-      BUILD_SYSTEM: winbuild_vs2017
-      DEBUG: 'yes'
-      PATHPART: debug
-      ENABLE_UNICODE: 'no'
-    - job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-      BUILD_SYSTEM: winbuild_vs2017
-      DEBUG: 'no'
-      PATHPART: release
-      ENABLE_UNICODE: 'no'
-    - job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      BUILD_SYSTEM: winbuild_vs2015
-      DEBUG: 'yes'
-      PATHPART: debug
-      ENABLE_UNICODE: 'yes'
-    - job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      BUILD_SYSTEM: winbuild_vs2015
-      DEBUG: 'no'
-      PATHPART: release
-      ENABLE_UNICODE: 'yes'
-    - job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-      BUILD_SYSTEM: winbuild_vs2017
-      DEBUG: 'yes'
-      PATHPART: debug
-      ENABLE_UNICODE: 'yes'
-    - job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
-      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-      BUILD_SYSTEM: winbuild_vs2017
-      DEBUG: 'no'
-      PATHPART: release
-      ENABLE_UNICODE: 'yes'
-
     # generated VisualStudioSolution-based builds
 
     - job_name: 'VisualStudioSolution, VS2013, Debug, x86, Schannel, Build-only'
index 65c630cbeebe1e19835519514c9829b7bbf16755..786b6a92c7e00f607c63f756a83d998ec36a9552 100644 (file)
@@ -12,13 +12,6 @@ email the
 as soon as possible and explain to us why this is a problem for you and
 how your use case cannot be satisfied properly using a workaround.
 
-## winbuild build system
-
-curl drops support for the winbuild build method after September 2025.
-
-We recommend migrating to CMake. See the migration guide in
-`docs/INSTALL-CMAKE.md`.
-
 ## Windows CE
 
 Windows CE "mainstream support" ended on October 9, 2018, and "Extended
@@ -79,3 +72,4 @@ We remove support for this OpenSSL version from curl in June 2026.
  - Secure Transport (removed in 8.15.0)
  - BearSSL (removed in 8.15.0)
  - msh3 (removed in 8.16.0)
+ - winbuild build system (removed in 8.17.0)
index ea761fa99a0e2e56609a0ff2767012fd8806c160..b112e1f8b43561d0c1ebdae1e0f225499d2aa3b3 100644 (file)
@@ -23,9 +23,7 @@ It consists of the following steps after you have unpacked the source.
 
 We recommend building with CMake on Windows. For instructions on migrating
 from the `projects/Windows` Visual Studio solution files, see
-[this section](#migrating-from-visual-studio-ide-project-files). For
-instructions on migrating from the winbuild builds, see
-[the following section](#migrating-from-winbuild-builds).
+[this section](#migrating-from-visual-studio-ide-project-files).
 
 ## Using `cmake`
 
@@ -546,59 +544,3 @@ We do *not* specify `-DCMAKE_BUILD_TYPE=Debug` here as we might do for the
 `"NMake Makefiles"` generator because the Visual Studio generators are
 [multi-config generators](https://cmake.org/cmake/help/latest/prop_gbl/GENERATOR_IS_MULTI_CONFIG.html)
 and therefore ignore the value of `CMAKE_BUILD_TYPE`.
-
-# Migrating from winbuild builds
-
-We recommend CMake to build curl with MSVC. The winbuild build system is
-deprecated and is going to be removed in September 2025 in favor of the CMake
-build system.
-
-In CMake you can customize the path of dependencies by passing the absolute
-header path and the full path of the library via `*_INCLUDE_DIR` and
-`*_LIBRARY` options (see the complete list in the option listing above).
-The full path to the library can point to a static library or an import
-library, which defines if the dependency is linked as a dll or statically.
-For OpenSSL this works
-[differently](https://cmake.org/cmake/help/latest/module/FindOpenSSL.html):
-You can pass the root directory of the OpenSSL installation via
-`OPENSSL_ROOT_DIR`, then pass `OPENSSL_USE_STATIC_LIBS=ON` to select static
-libs.
-
-winbuild options                  | Equivalent CMake options
-:-------------------------------- | :--------------------------------
-`DEBUG`                           | `CMAKE_BUILD_TYPE=Debug`
-`GEN_PDB`                         | `CMAKE_EXE_LINKER_FLAGS=/Fd<path>`, `CMAKE_SHARED_LINKER_FLAGS=/Fd<path>`
-`LIB_NAME_DLL`, `LIB_NAME_STATIC` | `IMPORT_LIB_SUFFIX`, `LIBCURL_OUTPUT_NAME`, `STATIC_LIB_SUFFIX`
-`VC`: `<N>`                       | see the CMake [Visual Studio generators](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html#visual-studio-generators)
-`MACHINE`: `x64`, `x86`           | `-A x64`, `-A Win32`
-`MODE`: `dll`, `static`           | `BUILD_SHARED_LIBS=ON/OFF`, `BUILD_STATIC_LIBS=ON/OFF`, `BUILD_STATIC_CURL=ON/OFF` (default: dll)
-`RTLIBCFG`: `static`              | `CURL_STATIC_CRT=ON`
-`ENABLE_IDN`                      | `USE_WIN32_IDN=ON`
-`ENABLE_IPV6`                     | `ENABLE_IPV6=ON`
-`ENABLE_NGHTTP2`                  | `USE_NGHTTP2=ON`
-`ENABLE_OPENSSL_AUTO_LOAD_CONFIG` | `CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG=OFF` (default)
-`ENABLE_SCHANNEL`                 | `CURL_USE_SCHANNEL=ON`
-`ENABLE_SSPI`                     | `CURL_WINDOWS_SSPI=ON` (default with Schannel)
-`ENABLE_UNICODE`                  | `ENABLE_UNICODE=ON`
-`WITH_PREFIX`                     | `CMAKE_INSTALL_PREFIX=<path>`
-`WITH_DEVEL`                      | see individual `*_INCLUDE_DIR` and `*_LIBRARY` options and `OPENSSL_ROOT_DIR`
-`WITH_CARES`, `CARES_PATH`        | `ENABLE_ARES=ON`, optional: `CARES_INCLUDE_DIR`, `CARES_LIBRARY`
-`WITH_MBEDTLS`, `MBEDTLS_PATH`    | `CURL_USE_MBEDTLS=ON`, optional: `MBEDTLS_INCLUDE_DIR`, `MBEDTLS_LIBRARY`, `MBEDX509_LIBRARY`, `MBEDCRYPTO_LIBRARY`
-`WITH_NGHTTP2`, `NGHTTP2_PATH`    | `USE_NGHTTP2=ON`, optional: `NGHTTP2_INCLUDE_DIR`, `NGHTTP2_LIBRARY`
-`WITH_SSH`, `SSH_PATH`            | `CURL_USE_LIBSSH=ON`, optional: `LIBSSH_INCLUDE_DIR`, `LIBSSH_LIBRARY`
-`WITH_SSH2`, `SSH2_PATH`          | `CURL_USE_LIBSSH2=ON`, optional: `LIBSSH2_INCLUDE_DIR`, `LIBSSH2_LIBRARY`
-`WITH_SSL`, `SSL_PATH`            | `CURL_USE_OPENSSL=ON`, optional: `OPENSSL_ROOT_DIR`, `OPENSSL_USE_STATIC_LIBS=ON`
-`WITH_WOLFSSL`, `WOLFSSL_PATH`    | `CURL_USE_WOLFSSL=ON`, optional: `WOLFSSL_INCLUDE_DIR`, `WOLFSSL_LIBRARY`
-`WITH_ZLIB`, `ZLIB_PATH`          | `CURL_ZLIB=ON`, optional: `ZLIB_INCLUDE_DIR`, `ZLIB_LIBRARY`
-
-For example this command-line:
-
-    > nmake -f Makefile.vc VC=17 MACHINE=x64 DEBUG=ON mode=dll SSL_PATH=C:\OpenSSL WITH_SSL=dll ENABLE_UNICODE=ON
-
-translates to:
-
-    > cmake . -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=ON -DOPENSSL_ROOT_DIR=C:\OpenSSL -DCURL_USE_OPENSSL=ON -DENABLE_UNICODE=ON -DCURL_USE_LIBPSL=OFF
-    > cmake --build . --config Debug
-
-We use `--config` with `cmake --build` because the Visual Studio CMake
-generators are multi-config and therefore ignore `CMAKE_BUILD_TYPE`.
index 0c53731710f1a1768960f194cc393734169c5233..ab20e9fde1df0e02a0637dec3caa8d90ef932cdf 100644 (file)
@@ -347,7 +347,6 @@ If you want to set any of these defines you have the following options:
 
  - Modify `lib/config-win32.h`
  - Modify `lib/curl_setup.h`
- - Modify `winbuild/Makefile.vc`
  - Modify the "Preprocessor Definitions" in the libcurl project
 
 Note: The pre-processor settings can be found using the Visual Studio IDE
@@ -362,7 +361,6 @@ visible to libcurl and curl compilation processes. To set this definition you
 have the following alternatives:
 
  - Modify `lib/config-win32.h`
- - Modify `winbuild/Makefile.vc`
  - Modify the "Preprocessor Definitions" in the libcurl project
 
 Note: The pre-processor settings can be found using the Visual Studio IDE
index e587249dbb84061d087fef872fe3d0b4acd70770..1777074c6d05712fc7dbcc8b1af9b5eeedabf7f2 100644 (file)
@@ -16,9 +16,6 @@ You need to generate the project files before using them. Please run "generate
 To generate project files for recent versions of Visual Studio instead, use
 cmake. Refer to INSTALL-CMAKE.md in the docs directory.
 
-Another way to build curl using Visual Studio is without project files. Refer
-to README in the winbuild directory.
-
 ## Directory Structure
 
 The following directory structure is used for the legacy project files:
diff --git a/winbuild/.gitignore b/winbuild/.gitignore
deleted file mode 100644 (file)
index 0d7f2b2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-*.idb
-*.inc
diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc
deleted file mode 100644 (file)
index 1a202cb..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-#***************************************************************************
-#                                  _   _ ____  _
-#  Project                     ___| | | |  _ \| |
-#                             / __| | | | |_) | |
-#                            | (__| |_| |  _ <| |___
-#                             \___|\___/|_| \_\_____|
-#
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at https://curl.se/docs/copyright.html.
-#
-# You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# copies of the Software, and permit persons to whom the Software is
-# furnished to do so, under the terms of the COPYING file.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# SPDX-License-Identifier: curl
-#
-#***************************************************************************
-
-!MESSAGE
-!MESSAGE WARNING:
-!MESSAGE
-!MESSAGE The winbuild build system is deprecated and will be removed in
-!MESSAGE September 2025 in favor of the CMake build system.
-!MESSAGE
-!MESSAGE Please see docs/INSTALL-CMAKE.md : "Migrating from winbuild builds"
-!MESSAGE
-!MESSAGE To use the winbuild build system you must acknowledge this warning by
-!MESSAGE setting command line option WINBUILD_ACKNOWLEDGE_DEPRECATED=yes
-!MESSAGE
-!IF "$(WINBUILD_ACKNOWLEDGE_DEPRECATED)"!="yes"
-!ERROR The user must acknowledge the deprecation warning to continue.
-!ENDIF
-
-!IF "$(MODE)"=="static"
-TARGET = $(LIB_NAME_STATIC)
-AS_DLL = false
-CFGSET=true
-!ELSEIF "$(MODE)"=="dll"
-TARGET = $(LIB_NAME_DLL)
-AS_DLL = true
-CFGSET=true
-!ELSE
-!MESSAGE Invalid mode: $(MODE)
-
-#######################
-# Usage
-#
-
-!MESSAGE See winbuild/README.md for usage
-!ERROR please choose a valid mode
-
-!ENDIF
-
-!INCLUDE "../lib/Makefile.inc"
-CSOURCES=$(CSOURCES:  = )
-LIBCURL_OBJS=$(CSOURCES:.c=.obj)
-
-!INCLUDE "../src/Makefile.inc"
-CURL_CFILES=$(CURL_CFILES:  = )
-CURL_OBJS=$(CURL_CFILES:.c=.obj)
-
-
-# backwards compatible check for USE_SSPI
-!IFDEF USE_SSPI
-ENABLE_SSPI = $(USE_SSPI)
-!ENDIF
-
-# default options
-
-!IFNDEF MACHINE
-# Note: nmake magically changes the value of PROCESSOR_ARCHITECTURE from "AMD64"
-# to "x86" when building in a 32 bit build environment on a 64 bit machine.
-!IF "$(PROCESSOR_ARCHITECTURE)"=="AMD64"
-MACHINE = x64
-!ELSE
-MACHINE = x86
-!ENDIF
-!ENDIF
-
-!IFNDEF ENABLE_IDN
-USE_IDN = true
-!ELSEIF "$(ENABLE_IDN)"=="yes"
-USE_IDN = true
-!ELSEIF "$(ENABLE_IDN)"=="no"
-USE_IDN = false
-!ENDIF
-
-!IFNDEF ENABLE_IPV6
-USE_IPV6 = true
-!ELSEIF "$(ENABLE_IPV6)"=="yes"
-USE_IPV6 = true
-!ELSEIF "$(ENABLE_IPV6)"=="no"
-USE_IPV6 = false
-!ENDIF
-
-!IFNDEF ENABLE_SSPI
-USE_SSPI = true
-!ELSEIF "$(ENABLE_SSPI)"=="yes"
-USE_SSPI = true
-!ELSEIF "$(ENABLE_SSPI)"=="no"
-USE_SSPI = false
-!ENDIF
-
-!IFNDEF ENABLE_SCHANNEL
-!IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS) || DEFINED(WITH_WOLFSSL)
-USE_SCHANNEL = false
-!ELSE
-USE_SCHANNEL = $(USE_SSPI)
-!ENDIF
-!ELSEIF "$(ENABLE_SCHANNEL)"=="yes"
-USE_SCHANNEL = true
-!ELSEIF "$(ENABLE_SCHANNEL)"=="no"
-USE_SCHANNEL = false
-!ENDIF
-
-!IFNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
-ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true
-!ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="yes"
-!UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
-ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true
-!ELSEIF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="no"
-!UNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
-ENABLE_OPENSSL_AUTO_LOAD_CONFIG = false
-!ENDIF
-
-!IFNDEF ENABLE_UNICODE
-USE_UNICODE = false
-!ELSEIF "$(ENABLE_UNICODE)"=="yes"
-USE_UNICODE = true
-!ELSEIF "$(ENABLE_UNICODE)"=="no"
-USE_UNICODE = false
-!ENDIF
-
-CONFIG_NAME_LIB = libcurl
-
-!IF "$(WITH_SSL)"=="dll"
-USE_SSL = true
-SSL     = dll
-!ELSEIF "$(WITH_SSL)"=="static"
-USE_SSL = true
-SSL     = static
-!ENDIF
-
-!IF "$(ENABLE_NGHTTP2)"=="yes"
-# compatibility bit, WITH_NGHTTP2 is the correct flag
-WITH_NGHTTP2 = dll
-USE_NGHTTP2  = true
-NGHTTP2      = dll
-!ELSEIF "$(WITH_NGHTTP2)"=="dll"
-USE_NGHTTP2 = true
-NGHTTP2     = dll
-!ELSEIF "$(WITH_NGHTTP2)"=="static"
-USE_NGHTTP2 = true
-NGHTTP2     = static
-!ENDIF
-
-!IFNDEF USE_NGHTTP2
-USE_NGHTTP2 = false
-!ENDIF
-
-!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static"
-USE_MBEDTLS = true
-MBEDTLS     = $(WITH_MBEDTLS)
-!ENDIF
-
-!IF "$(WITH_WOLFSSL)"=="dll" || "$(WITH_WOLFSSL)"=="static"
-USE_WOLFSSL = true
-WOLFSSL     = $(WITH_WOLFSSL)
-!ENDIF
-
-!IF "$(WITH_CARES)"=="dll"
-USE_CARES = true
-CARES     = dll
-!ELSEIF "$(WITH_CARES)"=="static"
-USE_CARES = true
-CARES     = static
-!ENDIF
-
-!IF "$(WITH_ZLIB)"=="dll"
-USE_ZLIB = true
-ZLIB     = dll
-!ELSEIF "$(WITH_ZLIB)"=="static"
-USE_ZLIB = true
-ZLIB     = static
-!ENDIF
-
-!IF "$(WITH_SSH2)"=="dll"
-USE_SSH2 = true
-SSH2     = dll
-!ELSEIF "$(WITH_SSH2)"=="static"
-USE_SSH2 = true
-SSH2     = static
-!ENDIF
-
-!IF "$(WITH_SSH)"=="dll"
-USE_SSH = true
-SSH     = dll
-!ELSEIF "$(WITH_SSH)"=="static"
-USE_SSH = true
-SSH     = static
-!ENDIF
-
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-vc$(VC)-$(MACHINE)
-
-!IF "$(DEBUG)"=="yes"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug
-!ELSE
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release
-!ENDIF
-
-!IF "$(AS_DLL)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll
-!ELSE
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static
-!ENDIF
-
-!IF "$(USE_SSL)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)
-!ENDIF
-
-!IF "$(USE_MBEDTLS)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-mbedtls-$(MBEDTLS)
-!ENDIF
-
-!IF "$(USE_WOLFSSL)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-wolfssl-$(WOLFSSL)
-!ENDIF
-
-!IF "$(USE_CARES)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-cares-$(CARES)
-!ENDIF
-
-!IF "$(USE_ZLIB)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)
-!ENDIF
-
-!IF "$(USE_SSH2)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)
-!ENDIF
-
-!IF "$(USE_SSH)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh-$(SSH)
-!ENDIF
-
-!IF "$(USE_IPV6)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6
-!ENDIF
-
-!IF "$(USE_SSPI)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi
-!ENDIF
-
-!IF "$(USE_SCHANNEL)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-schannel
-!ENDIF
-
-!IF "$(USE_NGHTTP2)"=="true"
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-nghttp2-$(NGHTTP2)
-!ENDIF
-
-!MESSAGE configuration name: $(CONFIG_NAME_LIB)
-
-# Note these directories are removed by this makefile's 'clean' so they should
-# not be changed to point to user-specified directories that may contain other
-# data. MakefileBuild.vc uses the same variable names but allows some user
-# changes and therefore does not remove the directories.
-BUILD_DIR=../builds/$(CONFIG_NAME_LIB)
-LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib
-CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl
-DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\
-
-$(MODE):
-       @echo LIBCURL_OBJS = \> LIBCURL_OBJS.inc
-       @for %%i in ($(LIBCURL_OBJS)) do @echo $(LIBCURL_DIROBJ)/%%i \>> LIBCURL_OBJS.inc
-       @echo. >> LIBCURL_OBJS.inc
-
-       @echo CURL_OBJS = \> CURL_OBJS.inc
-       @for %%i in ($(CURL_OBJS)) do @echo $(CURL_DIROBJ)/%%i \>> CURL_OBJS.inc
-       @echo. >> CURL_OBJS.inc
-
-       @SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)
-       @SET MACHINE=$(MACHINE)
-       @SET USE_NGHTTP2=$(USE_NGHTTP2)
-       @SET USE_IDN=$(USE_IDN)
-       @SET USE_IPV6=$(USE_IPV6)
-       @SET USE_SSPI=$(USE_SSPI)
-       @SET USE_SCHANNEL=$(USE_SCHANNEL)
-       @SET USE_UNICODE=$(USE_UNICODE)
-# compatibility bit
-       @SET WITH_NGHTTP2=$(WITH_NGHTTP2)
-
-       @$(MAKE) /NOLOGO /F MakefileBuild.vc
-
-copy_from_lib:
-       echo copying .c...
-       FOR %%i IN ($(CURLX_CFILES:/=\)) DO copy %%i ..\src\
-
-clean:
-       @if exist $(LIBCURL_DIROBJ) rd /s /q $(LIBCURL_DIROBJ)
-       @if exist $(CURL_DIROBJ) rd /s /q $(CURL_DIROBJ)
-       @if exist $(DIRDIST) rd /s /q $(DIRDIST)
-       $(MAKE) /NOLOGO /F MakefileBuild.vc $@
diff --git a/winbuild/MakefileBuild.vc b/winbuild/MakefileBuild.vc
deleted file mode 100644 (file)
index 509e43e..0000000
+++ /dev/null
@@ -1,732 +0,0 @@
-#***************************************************************************
-#                                  _   _ ____  _
-#  Project                     ___| | | |  _ \| |
-#                             / __| | | | |_) | |
-#                            | (__| |_| |  _ <| |___
-#                             \___|\___/|_| \_\_____|
-#
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at https://curl.se/docs/copyright.html.
-#
-# You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# copies of the Software, and permit persons to whom the Software is
-# furnished to do so, under the terms of the COPYING file.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# SPDX-License-Identifier: curl
-#
-#***************************************************************************
-
-###########################################################################
-#
-# Makefile for building libcurl with MSVC
-#
-# Usage: see README.md
-#
-##############################################################
-
-CFGSET=FALSE
-WINBUILD_DIR=`cd`
-
-# Utilities.
-# If a path is required that contains characters such as space, quote the path.
-MT         = mt.exe
-RC         = rc.exe
-ZIP        = zip.exe
-
-# Allow changing C compiler via environment variable CC (default cl.exe)
-# This command macro is not set by default: https://msdn.microsoft.com/en-us/library/ms933742.aspx
-!If "$(CC)" == ""
-CC = cl.exe
-!Endif
-
-!IF "$(VC)"=="6"
-CC_NODEBUG  = $(CC) /O2 /DNDEBUG
-CC_DEBUG    = $(CC) /Od /Gm /Zi /D_DEBUG /GZ
-CFLAGS      = /I. /I../lib /I../include /nologo /W4 /GX /YX /FD /c /DBUILDING_LIBCURL
-!ELSE
-CC_NODEBUG  = $(CC) /O2 /DNDEBUG
-CC_DEBUG    = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd
-CFLAGS      = /I. /I../lib /I../include /nologo /W4 /EHsc /FD /c /DBUILDING_LIBCURL
-!ENDIF
-
-LFLAGS     = /nologo /machine:$(MACHINE)
-LNKDLL     = link.exe /DLL
-# Use lib.exe instead of link.exe as link.exe /lib has the following bad habits:
-# - optimizing options like /opt:ref raises warnings (at least in Visual Studio 2015)
-# - all (including Windows) dependencies are aggregated (as static parts)
-# - link.exe /lib is not documented (anymore) at MSDN
-# Instead of id: just create an archive, that contains all objects
-LNKLIB     = lib.exe
-
-CFLAGS_PDB = /Zi
-LFLAGS_PDB = /incremental:no /opt:ref,icf /DEBUG
-
-CFLAGS_LIBCURL_STATIC  = /DCURL_STATICLIB
-
-WIN_LIBS    = ws2_32.lib wldap32.lib advapi32.lib crypt32.lib secur32.lib
-
-BASE_NAME              = libcurl
-BASE_NAME_DEBUG        = $(BASE_NAME)_debug
-BASE_NAME_STATIC       = $(BASE_NAME)_a
-BASE_NAME_STATIC_DEBUG = $(BASE_NAME_STATIC)_debug
-
-LIB_NAME_STATIC        = $(BASE_NAME_STATIC).lib
-LIB_NAME_STATIC_DEBUG  = $(BASE_NAME_STATIC_DEBUG).lib
-LIB_NAME_DLL           = $(BASE_NAME).dll
-LIB_NAME_IMP           = $(BASE_NAME).lib
-LIB_NAME_DLL_DEBUG     = $(BASE_NAME_DEBUG).dll
-LIB_NAME_IMP_DEBUG     = $(BASE_NAME_DEBUG).lib
-
-PDB_NAME_STATIC        = $(BASE_NAME_STATIC).pdb
-PDB_NAME_STATIC_DEBUG  = $(BASE_NAME_STATIC_DEBUG).pdb
-PDB_NAME_DLL           = $(BASE_NAME).pdb
-PDB_NAME_DLL_DEBUG     = $(BASE_NAME_DEBUG).pdb
-
-# CURL Command section
-PROGRAM_NAME  = curl.exe
-CURL_CFLAGS   = /I../lib /I../lib/curlx /I../include /nologo /W4 /EHsc /FD /c
-CURL_LFLAGS   = /out:$(DIRDIST)\bin\$(PROGRAM_NAME) /subsystem:console $(LFLAGS)
-CURL_RESFLAGS = /i../include
-
-#############################################################
-## Nothing more to do below this line!
-LIBCURL_SRC_DIR = ..\lib
-CURL_SRC_DIR = ..\src
-
-!IF EXISTS($(CURL_SRC_DIR)\tool_hugehelp.c)
-USE_MANUAL   = true
-CFLAGS       = $(CFLAGS) /DUSE_MANUAL
-!ENDIF
-
-!IFNDEF WITH_DEVEL
-WITH_DEVEL   = ../../deps
-!ENDIF
-DEVEL_INCLUDE= $(WITH_DEVEL)/include
-DEVEL_LIB    = $(WITH_DEVEL)/lib
-
-!IF EXISTS("$(DEVEL_INCLUDE)")
-CFLAGS       = $(CFLAGS) /I"$(DEVEL_INCLUDE)"
-!ENDIF
-!IF EXISTS("$(DEVEL_LIB)")
-LFLAGS       = $(LFLAGS) "/LIBPATH:$(DEVEL_LIB)"
-!ENDIF
-
-!IFDEF SSL_PATH
-SSL_INC_DIR  = $(SSL_PATH)\include
-SSL_LIB_DIR  = $(SSL_PATH)\lib
-SSL_LFLAGS   = $(SSL_LFLAGS) "/LIBPATH:$(SSL_LIB_DIR)"
-!ELSE
-SSL_INC_DIR=$(DEVEL_INCLUDE)\openssl
-SSL_LIB_DIR=$(DEVEL_LIB)
-!ENDIF
-
-!IF "$(WITH_SSL)"=="dll" || "$(WITH_SSL)"=="static"
-!IF EXISTS("$(SSL_LIB_DIR)\libssl.lib")
-SSL_LIBS     = libssl.lib libcrypto.lib
-!ELSE
-SSL_LIBS     = libeay32.lib ssleay32.lib
-!ENDIF
-USE_SSL      = true
-SSL          = $(WITH_SSL)
-!IF "$(WITH_SSL)"=="static"
-WIN_LIBS     = $(WIN_LIBS) gdi32.lib user32.lib crypt32.lib
-!ENDIF
-!ENDIF
-
-!IFDEF USE_SSL
-SSL_CFLAGS   = /DUSE_OPENSSL /I"$(SSL_INC_DIR)"
-!IF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="false"
-SSL_CFLAGS   = $(SSL_CFLAGS) /DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
-!ENDIF
-!ENDIF
-
-!IF "$(DISABLE_WEBSOCKETS)"=="true"
-CFLAGS  = $(CFLAGS) /DCURL_DISABLE_WEBSOCKETS=1
-!ENDIF
-
-!IFDEF NGHTTP2_PATH
-NGHTTP2_INC_DIR  = $(NGHTTP2_PATH)\include
-NGHTTP2_LIB_DIR  = $(NGHTTP2_PATH)\lib
-NGHTTP2_LFLAGS   = $(NGHTTP2_LFLAGS) "/LIBPATH:$(NGHTTP2_LIB_DIR)"
-!ELSE
-NGHTTP2_INC_DIR  = $(DEVEL_INCLUDE)
-NGHTTP2_LIB_DIR  = $(DEVEL_LIB)
-!ENDIF
-
-!IF "$(WITH_NGHTTP2)"=="dll"
-NGHTTP2_CFLAGS   = /DUSE_NGHTTP2 /I"$(NGHTTP2_INC_DIR)"
-NGHTTP2_LIBS     = nghttp2.lib
-!ELSEIF "$(WITH_NGHTTP2)"=="static"
-NGHTTP2_CFLAGS   = /DUSE_NGHTTP2 /DNGHTTP2_STATICLIB /I"$(NGHTTP2_INC_DIR)"
-!IF EXISTS("$(NGHTTP2_LIB_DIR)\nghttp2_static.lib")
-NGHTTP2_LIBS     = nghttp2_static.lib
-!ELSE
-NGHTTP2_LIBS     = nghttp2.lib
-!ENDIF
-!ENDIF
-
-!IFDEF MBEDTLS_PATH
-MBEDTLS_INC_DIR  = $(MBEDTLS_PATH)\include
-MBEDTLS_LIB_DIR  = $(MBEDTLS_PATH)\lib
-MBEDTLS_LFLAGS   = $(MBEDTLS_LFLAGS) "/LIBPATH:$(MBEDTLS_LIB_DIR)"
-!ELSE
-MBEDTLS_INC_DIR  = $(DEVEL_INCLUDE)
-MBEDTLS_LIB_DIR  = $(DEVEL_LIB)
-!ENDIF
-
-!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static"
-USE_MBEDTLS    = true
-MBEDTLS        = $(WITH_MBEDTLS)
-MBEDTLS_CFLAGS = /DUSE_MBEDTLS /I"$(MBEDTLS_INC_DIR)"
-MBEDTLS_LIBS   = mbedtls.lib mbedcrypto.lib mbedx509.lib
-!ENDIF
-
-!IFDEF WOLFSSL_PATH
-WOLFSSL_INC_DIR  = $(WOLFSSL_PATH)\include
-WOLFSSL_LIB_DIR  = $(WOLFSSL_PATH)\lib
-WOLFSSL_LFLAGS   = $(WOLFSSL_LFLAGS) "/LIBPATH:$(WOLFSSL_LIB_DIR)"
-!ELSE
-WOLFSSL_INC_DIR  = $(DEVEL_INCLUDE)
-WOLFSSL_LIB_DIR  = $(DEVEL_LIB)
-!ENDIF
-
-!IF "$(WITH_WOLFSSL)"=="dll" || "$(WITH_WOLFSSL)"=="static"
-USE_WOLFSSL    = true
-WOLFSSL        = $(WITH_WOLFSSL)
-WOLFSSL_CFLAGS = /DUSE_WOLFSSL /I"$(WOLFSSL_INC_DIR)"
-WOLFSSL_LIBS   = wolfssl.lib
-!ENDIF
-
-
-!IFDEF CARES_PATH
-CARES_INC_DIR  = $(CARES_PATH)\include
-CARES_LIB_DIR  = $(CARES_PATH)\lib
-CARES_LFLAGS   = $(CARES_LFLAGS) "/LIBPATH:$(CARES_LIB_DIR)"
-!ELSE
-CARES_INC_DIR  = $(DEVEL_INCLUDE)/cares
-CARES_LIB_DIR  = $(DEVEL_LIB)
-!ENDIF
-
-!IF "$(WITH_CARES)"=="dll"
-!IF "$(DEBUG)"=="yes"
-CARES_LIBS     = caresd.lib
-!ELSE
-CARES_LIBS     = cares.lib
-!ENDIF
-USE_CARES      = true
-CARES          = dll
-!ELSEIF "$(WITH_CARES)"=="static"
-!IF "$(DEBUG)"=="yes"
-CARES_LIBS     = libcaresd.lib
-!ELSE
-CARES_LIBS     = libcares.lib
-!ENDIF
-USE_CARES      = true
-CARES          = static
-!ENDIF
-
-!IFDEF USE_CARES
-CARES_CFLAGS   = /DUSE_ARES /I"$(CARES_INC_DIR)"
-!IF "$(CARES)"=="static"
-CARES_CFLAGS   = $(CARES_CFLAGS) /DCARES_STATICLIB
-!ENDIF
-!ENDIF
-
-
-!IFDEF ZLIB_PATH
-ZLIB_INC_DIR = $(ZLIB_PATH)\include
-ZLIB_LIB_DIR = $(ZLIB_PATH)\lib
-ZLIB_LFLAGS  = $(ZLIB_LFLAGS) "/LIBPATH:$(ZLIB_LIB_DIR)"
-!ELSE
-ZLIB_INC_DIR = $(DEVEL_INCLUDE)
-ZLIB_LIB_DIR = $(DEVEL_LIB)
-!ENDIF
-
-# Depending on how zlib is built the libraries have different names, we
-# try to handle them all.
-!IF "$(WITH_ZLIB)"=="dll"
-!IF EXISTS("$(ZLIB_LIB_DIR)\zlibwapi.lib")
-ZLIB_LIBS = zlibwapi.lib
-ADDITIONAL_ZLIB_CFLAGS = /DZLIB_WINAPI
-!ELSEIF EXISTS("$(ZLIB_LIB_DIR)\zdll.lib")
-ZLIB_LIBS   = zdll.lib
-!ELSE
-ZLIB_LIBS   = zlib.lib
-!ENDIF
-USE_ZLIB    = true
-ZLIB        = dll
-!ELSEIF "$(WITH_ZLIB)"=="static"
-!IF EXISTS("$(ZLIB_LIB_DIR)\zlibstat.lib")
-ZLIB_LIBS   = zlibstat.lib
-ADDITIONAL_ZLIB_CFLAGS = /DZLIB_WINAPI
-!ELSEIF EXISTS("$(ZLIB_LIB_DIR)\zlibstatic.lib")
-ZLIB_LIBS   = zlibstatic.lib
-!ELSEIF EXISTS("$(ZLIB_LIB_DIR)\zlib.lib")
-ZLIB_LIBS   = zlib.lib
-!ELSE
-ZLIB_LIBS   = zlib_a.lib
-!ENDIF
-USE_ZLIB    = true
-ZLIB        = static
-!ENDIF
-
-!IFDEF USE_ZLIB
-ZLIB_CFLAGS = /DHAVE_LIBZ $(ADDITIONAL_ZLIB_CFLAGS) /I"$(ZLIB_INC_DIR)"
-!ENDIF
-
-
-!IFDEF SSH2_PATH
-SSH2_INC_DIR= $(SSH2_PATH)\include
-SSH2_LIB_DIR= $(SSH2_PATH)\lib
-SSH2_LFLAGS = $(SSH2_LFLAGS) "/LIBPATH:$(SSH2_LIB_DIR)"
-!ELSE
-SSH2_LIB_DIR= $(DEVEL_LIB)
-SSH2_INC_DIR= $(DEVEL_INCLUDE)/libssh2
-!ENDIF
-
-!IF "$(WITH_SSH2)"=="dll"
-SSH2_LIBS   = libssh2.lib
-USE_SSH2    = true
-SSH2        = dll
-!ELSEIF "$(WITH_SSH2)"=="static"
-# libssh2 NMakefile on Windows at default creates a static library without _a suffix
-!IF EXISTS("$(SSH2_LIB_DIR)\libssh2.lib")
-SSH2_LIBS   = libssh2.lib
-!ELSE
-SSH2_LIBS   = libssh2_a.lib
-!ENDIF
-WIN_LIBS     = $(WIN_LIBS) user32.lib
-USE_SSH2    = true
-SSH2        = static
-!ENDIF
-
-!IFDEF USE_SSH2
-SSH2_CFLAGS = /DUSE_LIBSSH2
-SSH2_CFLAGS = $(SSH2_CFLAGS) /I"$(SSH2_INC_DIR)"
-!ENDIF
-
-
-!IFDEF SSH_PATH
-SSH_INC_DIR= $(SSH_PATH)\include
-SSH_LIB_DIR= $(SSH_PATH)\lib
-SSH_LFLAGS = $(SSH_LFLAGS) "/LIBPATH:$(SSH_LIB_DIR)"
-!ELSE
-SSH_LIB_DIR= $(DEVEL_LIB)
-SSH_INC_DIR= $(DEVEL_INCLUDE)
-!ENDIF
-
-!IF "$(WITH_SSH)"=="dll" || "$(WITH_SSH)"=="static"
-SSH_LIBS   = ssh.lib
-USE_SSH    = true
-SSH        = $(WITH_SSH)
-!ENDIF
-
-!IFDEF USE_SSH
-SSH_CFLAGS = /DUSE_LIBSSH
-SSH_CFLAGS = $(SSH_CFLAGS) /I"$(SSH_INC_DIR)"
-!ENDIF
-
-
-!IFNDEF USE_IDN
-USE_IDN   = true
-!ELSEIF "$(USE_IDN)"=="yes"
-USE_IDN   = true
-!ENDIF
-
-!IF "$(USE_IDN)"=="true"
-IDN_CFLAGS = $(IDN_CFLAGS) /DUSE_WIN32_IDN
-WIN_LIBS   = $(WIN_LIBS) Normaliz.lib
-!ENDIF
-
-
-!IFNDEF USE_IPV6
-USE_IPV6  = true
-!ELSEIF "$(USE_IPV6)"=="yes"
-USE_IPV6  = true
-!ENDIF
-
-!IF "$(USE_IPV6)"=="true"
-IPV6_CFLAGS = $(IPV6_CFLAGS) /DUSE_IPV6
-!ENDIF
-
-
-!IFNDEF USE_SSPI
-USE_SSPI  = true
-!ELSEIF "$(USE_SSPI)"=="yes"
-USE_SSPI  = true
-!ENDIF
-
-!IF "$(USE_SSPI)"=="true"
-SSPI_CFLAGS = $(SSPI_CFLAGS) /DUSE_WINDOWS_SSPI
-!ENDIF
-
-
-!IFNDEF USE_SCHANNEL
-!IF "$(USE_SSL)"=="true"
-USE_SCHANNEL  = false
-!ELSE
-USE_SCHANNEL  = $(USE_SSPI)
-!ENDIF
-!ELSEIF "$(USE_SCHANNEL)"=="yes"
-USE_SCHANNEL  = true
-!ENDIF
-
-
-!IF "$(USE_SCHANNEL)"=="true"
-!IF "$(USE_SSPI)"!="true"
-!ERROR cannot build with Schannel without SSPI
-!ENDIF
-SSPI_CFLAGS = $(SSPI_CFLAGS) /DUSE_SCHANNEL
-WIN_LIBS    = $(WIN_LIBS) Crypt32.lib
-!ENDIF
-
-
-!IF "$(GEN_PDB)"=="yes"
-GEN_PDB = true
-!ENDIF
-
-
-!IFDEF EMBED_MANIFEST
-MANIFESTTOOL = $(MT) -manifest $(DIRDIST)\bin\$(PROGRAM_NAME).manifest -outputresource:$(DIRDIST)\bin\$(PROGRAM_NAME);1
-!ENDIF
-
-# Runtime library configuration
-!IF "$(RTLIBCFG)"=="static"
-RTLIB = /MT
-RTLIB_DEBUG = /MTd
-!ELSE
-RTLIB = /MD
-RTLIB_DEBUG  = /MDd
-!ENDIF
-
-!IF "$(MODE)"=="static"
-TARGET = $(LIB_NAME_STATIC)
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_STATIC)
-AS_DLL = false
-CFGSET = true
-!ELSEIF "$(MODE)"=="dll"
-TARGET = $(LIB_NAME_DLL)
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_IMP)
-AS_DLL = true
-CFGSET = true
-!ENDIF
-
-!IF "$(CFGSET)" == "FALSE"
-!ERROR please choose a valid mode
-!ENDIF
-
-
-# CURL_XX macros are for the curl.exe command
-
-!IF "$(DEBUG)"=="yes"
-RC_FLAGS = /d_DEBUG /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
-CURL_CC       = $(CC_DEBUG) $(RTLIB_DEBUG)
-CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /d_DEBUG /Fo $@ $(CURL_SRC_DIR)\curl.rc
-!ELSE
-RC_FLAGS = /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc
-CURL_CC       = $(CC_NODEBUG) $(RTLIB)
-CURL_RC_FLAGS = $(CURL_RC_FLAGS) /i../include /Fo $@ $(CURL_SRC_DIR)\curl.rc
-!ENDIF
-
-!IF "$(AS_DLL)" == "true"
-
-LNK       = $(LNKDLL) $(LFLAGS) $(WIN_LIBS) /out:$(LIB_DIROBJ)\$(TARGET)
-!IF "$(DEBUG)"=="yes"
-TARGET    = $(LIB_NAME_DLL_DEBUG)
-LNK       = $(LNK) /DEBUG /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG)
-PDB       = $(PDB_NAME_DLL_DEBUG)
-CURL_LIBS = /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG)
-!ELSE
-TARGET    = $(LIB_NAME_DLL)
-LNK       = $(LNK)  /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP)
-PDB       = $(PDB_NAME_DLL)
-CURL_LIBS = /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP)
-!ENDIF
-RESOURCE  = $(LIB_DIROBJ)\libcurl.res
-
-# AS_DLL
-!ELSE
-
-!IF "$(DEBUG)"=="yes"
-TARGET   = $(LIB_NAME_STATIC_DEBUG)
-PDB      = $(PDB_NAME_STATIC_DEBUG)
-!ELSE
-TARGET   = $(LIB_NAME_STATIC)
-PDB      = $(PDB_NAME_STATIC)
-!ENDIF
-LNK      = $(LNKLIB) /out:$(LIB_DIROBJ)\$(TARGET)
-CURL_CC  = $(CURL_CC) $(CFLAGS_LIBCURL_STATIC)
-
-# AS_DLL
-!ENDIF
-
-!IF "$(USE_SSL)"=="true"
-CFLAGS = $(CFLAGS) $(SSL_CFLAGS)
-LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(SSL_LIBS)
-!ENDIF
-
-!IF "$(USE_MBEDTLS)"=="true"
-CFLAGS = $(CFLAGS) $(MBEDTLS_CFLAGS)
-LFLAGS = $(LFLAGS) $(MBEDTLS_LFLAGS) $(MBEDTLS_LIBS)
-!ENDIF
-
-!IF "$(USE_WOLFSSL)"=="true"
-CFLAGS = $(CFLAGS) $(WOLFSSL_CFLAGS)
-LFLAGS = $(LFLAGS) $(WOLFSSL_LFLAGS) $(WOLFSSL_LIBS)
-!ENDIF
-
-!IF "$(USE_CARES)"=="true"
-CFLAGS = $(CFLAGS) $(CARES_CFLAGS)
-LFLAGS = $(LFLAGS) $(CARES_LFLAGS) $(CARES_LIBS)
-!ENDIF
-
-!IF "$(USE_ZLIB)"=="true"
-CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS)
-LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS) $(ZLIB_LIBS)
-!ENDIF
-
-!IF "$(USE_SSH2)"=="true"
-CFLAGS = $(CFLAGS) $(SSH2_CFLAGS)
-LFLAGS = $(LFLAGS) $(SSH2_LFLAGS) $(SSH2_LIBS)
-!ENDIF
-
-!IF "$(USE_SSH)"=="true"
-CFLAGS = $(CFLAGS) $(SSH_CFLAGS)
-LFLAGS = $(LFLAGS) $(SSH_LFLAGS) $(SSH_LIBS)
-!ENDIF
-
-!IF "$(USE_IDN)"=="true"
-CFLAGS = $(CFLAGS) $(IDN_CFLAGS)
-!ENDIF
-
-!IF "$(USE_IPV6)"=="true"
-CFLAGS = $(CFLAGS) $(IPV6_CFLAGS)
-!ENDIF
-
-!IF "$(USE_SSPI)"=="true"
-CFLAGS = $(CFLAGS) $(SSPI_CFLAGS)
-!ENDIF
-
-!IF "$(USE_NGHTTP2)"=="true"
-CFLAGS = $(CFLAGS) $(NGHTTP2_CFLAGS)
-LFLAGS = $(LFLAGS) $(NGHTTP2_LFLAGS) $(NGHTTP2_LIBS)
-!ENDIF
-
-!IF "$(GEN_PDB)"=="true"
-CFLAGS = $(CFLAGS) $(CFLAGS_PDB) /Fd"$(LIB_DIROBJ)\$(PDB)"
-LFLAGS = $(LFLAGS) $(LFLAGS_PDB)
-!ENDIF
-
-!IF ( "$(USE_SSL)"=="true" && "$(USE_SCHANNEL)"=="true" ) \
- || ( "$(USE_SSL)"=="true" && "$(USE_MBEDTLS)"=="true" ) \
- || ( "$(USE_SSL)"=="true" && "$(USE_WOLFSSL)"=="true" ) \
- || ( "$(USE_MBEDTLS)"=="true" && "$(USE_WOLFSSL)"=="true" ) \
- || ( "$(USE_MBEDTLS)"=="true" && "$(USE_SCHANNEL)"=="true" ) \
- || ( "$(USE_WOLFSSL)"=="true" && "$(USE_SCHANNEL)"=="true" )
-CFLAGS = $(CFLAGS) /DCURL_WITH_MULTI_SSL
-!ENDIF
-
-!IF "$(USE_UNICODE)"=="true"
-CFLAGS = $(CFLAGS) /DUNICODE /D_UNICODE
-!ENDIF
-
-LIB_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib
-CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl
-
-!IFDEF WITH_PREFIX
-DIRDIST = $(WITH_PREFIX)
-!ELSE
-DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\
-!ENDIF
-
-#
-# curl.exe
-#
-CURL_LINK = link.exe /incremental:no /libpath:"$(DIRDIST)\lib"
-
-!IF "$(CFGSET)" != "FALSE"
-# A mode was provided, so the library can be built.
-#
-!include CURL_OBJS.inc
-!include LIBCURL_OBJS.inc
-
-!IF "$(AS_DLL)" == "true"
-LIB_OBJS = $(LIBCURL_OBJS) $(RESOURCE)
-!ELSE
-LIB_OBJS = $(LIBCURL_OBJS)
-!ENDIF
-
-EXE_OBJS = $(CURL_OBJS) $(CURL_DIROBJ)\curl.res
-
-all : $(TARGET) $(PROGRAM_NAME)
-
-package: $(TARGET)
-       @cd $(DIRDIST)
-       @-$(ZIP) -9 -q -r ..\$(CONFIG_NAME_LIB).zip .>nul 2<&1
-       @cd $(MAKEDIR)
-
-$(TARGET): $(LIB_OBJS) $(LIB_DIROBJ) $(DIRDIST)
-       @echo Using SSL: $(USE_SSL)
-       @echo Using NGHTTP2: $(USE_NGHTTP2)
-       @echo Using c-ares: $(USE_CARES)
-       @echo Using SSH2: $(USE_SSH2)
-       @echo Using SSH: $(USE_SSH)
-       @echo Using ZLIB: $(USE_ZLIB)
-       @echo Using IDN:  $(USE_IDN)
-       @echo Using IPv6: $(USE_IPV6)
-       @echo Using SSPI: $(USE_SSPI)
-       @echo Using Schannel: $(USE_SCHANNEL)
-       @echo CFLAGS:     $(CFLAGS)
-       @echo LFLAGS:     $(LFLAGS)
-       @echo GenPDB:     $(GEN_PDB)
-       @echo Debug:      $(DEBUG)
-       @echo Machine:    $(MACHINE)
-       $(LNK) $(LIB_OBJS)
-       @echo Copying libs...
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_DLL) copy $(LIB_DIROBJ)\$(LIB_NAME_DLL)       $(DIRDIST)\bin\ /y >nul 2<&1
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_STATIC) copy $(LIB_DIROBJ)\$(LIB_NAME_STATIC)    $(DIRDIST)\lib\ /y >nul 2<&1
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_DLL_DEBUG) copy $(LIB_DIROBJ)\$(LIB_NAME_DLL_DEBUG) $(DIRDIST)\bin\ /y >nul 2<&1
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_STATIC_DEBUG) copy $(LIB_DIROBJ)\$(LIB_NAME_STATIC_DEBUG) $(DIRDIST)\lib\ /y >nul 2<&1
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_IMP) copy $(LIB_DIROBJ)\$(LIB_NAME_IMP)       $(DIRDIST)\lib\ /y >nul 2<&1
-       @if exist $(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG) copy $(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG) $(DIRDIST)\lib >nul 2<&1
-       @-copy $(LIB_DIROBJ)\*.exp                 $(DIRDIST)\lib /y >nul 2<&1
-       @-copy $(LIB_DIROBJ)\*.pdb                 $(DIRDIST)\lib /y >nul 2<&1
-       @-copy ..\include\curl\*.h   $(DIRDIST)\include\curl\ /y  >nul 2<&1
-
-$(LIB_OBJS): $(LIB_DIROBJ) $(DIRDIST)
-
-$(DIRDIST):
-       @if not exist "$(DIRDIST)\bin" mkdir $(DIRDIST)\bin
-       @if not exist "$(DIRDIST)\include" mkdir $(DIRDIST)\include
-       @if not exist "$(DIRDIST)\include\curl" mkdir $(DIRDIST)\include\curl
-       @if not exist "$(DIRDIST)\lib" mkdir $(DIRDIST)\lib
-
-$(LIB_DIROBJ):
-       @if not exist "$(LIB_DIROBJ)" mkdir $(LIB_DIROBJ)
-       @if not exist "$(LIB_DIROBJ)\vauth" mkdir $(LIB_DIROBJ)\vauth
-       @if not exist "$(LIB_DIROBJ)\vtls" mkdir $(LIB_DIROBJ)\vtls
-       @if not exist "$(LIB_DIROBJ)\vssh" mkdir $(LIB_DIROBJ)\vssh
-       @if not exist "$(LIB_DIROBJ)\vquic" mkdir $(LIB_DIROBJ)\vquic
-       @if not exist "$(LIB_DIROBJ)\curlx" mkdir $(LIB_DIROBJ)\curlx
-
-$(CURL_DIROBJ):
-       @if not exist "$(CURL_DIROBJ)" mkdir $(CURL_DIROBJ)
-# we need a lib dir for the portability functions from libcurl
-# we use the .c directly here
-       @if not exist "$(CURL_DIROBJ)" mkdir $(CURL_DIROBJ)\lib
-
-.SUFFIXES: .c .obj .res
-
-{$(LIBCURL_SRC_DIR)\}.c{$(LIB_DIROBJ)\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\\"  $<
-
-{$(LIBCURL_SRC_DIR)\vauth\}.c{$(LIB_DIROBJ)\vauth\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\vauth\\"  $<
-
-{$(LIBCURL_SRC_DIR)\vtls\}.c{$(LIB_DIROBJ)\vtls\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\vtls\\"  $<
-
-{$(LIBCURL_SRC_DIR)\vssh\}.c{$(LIB_DIROBJ)\vssh\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\vssh\\"  $<
-
-{$(LIBCURL_SRC_DIR)\vquic\}.c{$(LIB_DIROBJ)\vquic\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\vquic\\"  $<
-
-{$(LIBCURL_SRC_DIR)\curlx\}.c{$(LIB_DIROBJ)\curlx\}.obj::
-       $(CURL_CC) $(CFLAGS) /Fo"$(LIB_DIROBJ)\curlx\\"  $<
-
-$(LIB_DIROBJ)\libcurl.res: $(LIBCURL_SRC_DIR)\libcurl.rc
-       $(RC) $(RC_FLAGS)
-
-#
-# curl.exe
-#
-
-
-!IF "$(MODE)"=="static"
-!IF "$(DEBUG)"=="yes"
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_STATIC_DEBUG)
-!ELSE
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_STATIC)
-!ENDIF
-!ELSEIF "$(MODE)"=="dll"
-!IF "$(DEBUG)"=="yes"
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_IMP_DEBUG)
-!ELSE
-CURL_LIBCURL_LIBNAME=$(LIB_NAME_IMP)
-!ENDIF
-!ENDIF
-
-CURL_FROM_LIBCURL=\
- $(CURL_DIROBJ)\nonblock.obj \
- $(CURL_DIROBJ)\strparse.obj \
- $(CURL_DIROBJ)\strcase.obj \
- $(CURL_DIROBJ)\timeval.obj \
- $(CURL_DIROBJ)\wait.obj \
- $(CURL_DIROBJ)\warnless.obj \
- $(CURL_DIROBJ)\multibyte.obj \
- $(CURL_DIROBJ)\version_win32.obj \
- $(CURL_DIROBJ)\dynbuf.obj \
- $(CURL_DIROBJ)\base64.obj
-
-!IFDEF USE_MANUAL
-CURL_FROM_LIBCURL = $(CURL_FROM_LIBCURL) $(CURL_DIROBJ)\tool_hugehelp.obj
-!ENDIF
-
-$(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
-       $(CURL_LINK) $(CURL_LFLAGS) $(CURL_LIBCURL_LIBNAME) $(WIN_LIBS) $(CURL_FROM_LIBCURL) $(EXE_OBJS)
-       $(MANIFESTTOOL)
-
-{$(CURL_SRC_DIR)\}.c{$(CURL_DIROBJ)\}.obj::
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$(CURL_DIROBJ)\\"  $<
-
-!IFDEF USE_MANUAL
-$(CURL_DIROBJ)\tool_hugehelp.obj: $(CURL_SRC_DIR)\tool_hugehelp.c
-       $(CURL_CC) $(CURL_CFLAGS) /Zm200 /Fo"$@" $(CURL_SRC_DIR)\tool_hugehelp.c
-!ENDIF
-$(CURL_DIROBJ)\nonblock.obj: ../lib/curlx/nonblock.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/nonblock.c
-$(CURL_DIROBJ)\strparse.obj: ../lib/curlx/strparse.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/strparse.c
-$(CURL_DIROBJ)\strcase.obj: ../lib/strcase.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/strcase.c
-$(CURL_DIROBJ)\timeval.obj: ../lib/curlx/timeval.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/timeval.c
-$(CURL_DIROBJ)\multibyte.obj: ../lib/curlx/multibyte.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/multibyte.c
-$(CURL_DIROBJ)\version_win32.obj: ../lib/curlx/version_win32.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/version_win32.c
-$(CURL_DIROBJ)\wait.obj: ../lib/curlx/wait.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/wait.c
-$(CURL_DIROBJ)\warnless.obj: ../lib/curlx/warnless.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/warnless.c
-$(CURL_DIROBJ)\dynbuf.obj: ../lib/curlx/dynbuf.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/dynbuf.c
-$(CURL_DIROBJ)\base64.obj: ../lib/curlx/base64.c
-       $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/curlx/base64.c
-$(CURL_DIROBJ)\curl.res: $(CURL_SRC_DIR)\curl.rc
-       $(RC) $(CURL_RC_FLAGS)
-
-!ENDIF  # End of case where a config was provided.
-
-# Makefile.vc's clean removes (LIB)CURL_DIROBJ and DIRDIST dirs then calls
-# this clean. Note those are the original directories we control and not the
-# directories possibly modified by this makefile to point to user-specified
-# directories.
-# For example, don't remove DIRDIST here since it may contain user files if it
-# has been changed by WITH_PREFIX to a different output dir (eg C:\usr\local).
-clean:
-       @-erase /s *.dll 2> NUL
-       @-erase /s *.exp 2> NUL
-       @-erase /s *.idb 2> NUL
-       @-erase /s *.lib 2> NUL
-       @-erase /s *.obj 2> NUL
-       @-erase /s *.pch 2> NUL
-       @-erase /s *.pdb 2> NUL
-       @-erase /s *.res 2> NUL
diff --git a/winbuild/README.md b/winbuild/README.md
deleted file mode 100644 (file)
index 691e2db..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-<!--\r
-Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.\r
-\r
-SPDX-License-Identifier: curl\r
--->\r
-\r
-# Deprecation warning\r
-\r
- This winbuild build system is deprecated and is going to be removed in\r
- September 2025 in favor of the CMake build system.\r
-\r
- Please see docs/INSTALL-CMAKE.md : "Migrating from winbuild builds"\r
-\r
-# Building curl with Visual C++\r
-\r
- This document describes how to compile, build and install curl and libcurl\r
- from sources using the Visual C++ build tool. To build with VC++, you have to\r
- first install VC++. The minimum required version of VC is 9 (part of Visual\r
- Studio 2008). However using a more recent version is strongly recommended.\r
-\r
- VC++ is also part of the Windows Platform SDK. You do not have to install the\r
- full Visual Studio or Visual C++ if all you want is to build curl.\r
-\r
- The latest Platform SDK can be downloaded freely from [Windows SDK and\r
- emulator\r
- archive](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive)\r
-\r
-## Prerequisites\r
-\r
- If you wish to support zlib, OpenSSL, c-ares, ssh2, you have to download them\r
- separately and copy them to the `deps` directory as shown below:\r
-\r
-    somedirectory\\r
-     |_curl-src\r
-     | |_winbuild\r
-     |\r
-     |_deps\r
-       |_ lib\r
-       |_ include\r
-       |_ bin\r
-\r
- It is also possible to create the `deps` directory in some other random places\r
- and tell the `Makefile` its location using the `WITH_DEVEL` option.\r
-\r
-## Open a command prompt\r
-\r
-Open a Visual Studio Command prompt:\r
-\r
- Using the **'VS [version] [platform] [type] Command Prompt'** menu entry:\r
- where [version] is the Visual Studio version, [platform] is e.g. x64 and\r
- [type] Native or Cross platform build. This type of command prompt may not\r
- exist in all Visual Studio versions. For example, to build a 64-bit curl open\r
- the x64 Native Tools prompt.\r
-\r
- See also:\r
-\r
- [How to: Enable a 64-Bit, x64 hosted MSVC toolset on the command line](https://docs.microsoft.com/en-us/cpp/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line)\r
-\r
- [Set the Path and Environment Variables for Command-Line Builds](https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line)\r
-\r
- [Developer Command Prompt for Visual Studio](https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs)\r
-\r
-## Build in the console\r
-\r
- Once you are in the console, go to the winbuild directory in the curl\r
- sources:\r
-\r
-    cd curl-src\winbuild\r
-\r
- Then you can call `nmake /f Makefile.vc` with the desired options (see\r
- below). The builds are in the top src directory, `builds\` directory, in a\r
- directory named using the options given to the nmake call.\r
-\r
-    nmake /f Makefile.vc mode=<static or dll> <options>\r
-\r
-where `<options>` is one or many of:\r
-\r
- - `VC=<num>`                    - VC version. 6 or later.\r
- - `WITH_DEVEL=<path>`           - Paths for the development files (SSL, zlib, etc.)\r
-                                   Defaults to sibling directory: `../deps`\r
- - `WITH_SSL=<dll/static>`       - Enable OpenSSL support, DLL or static\r
- - `WITH_NGHTTP2=<dll/static>`   - Enable HTTP/2 support, DLL or static\r
- - `WITH_MBEDTLS=<dll/static>`   - Enable mbedTLS support, DLL or static\r
- - `WITH_WOLFSSL=<dll/static>`   - Enable wolfSSL support, DLL or static\r
- - `WITH_CARES=<dll/static>`     - Enable c-ares support, DLL or static\r
- - `WITH_ZLIB=<dll/static>`      - Enable zlib support, DLL or static\r
- - `WITH_SSH=<dll/static>`       - Enable libssh support, DLL or static\r
- - `WITH_SSH2=<dll/static>`      - Enable libssh2 support, DLL or static\r
- - `WITH_PREFIX=<dir>`           - Where to install the build\r
- - `ENABLE_SSPI=<yes/no>`        - Enable SSPI support, defaults to yes\r
- - `ENABLE_IPV6=<yes/no>`        - Enable IPv6, defaults to yes\r
- - `ENABLE_IDN=<yes or no>`      - Enable use of Windows IDN APIs, defaults to yes\r
-                                   Requires Windows Vista or later\r
- - `ENABLE_SCHANNEL=<yes/no>`    - Enable native Windows SSL support, defaults\r
-                                   to yes if SSPI and no other SSL library\r
- - `ENABLE_OPENSSL_AUTO_LOAD_CONFIG=<yes/no>`\r
-                                 - Enable loading OpenSSL configuration\r
-                                   automatically, defaults to yes\r
- - `ENABLE_UNICODE=<yes/no>`     - Enable Unicode support, defaults to no\r
- - `GEN_PDB=<yes/no>`            - Generate External Program Database\r
-                                   (debug symbols for release build)\r
- - `DEBUG=<yes/no>`              - Debug builds\r
- - `MACHINE=<x86/x64/arm64>`     - Target architecture (default is x86)\r
- - `CARES_PATH=<path>`           - Custom path for c-ares\r
- - `MBEDTLS_PATH=<path>`         - Custom path for mbedTLS\r
- - `WOLFSSL_PATH=<path>`         - Custom path for wolfSSL\r
- - `NGHTTP2_PATH=<path>`         - Custom path for nghttp2\r
- - `SSH_PATH=<path>`             - Custom path for libssh\r
- - `SSH2_PATH=<path>`            - Custom path for libssh2\r
- - `SSL_PATH=<path>`             - Custom path for OpenSSL\r
- - `ZLIB_PATH=<path>`            - Custom path for zlib\r
-\r
-## Cleaning a build\r
-\r
- For most build configurations you can remove a bad build by using the same\r
- options with the added keyword "clean". For example:\r
-\r
-    nmake /f Makefile.vc mode=static clean\r
-\r
- Build errors due to switching Visual Studio platform tools or mistakenly\r
- specifying the wrong machine platform for the tools can usually be solved by\r
- first cleaning the bad build.\r
-\r
-## Static linking of Microsoft's C runtime (CRT):\r
-\r
- If you are using mode=static, nmake creates and links to the static build of\r
- libcurl but *not* the static CRT. If you must you can force nmake to link in\r
- the static CRT by passing `RTLIBCFG=static`. Typically you shouldn't use that\r
- option, and nmake defaults to the DLL CRT. `RTLIBCFG` is rarely used and\r
- therefore rarely tested. When passing `RTLIBCFG` for a configuration that was\r
- already built but not with that option, or if the option was specified\r
- differently, you must destroy the build directory containing the\r
- configuration so that nmake can build it from scratch.\r
-\r
- This option is not recommended unless you have enough development experience\r
- to know how to match the runtime library for linking (that is, the CRT). If\r
- `RTLIBCFG=static` then release builds use `/MT` and debug builds use `/MTd`.\r
-\r
-## Building your own application with libcurl (Visual Studio example)\r
-\r
- When you build curl and libcurl, nmake shows the relative path where the\r
- output directory is. The output directory is named from the options nmake\r
- used when building. You may also see temp directories of the same name but\r
- with suffixes -obj-curl and -obj-lib.\r
-\r
- For example let's say you have built curl.exe and libcurl.dll from the Visual\r
- Studio 2010 x64 Win64 Command Prompt:\r
-\r
-    nmake /f Makefile.vc mode=dll VC=10\r
-\r
- The output directory has a name similar to\r
- `..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-schannel`.\r
-\r
- The output directory contains subdirectories bin, lib and include. Those are\r
- the directories to set in your Visual Studio project. You can either copy the\r
- output directory to your project or leave it in place. Following the example,\r
- let's assume you leave it in place and your curl top source directory is\r
- `C:\curl-7.82.0`. You would set these options for configurations using the\r
- x64 platform:\r
-\r
-~~~\r
- - Configuration Properties > Debugging > Environment\r
-    PATH=C:\curl-7.82.0\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-schannel\bin;%PATH%\r
-\r
- - C/C++ > General > Additional Include Directories\r
-    C:\curl-7.82.0\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-schannel\include;\r
-\r
- - Linker > General > Additional Library Directories\r
-    C:\curl-7.82.0\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-schannel\lib;\r
-\r
- - Linker > Input > Additional Dependencies\r
-    libcurl.lib;\r
-~~~\r
-\r
- For configurations using the x86 platform (aka Win32 platform) you would\r
- need to make a separate x86 build of libcurl.\r
-\r
- If you build libcurl static (`mode=static`) or debug (`DEBUG=yes`) then the\r
- library name varies and separate builds may be necessary for separate\r
- configurations of your project within the same platform. This is discussed in\r
- the next section.\r
-\r
-## Building your own application with a static libcurl\r
-\r
- When building an application that uses the static libcurl library on Windows,\r
- you must define `CURL_STATICLIB`. Otherwise the linker looks for dynamic\r
- import symbols.\r
-\r
- The static library name has an `_a` suffix in the basename and the debug\r
- library name has a `_debug` suffix in the basename. For example,\r
- `libcurl_a_debug.lib` is a static debug build of libcurl.\r
-\r
- You may need a separate build of libcurl for each VC configuration combination\r
- (for example: Debug|Win32, Debug|x64, Release|Win32, Release|x64).\r
-\r
- You must specify any additional dependencies needed by your build of static\r
- libcurl (for example:\r
- `advapi32.lib;crypt32.lib;normaliz.lib;ws2_32.lib;wldap32.lib`).\r
-\r
-## Legacy Windows and SSL\r
-\r
- When you build curl using the build files in this directory the default SSL\r
- backend is Schannel (Windows SSPI), the native SSL library that comes with\r
- the Windows OS. Schannel in Windows 8 and earlier is not able to connect to\r
- servers that no longer support the legacy handshakes and algorithms used by\r
- those versions. If you are using curl in one of those earlier versions of\r
- Windows you should choose another SSL backend like OpenSSL.\r
diff --git a/winbuild/makedebug.bat b/winbuild/makedebug.bat
deleted file mode 100644 (file)
index 6305537..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-@echo off
-rem ***************************************************************************
-rem *                                  _   _ ____  _
-rem *  Project                     ___| | | |  _ \| |
-rem *                             / __| | | | |_) | |
-rem *                            | (__| |_| |  _ <| |___
-rem *                             \___|\___/|_| \_\_____|
-rem *
-rem * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-rem *
-rem * This software is licensed as described in the file COPYING, which
-rem * you should have received as part of this distribution. The terms
-rem * are also available at https://curl.se/docs/copyright.html.
-rem *
-rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
-rem * copies of the Software, and permit persons to whom the Software is
-rem * furnished to do so, under the terms of the COPYING file.
-rem *
-rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-rem * KIND, either express or implied.
-rem *
-rem * SPDX-License-Identifier: curl
-rem *
-rem ***************************************************************************
-
-where.exe nmake.exe >nul 2>&1
-
-if %ERRORLEVEL% EQU 1 (
-  echo Error: Cannot find nmake.exe - be sure to run this script from within a Developer Command-Prompt
-) else (
-  nmake.exe /f Makefile.vc MODE=static DEBUG=yes GEN_PDB=yes
-  if %ERRORLEVEL% NEQ 0 echo Error: Build Failed
-)