mirror of
https://github.com/curl/curl.git
synced 2026-08-26 02:23:31 +03:00
Makefile.m32: cleanups and fixes [ci skip]
- Add `-lcrypt32` once, and add it always for simplicity. - Delete broken link and reference to the pre-Vista WinIDN add-on. MS no longer distribute it. - Delete related `WINIDN_PATH` option. IDN is a system lib since Vista. - Sync `LIBCARES_PATH` default with the rest of dependencies. - Delete version numbers from dependency path defaults. - `libgsasl` package is now called `gsasl`. - Delete `libexpat` and `libxml2` references. No longer used by curl. - Delete `Edit the path below...` comments. We recommend to predefine those envvars instead. - `libcares.a` is not an internal dependency anymore. Stop using it as such. - `windres` `--include-dir` -> `-I`, `-F` -> `--target=` for readability. - Delete `STRIP`, `CURL_STRIP`, `AR` references from `src/Makefile.m32`. They were never used. - Stop to `clean` some objects twice in `src/Makefile.m32`. - Delete cvs-specific leftovers. - Finish resource support in examples make file. - Delete `-I<root>/lib` from examples make file. - Fix copyright start year in examples make file. - Delete duplicate `ftpuploadresume` input in examples make file. - Sync OpenSSL lib order, `SYNC` support, `PROOT` use, dependency path defaults, variables names and other internal bits between the three make files. - `lib/Makefile.m32` accepted custom options via `DLL_LIBS` envvar. This was lib-specific and possibly accidental. Use `CURL_LDFLAG_EXTRAS_DLL` envvar for the same effect. - Fix linking `curl.exe` and examples to wrong static libs with auto-detected OpenSSL 1.0.2 or earlier. - Add `-lgdi32` for OpenSSL 1.0.2 and earlier only. - Add link to Novell LDAP SDK and use a relative default path. Latest version is from 2016, linked to an outdated OpenSSL 1.0.1. - Whitespace and comment cleanups. TODO in a next commit: Delete built-in detection/logic for OpenSSL 1.0.2 and earlier, the Novell LDAP SDK and the other LDAP SDK (which is _not_ OpenLDAP). Write up the necessary custom envvars to configure them. Closes #9616
This commit is contained in:
parent
1cbbffdbb8
commit
07a0047882
3 changed files with 236 additions and 347 deletions
|
|
@ -5,7 +5,7 @@
|
|||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
# Copyright (C) 1999 - 2022, 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
|
||||
|
|
@ -24,87 +24,58 @@
|
|||
|
||||
###########################################################################
|
||||
#
|
||||
## Makefile for building curl examples with MinGW (GCC-3.2 or later)
|
||||
## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4),
|
||||
## brotli (1.0.1), zstd (1.4.5)
|
||||
##
|
||||
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
|
||||
## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
|
||||
##
|
||||
## Hint: you can also set environment vars to control the build, e.g.:
|
||||
## set ZLIB_PATH=c:/zlib-1.2.8
|
||||
## set ZLIB=1
|
||||
# Makefile for building curl examples with MinGW and optional features.
|
||||
#
|
||||
# Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
|
||||
# Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
|
||||
#
|
||||
# Hint: you can also set environment vars to control the build, e.g.:
|
||||
# set ZLIB_PATH=C:/zlib
|
||||
# set ZLIB=1
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
# Edit the path below to point to the base of your Zlib sources.
|
||||
ifndef ZLIB_PATH
|
||||
ZLIB_PATH = ../../../zlib-1.2.8
|
||||
endif
|
||||
# Edit the path below to point to the base of your Zstandard sources.
|
||||
ifndef ZSTD_PATH
|
||||
ZSTD_PATH = ../../../zstd-1.4.5
|
||||
endif
|
||||
# Edit the path below to point to the base of your Brotli sources.
|
||||
ifndef BROTLI_PATH
|
||||
BROTLI_PATH = ../../../brotli-1.0.1
|
||||
endif
|
||||
# Edit the path below to point to the base of your OpenSSL package.
|
||||
ifndef OPENSSL_PATH
|
||||
OPENSSL_PATH = ../../../openssl-1.0.2a
|
||||
endif
|
||||
# Edit the path below to point to the base of your LibSSH2 package.
|
||||
ifndef LIBSSH2_PATH
|
||||
LIBSSH2_PATH = ../../../libssh2-1.5.0
|
||||
endif
|
||||
# Edit the path below to point to the base of your librtmp package.
|
||||
ifndef LIBRTMP_PATH
|
||||
LIBRTMP_PATH = ../../../librtmp-2.4
|
||||
endif
|
||||
# Edit the path below to point to the base of your libexpat package.
|
||||
ifndef LIBEXPAT_PATH
|
||||
LIBEXPAT_PATH = ../../../expat-2.1.0
|
||||
endif
|
||||
# Edit the path below to point to the base of your libxml2 package.
|
||||
ifndef LIBXML2_PATH
|
||||
LIBXML2_PATH = ../../../libxml2-2.9.2
|
||||
endif
|
||||
# Edit the path below to point to the base of your libgsasl package.
|
||||
ifndef LIBGSASL_PATH
|
||||
LIBGSASL_PATH = ../../../libgsasl-1.10.0
|
||||
endif
|
||||
# Edit the path below to point to the base of your libidn2 package.
|
||||
ifndef LIBIDN2_PATH
|
||||
LIBIDN2_PATH = ../../../libidn2-2.0.3
|
||||
endif
|
||||
# Edit the path below to point to the base of your MS IDN package.
|
||||
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
|
||||
# https://www.microsoft.com/en-us/download/details.aspx?id=734
|
||||
ifndef WINIDN_PATH
|
||||
WINIDN_PATH = ../../../Microsoft IDN Mitigation APIs
|
||||
endif
|
||||
# Edit the path below to point to the base of your Novell LDAP NDK.
|
||||
ifndef LDAP_SDK
|
||||
LDAP_SDK = c:/novell/ndk/cldapsdk/win32
|
||||
endif
|
||||
# Edit the path below to point to the base of your nghttp2 package.
|
||||
ifndef NGHTTP2_PATH
|
||||
NGHTTP2_PATH = ../../../nghttp2-1.0.0
|
||||
endif
|
||||
# Edit the path below to point to the base of your nghttp3 package.
|
||||
ifndef NGHTTP3_PATH
|
||||
NGHTTP3_PATH = ../../../nghttp3-1.0.0
|
||||
endif
|
||||
# Edit the path below to point to the base of your ngtcp2 package.
|
||||
ifndef NGTCP2_PATH
|
||||
NGTCP2_PATH = ../../../ngtcp2-1.0.0
|
||||
endif
|
||||
|
||||
PROOT = ../..
|
||||
|
||||
# Edit the path below to point to the base of your c-ares package.
|
||||
ifndef ZLIB_PATH
|
||||
ZLIB_PATH = $(PROOT)/../zlib
|
||||
endif
|
||||
ifndef ZSTD_PATH
|
||||
ZSTD_PATH = $(PROOT)/../zstd
|
||||
endif
|
||||
ifndef BROTLI_PATH
|
||||
BROTLI_PATH = $(PROOT)/../brotli
|
||||
endif
|
||||
ifndef OPENSSL_PATH
|
||||
OPENSSL_PATH = $(PROOT)/../openssl
|
||||
endif
|
||||
ifndef LIBSSH2_PATH
|
||||
LIBSSH2_PATH = $(PROOT)/../libssh2
|
||||
endif
|
||||
ifndef LIBRTMP_PATH
|
||||
LIBRTMP_PATH = $(PROOT)/../librtmp
|
||||
endif
|
||||
ifndef LIBGSASL_PATH
|
||||
LIBGSASL_PATH = $(PROOT)/../gsasl
|
||||
endif
|
||||
ifndef LIBIDN2_PATH
|
||||
LIBIDN2_PATH = $(PROOT)/../libidn2
|
||||
endif
|
||||
# https://www.novell.com/developer/ndk/ldap_libraries_for_c.html
|
||||
ifndef LDAP_SDK
|
||||
LDAP_SDK = $(PROOT)/../openldapsdk
|
||||
endif
|
||||
ifndef NGHTTP2_PATH
|
||||
NGHTTP2_PATH = $(PROOT)/../nghttp2
|
||||
endif
|
||||
ifndef NGHTTP3_PATH
|
||||
NGHTTP3_PATH = $(PROOT)/../nghttp3
|
||||
endif
|
||||
ifndef NGTCP2_PATH
|
||||
NGTCP2_PATH = $(PROOT)/../ngtcp2
|
||||
endif
|
||||
ifndef LIBCARES_PATH
|
||||
LIBCARES_PATH = $(PROOT)/ares
|
||||
LIBCARES_PATH = $(PROOT)/../c-ares
|
||||
endif
|
||||
|
||||
ifeq ($(CURL_CC),)
|
||||
|
|
@ -121,7 +92,7 @@ CC = $(CURL_CC)
|
|||
CFLAGS = -O3 $(CURL_CFLAG_EXTRAS) -W -Wall
|
||||
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE)
|
||||
RC = $(CURL_RC)
|
||||
RCFLAGS = --include-dir=$(PROOT)/include -O coff $(CURL_RCFLAG_EXTRAS)
|
||||
RCFLAGS = -I$(PROOT)/include -O coff -DCURL_EMBED_MANIFEST $(CURL_RCFLAG_EXTRAS)
|
||||
|
||||
# Set environment var ARCH to your architecture to override autodetection.
|
||||
ifndef ARCH
|
||||
|
|
@ -136,11 +107,11 @@ ifneq ($(ARCH),custom)
|
|||
ifeq ($(ARCH),w64)
|
||||
CFLAGS += -m64
|
||||
LDFLAGS += -m64
|
||||
RCFLAGS += -F pe-x86-64
|
||||
RCFLAGS += --target=pe-x86-64
|
||||
else
|
||||
CFLAGS += -m32
|
||||
LDFLAGS += -m32
|
||||
RCFLAGS += -F pe-i386
|
||||
RCFLAGS += --target=pe-i386
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
@ -150,7 +121,6 @@ DEL = rm -f $1
|
|||
RMDIR = rm -fr $1
|
||||
MKDIR = mkdir -p $1
|
||||
COPY = -cp -afv $1 $2
|
||||
#COPYR = -cp -afr $1/* $2
|
||||
COPYR = -rsync -aC $1/* $2
|
||||
TOUCH = touch $1
|
||||
CAT = cat
|
||||
|
|
@ -181,6 +151,9 @@ endif
|
|||
ifneq ($(findstring -ares,$(CFG)),)
|
||||
ARES = 1
|
||||
endif
|
||||
ifneq ($(findstring -sync,$(CFG)),)
|
||||
SYNC = 1
|
||||
endif
|
||||
ifneq ($(findstring -rtmp,$(CFG)),)
|
||||
RTMP = 1
|
||||
ZLIB = 1
|
||||
|
|
@ -232,6 +205,9 @@ endif
|
|||
ifneq ($(findstring -ngtcp2,$(CFG)),)
|
||||
NGTCP2 = 1
|
||||
endif
|
||||
ifneq ($(findstring -unicode,$(CFG)),)
|
||||
UNICODE = 1
|
||||
endif
|
||||
|
||||
# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
|
||||
ifneq ($(SSH2)$(RTMP),)
|
||||
|
|
@ -240,7 +216,11 @@ ifneq ($(SSH2)$(RTMP),)
|
|||
endif
|
||||
endif
|
||||
|
||||
INCLUDES = -I. -I$(PROOT) -I$(PROOT)/include -I$(PROOT)/lib
|
||||
INCLUDES = -I. -I$(PROOT)/include
|
||||
ifdef UNICODE
|
||||
CFLAGS += -DUNICODE -D_UNICODE
|
||||
LDFLAGS += -municode
|
||||
endif
|
||||
|
||||
ifdef DYN
|
||||
curl_DEPENDENCIES = $(PROOT)/lib/libcurldll.a $(PROOT)/lib/libcurl.dll
|
||||
|
|
@ -251,12 +231,13 @@ else
|
|||
CFLAGS += -DCURL_STATICLIB
|
||||
LDFLAGS += -static
|
||||
endif
|
||||
ifdef ARES
|
||||
ifndef DYN
|
||||
curl_DEPENDENCIES += $(LIBCARES_PATH)/libcares.a
|
||||
ifdef SYNC
|
||||
CFLAGS += -DUSE_SYNC_DNS
|
||||
else
|
||||
ifdef ARES
|
||||
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
||||
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
||||
endif
|
||||
CFLAGS += -DUSE_ARES
|
||||
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
||||
endif
|
||||
ifdef RTMP
|
||||
CFLAGS += -DUSE_LIBRTMP
|
||||
|
|
@ -269,11 +250,6 @@ endif
|
|||
ifdef SSH2
|
||||
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
||||
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
||||
ifdef SCHANNEL
|
||||
ifndef DYN
|
||||
curl_LDADD += -lcrypt32
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifdef NGHTTP3
|
||||
CFLAGS += -DUSE_NGHTTP3
|
||||
|
|
@ -294,6 +270,7 @@ endif
|
|||
ifdef SSL
|
||||
ifndef OPENSSL_INCLUDE
|
||||
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
||||
# OpenSSL 1.0.2 and earlier
|
||||
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
||||
endif
|
||||
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
||||
|
|
@ -306,25 +283,23 @@ ifdef SSL
|
|||
ifndef OPENSSL_LIBPATH
|
||||
OPENSSL_LIBS = -lssl -lcrypto
|
||||
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
||||
# OpenSSL 1.0.2 and earlier
|
||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
||||
ifdef DYN
|
||||
OPENSSL_LIBS = -lssl32 -leay32
|
||||
OPENSSL_LIBS = -lssl32 -leay32
|
||||
ifndef DYN
|
||||
OPENSSL_LIBS += -lgdi32
|
||||
endif
|
||||
endif
|
||||
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
||||
endif
|
||||
endif
|
||||
ifndef DYN
|
||||
OPENSSL_LIBS += -lgdi32 -lcrypt32
|
||||
endif
|
||||
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
||||
CFLAGS += -DUSE_OPENSSL
|
||||
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
||||
endif
|
||||
ifdef SCHANNEL
|
||||
CFLAGS += -DUSE_SCHANNEL
|
||||
curl_LDADD += -lcrypt32
|
||||
endif
|
||||
ifdef ZLIB
|
||||
INCLUDES += -I"$(ZLIB_PATH)"
|
||||
|
|
@ -361,7 +336,7 @@ ifdef IDN2
|
|||
else
|
||||
ifdef WINIDN
|
||||
CFLAGS += -DUSE_WIN32_IDN
|
||||
curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
|
||||
curl_LDADD += -lnormaliz
|
||||
endif
|
||||
endif
|
||||
ifdef SSPI
|
||||
|
|
@ -386,21 +361,23 @@ ifndef USE_LDAP_OPENLDAP
|
|||
curl_LDADD += -lwldap32
|
||||
endif
|
||||
endif
|
||||
curl_LDADD += -lws2_32 -lbcrypt
|
||||
curl_LDADD += -lws2_32 -lcrypt32 -lbcrypt
|
||||
|
||||
# Makefile.inc provides the check_PROGRAMS and COMPLICATED_EXAMPLES defines
|
||||
# Makefile.inc provides the check_PROGRAMS define
|
||||
include Makefile.inc
|
||||
|
||||
check_PROGRAMS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS)))
|
||||
check_PROGRAMS += ftpuploadresume.exe synctime.exe
|
||||
TARGETS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS)))
|
||||
TARGETS += synctime.exe
|
||||
|
||||
RESOURCE = $(PROOT)/src/curl.res
|
||||
|
||||
.PRECIOUS: %.o
|
||||
|
||||
|
||||
all: $(check_PROGRAMS)
|
||||
all: $(TARGETS)
|
||||
|
||||
%.exe: %.o $(curl_DEPENDENCIES)
|
||||
$(CC) $(LDFLAGS) -o $@ $< $(curl_LDADD)
|
||||
%.exe: %.o $(RESOURCE) $(curl_DEPENDENCIES)
|
||||
$(CC) $(LDFLAGS) -o $@ $< $(RESOURCE) $(curl_LDADD)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||
|
|
@ -409,7 +386,7 @@ all: $(check_PROGRAMS)
|
|||
$(RC) $(RCFLAGS) -i $< -o $@
|
||||
|
||||
clean:
|
||||
@$(call DEL, $(check_PROGRAMS:.exe=.o))
|
||||
@$(call DEL, $(TARGETS:.exe=.o) $(RESOURCE))
|
||||
|
||||
distclean vclean: clean
|
||||
@$(call DEL, $(check_PROGRAMS))
|
||||
@$(call DEL, $(TARGETS))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue