mirror of
https://github.com/curl/curl.git
synced 2025-09-17 09:32:48 +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
|
@ -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
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# 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)
|
# Makefile for building curl examples with MinGW and optional features.
|
||||||
## 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
|
||||||
## 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
|
||||||
## Hint: you can also set environment vars to control the build, e.g.:
|
# set ZLIB=1
|
||||||
## set ZLIB_PATH=c:/zlib-1.2.8
|
|
||||||
## 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 = ../..
|
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
|
ifndef LIBCARES_PATH
|
||||||
LIBCARES_PATH = $(PROOT)/ares
|
LIBCARES_PATH = $(PROOT)/../c-ares
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CURL_CC),)
|
ifeq ($(CURL_CC),)
|
||||||
|
@ -121,7 +92,7 @@ CC = $(CURL_CC)
|
||||||
CFLAGS = -O3 $(CURL_CFLAG_EXTRAS) -W -Wall
|
CFLAGS = -O3 $(CURL_CFLAG_EXTRAS) -W -Wall
|
||||||
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE)
|
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE)
|
||||||
RC = $(CURL_RC)
|
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.
|
# Set environment var ARCH to your architecture to override autodetection.
|
||||||
ifndef ARCH
|
ifndef ARCH
|
||||||
|
@ -136,11 +107,11 @@ ifneq ($(ARCH),custom)
|
||||||
ifeq ($(ARCH),w64)
|
ifeq ($(ARCH),w64)
|
||||||
CFLAGS += -m64
|
CFLAGS += -m64
|
||||||
LDFLAGS += -m64
|
LDFLAGS += -m64
|
||||||
RCFLAGS += -F pe-x86-64
|
RCFLAGS += --target=pe-x86-64
|
||||||
else
|
else
|
||||||
CFLAGS += -m32
|
CFLAGS += -m32
|
||||||
LDFLAGS += -m32
|
LDFLAGS += -m32
|
||||||
RCFLAGS += -F pe-i386
|
RCFLAGS += --target=pe-i386
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -150,7 +121,6 @@ DEL = rm -f $1
|
||||||
RMDIR = rm -fr $1
|
RMDIR = rm -fr $1
|
||||||
MKDIR = mkdir -p $1
|
MKDIR = mkdir -p $1
|
||||||
COPY = -cp -afv $1 $2
|
COPY = -cp -afv $1 $2
|
||||||
#COPYR = -cp -afr $1/* $2
|
|
||||||
COPYR = -rsync -aC $1/* $2
|
COPYR = -rsync -aC $1/* $2
|
||||||
TOUCH = touch $1
|
TOUCH = touch $1
|
||||||
CAT = cat
|
CAT = cat
|
||||||
|
@ -181,6 +151,9 @@ endif
|
||||||
ifneq ($(findstring -ares,$(CFG)),)
|
ifneq ($(findstring -ares,$(CFG)),)
|
||||||
ARES = 1
|
ARES = 1
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(findstring -sync,$(CFG)),)
|
||||||
|
SYNC = 1
|
||||||
|
endif
|
||||||
ifneq ($(findstring -rtmp,$(CFG)),)
|
ifneq ($(findstring -rtmp,$(CFG)),)
|
||||||
RTMP = 1
|
RTMP = 1
|
||||||
ZLIB = 1
|
ZLIB = 1
|
||||||
|
@ -232,6 +205,9 @@ endif
|
||||||
ifneq ($(findstring -ngtcp2,$(CFG)),)
|
ifneq ($(findstring -ngtcp2,$(CFG)),)
|
||||||
NGTCP2 = 1
|
NGTCP2 = 1
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(findstring -unicode,$(CFG)),)
|
||||||
|
UNICODE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
|
# SSH2 and RTMP require an SSL library; assume OpenSSL if none specified
|
||||||
ifneq ($(SSH2)$(RTMP),)
|
ifneq ($(SSH2)$(RTMP),)
|
||||||
|
@ -240,7 +216,11 @@ ifneq ($(SSH2)$(RTMP),)
|
||||||
endif
|
endif
|
||||||
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
|
ifdef DYN
|
||||||
curl_DEPENDENCIES = $(PROOT)/lib/libcurldll.a $(PROOT)/lib/libcurl.dll
|
curl_DEPENDENCIES = $(PROOT)/lib/libcurldll.a $(PROOT)/lib/libcurl.dll
|
||||||
|
@ -251,12 +231,13 @@ else
|
||||||
CFLAGS += -DCURL_STATICLIB
|
CFLAGS += -DCURL_STATICLIB
|
||||||
LDFLAGS += -static
|
LDFLAGS += -static
|
||||||
endif
|
endif
|
||||||
ifdef ARES
|
ifdef SYNC
|
||||||
ifndef DYN
|
CFLAGS += -DUSE_SYNC_DNS
|
||||||
curl_DEPENDENCIES += $(LIBCARES_PATH)/libcares.a
|
else
|
||||||
|
ifdef ARES
|
||||||
|
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
||||||
|
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
||||||
endif
|
endif
|
||||||
CFLAGS += -DUSE_ARES
|
|
||||||
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
|
||||||
endif
|
endif
|
||||||
ifdef RTMP
|
ifdef RTMP
|
||||||
CFLAGS += -DUSE_LIBRTMP
|
CFLAGS += -DUSE_LIBRTMP
|
||||||
|
@ -269,11 +250,6 @@ endif
|
||||||
ifdef SSH2
|
ifdef SSH2
|
||||||
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
||||||
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
||||||
ifdef SCHANNEL
|
|
||||||
ifndef DYN
|
|
||||||
curl_LDADD += -lcrypt32
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef NGHTTP3
|
ifdef NGHTTP3
|
||||||
CFLAGS += -DUSE_NGHTTP3
|
CFLAGS += -DUSE_NGHTTP3
|
||||||
|
@ -294,6 +270,7 @@ endif
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
ifndef OPENSSL_INCLUDE
|
ifndef OPENSSL_INCLUDE
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
||||||
|
@ -306,25 +283,23 @@ ifdef SSL
|
||||||
ifndef OPENSSL_LIBPATH
|
ifndef OPENSSL_LIBPATH
|
||||||
OPENSSL_LIBS = -lssl -lcrypto
|
OPENSSL_LIBS = -lssl -lcrypto
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
||||||
ifdef DYN
|
OPENSSL_LIBS = -lssl32 -leay32
|
||||||
OPENSSL_LIBS = -lssl32 -leay32
|
ifndef DYN
|
||||||
|
OPENSSL_LIBS += -lgdi32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifndef DYN
|
|
||||||
OPENSSL_LIBS += -lgdi32 -lcrypt32
|
|
||||||
endif
|
|
||||||
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
||||||
CFLAGS += -DUSE_OPENSSL
|
CFLAGS += -DUSE_OPENSSL
|
||||||
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
||||||
endif
|
endif
|
||||||
ifdef SCHANNEL
|
ifdef SCHANNEL
|
||||||
CFLAGS += -DUSE_SCHANNEL
|
CFLAGS += -DUSE_SCHANNEL
|
||||||
curl_LDADD += -lcrypt32
|
|
||||||
endif
|
endif
|
||||||
ifdef ZLIB
|
ifdef ZLIB
|
||||||
INCLUDES += -I"$(ZLIB_PATH)"
|
INCLUDES += -I"$(ZLIB_PATH)"
|
||||||
|
@ -361,7 +336,7 @@ ifdef IDN2
|
||||||
else
|
else
|
||||||
ifdef WINIDN
|
ifdef WINIDN
|
||||||
CFLAGS += -DUSE_WIN32_IDN
|
CFLAGS += -DUSE_WIN32_IDN
|
||||||
curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
|
curl_LDADD += -lnormaliz
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef SSPI
|
ifdef SSPI
|
||||||
|
@ -386,21 +361,23 @@ ifndef USE_LDAP_OPENLDAP
|
||||||
curl_LDADD += -lwldap32
|
curl_LDADD += -lwldap32
|
||||||
endif
|
endif
|
||||||
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
|
include Makefile.inc
|
||||||
|
|
||||||
check_PROGRAMS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS)))
|
TARGETS := $(patsubst %,%.exe,$(strip $(check_PROGRAMS)))
|
||||||
check_PROGRAMS += ftpuploadresume.exe synctime.exe
|
TARGETS += synctime.exe
|
||||||
|
|
||||||
|
RESOURCE = $(PROOT)/src/curl.res
|
||||||
|
|
||||||
.PRECIOUS: %.o
|
.PRECIOUS: %.o
|
||||||
|
|
||||||
|
|
||||||
all: $(check_PROGRAMS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
%.exe: %.o $(curl_DEPENDENCIES)
|
%.exe: %.o $(RESOURCE) $(curl_DEPENDENCIES)
|
||||||
$(CC) $(LDFLAGS) -o $@ $< $(curl_LDADD)
|
$(CC) $(LDFLAGS) -o $@ $< $(RESOURCE) $(curl_LDADD)
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||||
|
@ -409,7 +386,7 @@ all: $(check_PROGRAMS)
|
||||||
$(RC) $(RCFLAGS) -i $< -o $@
|
$(RC) $(RCFLAGS) -i $< -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@$(call DEL, $(check_PROGRAMS:.exe=.o))
|
@$(call DEL, $(TARGETS:.exe=.o) $(RESOURCE))
|
||||||
|
|
||||||
distclean vclean: clean
|
distclean vclean: clean
|
||||||
@$(call DEL, $(check_PROGRAMS))
|
@$(call DEL, $(TARGETS))
|
||||||
|
|
197
lib/Makefile.m32
197
lib/Makefile.m32
|
@ -24,79 +24,58 @@
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
## Makefile for building libcurl.a with MinGW (GCC-3.2 or later or LLVM/Clang)
|
# Makefile for building libcurl.a with MinGW and optional features.
|
||||||
## 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
|
||||||
## 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
|
||||||
## Hint: you can also set environment vars to control the build, e.g.:
|
# set ZLIB=1
|
||||||
## set ZLIB_PATH=c:/zlib-1.2.8
|
|
||||||
## 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 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 = ..
|
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
|
ifndef LIBCARES_PATH
|
||||||
LIBCARES_PATH = $(PROOT)/ares
|
LIBCARES_PATH = $(PROOT)/../c-ares
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CURL_CC),)
|
ifeq ($(CURL_CC),)
|
||||||
|
@ -121,7 +100,7 @@ LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_DLL)
|
||||||
AR = $(CURL_AR)
|
AR = $(CURL_AR)
|
||||||
RANLIB = $(CURL_RANLIB)
|
RANLIB = $(CURL_RANLIB)
|
||||||
RC = $(CURL_RC)
|
RC = $(CURL_RC)
|
||||||
RCFLAGS = --include-dir=$(PROOT)/include -O coff $(CURL_RCFLAG_EXTRAS)
|
RCFLAGS = -I$(PROOT)/include -O coff $(CURL_RCFLAG_EXTRAS)
|
||||||
STRIP = $(CURL_STRIP) -g
|
STRIP = $(CURL_STRIP) -g
|
||||||
|
|
||||||
# Set environment var ARCH to your architecture to override autodetection.
|
# Set environment var ARCH to your architecture to override autodetection.
|
||||||
|
@ -137,11 +116,11 @@ ifneq ($(ARCH),custom)
|
||||||
ifeq ($(ARCH),w64)
|
ifeq ($(ARCH),w64)
|
||||||
CFLAGS += -m64
|
CFLAGS += -m64
|
||||||
LDFLAGS += -m64
|
LDFLAGS += -m64
|
||||||
RCFLAGS += -F pe-x86-64
|
RCFLAGS += --target=pe-x86-64
|
||||||
else
|
else
|
||||||
CFLAGS += -m32
|
CFLAGS += -m32
|
||||||
LDFLAGS += -m32
|
LDFLAGS += -m32
|
||||||
RCFLAGS += -F pe-i386
|
RCFLAGS += --target=pe-i386
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -151,7 +130,6 @@ DEL = rm -f $1
|
||||||
RMDIR = rm -fr $1
|
RMDIR = rm -fr $1
|
||||||
MKDIR = mkdir -p $1
|
MKDIR = mkdir -p $1
|
||||||
COPY = -cp -afv $1 $2
|
COPY = -cp -afv $1 $2
|
||||||
#COPYR = -cp -afr $1/* $2
|
|
||||||
COPYR = -rsync -aC $1/* $2
|
COPYR = -rsync -aC $1/* $2
|
||||||
TOUCH = touch $1
|
TOUCH = touch $1
|
||||||
CAT = cat
|
CAT = cat
|
||||||
|
@ -250,7 +228,7 @@ ifneq ($(SSH2)$(RTMP),)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
INCLUDES = -I. -I../include
|
INCLUDES = -I. -I$(PROOT)/include
|
||||||
CFLAGS += -DBUILDING_LIBCURL
|
CFLAGS += -DBUILDING_LIBCURL
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
ifdef SCHANNEL
|
ifdef SCHANNEL
|
||||||
|
@ -267,44 +245,38 @@ else
|
||||||
ifdef ARES
|
ifdef ARES
|
||||||
INCLUDES += -I"$(LIBCARES_PATH)"
|
INCLUDES += -I"$(LIBCARES_PATH)"
|
||||||
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
||||||
DLL_LIBS += -L"$(LIBCARES_PATH)" -lcares
|
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
||||||
libcurl_dll_DEPENDENCIES = $(LIBCARES_PATH)/libcares.a
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef RTMP
|
ifdef RTMP
|
||||||
INCLUDES += -I"$(LIBRTMP_PATH)"
|
INCLUDES += -I"$(LIBRTMP_PATH)"
|
||||||
CFLAGS += -DUSE_LIBRTMP
|
CFLAGS += -DUSE_LIBRTMP
|
||||||
DLL_LIBS += -L"$(LIBRTMP_PATH)/librtmp" -lrtmp -lwinmm
|
curl_LDADD += -L"$(LIBRTMP_PATH)/librtmp" -lrtmp -lwinmm
|
||||||
endif
|
endif
|
||||||
ifdef NGHTTP2
|
ifdef NGHTTP2
|
||||||
INCLUDES += -I"$(NGHTTP2_PATH)/include"
|
INCLUDES += -I"$(NGHTTP2_PATH)/include"
|
||||||
CFLAGS += -DUSE_NGHTTP2
|
CFLAGS += -DUSE_NGHTTP2
|
||||||
DLL_LIBS += -L"$(NGHTTP2_PATH)/lib" -lnghttp2
|
curl_LDADD += -L"$(NGHTTP2_PATH)/lib" -lnghttp2
|
||||||
endif
|
endif
|
||||||
ifdef SSH2
|
ifdef SSH2
|
||||||
INCLUDES += -I"$(LIBSSH2_PATH)/include" -I"$(LIBSSH2_PATH)/win32"
|
INCLUDES += -I"$(LIBSSH2_PATH)/include" -I"$(LIBSSH2_PATH)/win32"
|
||||||
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
||||||
DLL_LIBS += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
||||||
ifdef SCHANNEL
|
|
||||||
ifndef DYN
|
|
||||||
DLL_LIBS += -lcrypt32
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef NGHTTP3
|
ifdef NGHTTP3
|
||||||
INCLUDES += -I"$(NGHTTP3_PATH)/include"
|
INCLUDES += -I"$(NGHTTP3_PATH)/include"
|
||||||
CFLAGS += -DUSE_NGHTTP3
|
CFLAGS += -DUSE_NGHTTP3
|
||||||
DLL_LIBS += -L"$(NGHTTP3_PATH)/lib" -lnghttp3
|
curl_LDADD += -L"$(NGHTTP3_PATH)/lib" -lnghttp3
|
||||||
ifdef NGTCP2
|
ifdef NGTCP2
|
||||||
INCLUDES += -I"$(NGTCP2_PATH)/include"
|
INCLUDES += -I"$(NGTCP2_PATH)/include"
|
||||||
CFLAGS += -DUSE_NGTCP2
|
CFLAGS += -DUSE_NGTCP2
|
||||||
DLL_LIBS += -L"$(NGTCP2_PATH)/lib"
|
curl_LDADD += -L"$(NGTCP2_PATH)/lib"
|
||||||
ifdef NGTCP2_LIBS
|
ifdef NGTCP2_LIBS
|
||||||
DLL_LIBS += $(NGTCP2_LIBS)
|
curl_LDADD += $(NGTCP2_LIBS)
|
||||||
else
|
else
|
||||||
DLL_LIBS += -lngtcp2
|
curl_LDADD += -lngtcp2
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
DLL_LIBS += -lngtcp2_crypto_openssl
|
curl_LDADD += -lngtcp2_crypto_openssl
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -312,6 +284,7 @@ endif
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
ifndef OPENSSL_INCLUDE
|
ifndef OPENSSL_INCLUDE
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
||||||
|
@ -322,70 +295,71 @@ ifdef SSL
|
||||||
$(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
|
$(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
|
||||||
endif
|
endif
|
||||||
ifndef OPENSSL_LIBPATH
|
ifndef OPENSSL_LIBPATH
|
||||||
|
OPENSSL_LIBS = -lssl -lcrypto
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
||||||
OPENSSL_LIBS = -leay32 -lssl32
|
OPENSSL_LIBS = -lssl32 -leay32
|
||||||
|
ifndef DYN
|
||||||
|
OPENSSL_LIBS += -lgdi32
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
||||||
OPENSSL_LIBS = -lcrypto -lssl
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifndef DYN
|
|
||||||
OPENSSL_LIBS += -lgdi32 -lcrypt32
|
|
||||||
endif
|
|
||||||
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
||||||
CFLAGS += -DUSE_OPENSSL
|
CFLAGS += -DUSE_OPENSSL
|
||||||
DLL_LIBS += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
||||||
ifdef SRP
|
ifdef SRP
|
||||||
ifeq "$(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h)" "$(OPENSSL_INCLUDE)/openssl/srp.h"
|
ifeq "$(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h)" "$(OPENSSL_INCLUDE)/openssl/srp.h"
|
||||||
|
# OpenSSL 1.0.1 and later
|
||||||
CFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP
|
CFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef SCHANNEL
|
ifdef SCHANNEL
|
||||||
CFLAGS += -DUSE_SCHANNEL
|
CFLAGS += -DUSE_SCHANNEL
|
||||||
DLL_LIBS += -lcrypt32
|
|
||||||
endif
|
endif
|
||||||
ifdef ZLIB
|
ifdef ZLIB
|
||||||
INCLUDES += -I"$(ZLIB_PATH)"
|
INCLUDES += -I"$(ZLIB_PATH)"
|
||||||
CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H
|
CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H
|
||||||
DLL_LIBS += -L"$(ZLIB_PATH)" -lz
|
curl_LDADD += -L"$(ZLIB_PATH)" -lz
|
||||||
endif
|
endif
|
||||||
ifdef ZSTD
|
ifdef ZSTD
|
||||||
INCLUDES += -I"$(ZSTD_PATH)/include"
|
INCLUDES += -I"$(ZSTD_PATH)/include"
|
||||||
CFLAGS += -DHAVE_ZSTD
|
CFLAGS += -DHAVE_ZSTD
|
||||||
DLL_LIBS += -L"$(ZSTD_PATH)/lib"
|
curl_LDADD += -L"$(ZSTD_PATH)/lib"
|
||||||
ifdef ZSTD_LIBS
|
ifdef ZSTD_LIBS
|
||||||
DLL_LIBS += $(ZSTD_LIBS)
|
curl_LDADD += $(ZSTD_LIBS)
|
||||||
else
|
else
|
||||||
DLL_LIBS += -lzstd
|
curl_LDADD += -lzstd
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef BROTLI
|
ifdef BROTLI
|
||||||
INCLUDES += -I"$(BROTLI_PATH)/include"
|
INCLUDES += -I"$(BROTLI_PATH)/include"
|
||||||
CFLAGS += -DHAVE_BROTLI
|
CFLAGS += -DHAVE_BROTLI
|
||||||
DLL_LIBS += -L"$(BROTLI_PATH)/lib"
|
curl_LDADD += -L"$(BROTLI_PATH)/lib"
|
||||||
ifdef BROTLI_LIBS
|
ifdef BROTLI_LIBS
|
||||||
DLL_LIBS += $(BROTLI_LIBS)
|
curl_LDADD += $(BROTLI_LIBS)
|
||||||
else
|
else
|
||||||
DLL_LIBS += -lbrotlidec
|
curl_LDADD += -lbrotlidec
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef GSASL
|
ifdef GSASL
|
||||||
INCLUDES += -I"$(LIBGSASL_PATH)/include"
|
INCLUDES += -I"$(LIBGSASL_PATH)/include"
|
||||||
CFLAGS += -DUSE_GSASL
|
CFLAGS += -DUSE_GSASL
|
||||||
DLL_LIBS += -L"$(LIBGSASL_PATH)/lib" -lgsasl
|
curl_LDADD += -L"$(LIBGSASL_PATH)/lib" -lgsasl
|
||||||
endif
|
endif
|
||||||
ifdef IDN2
|
ifdef IDN2
|
||||||
INCLUDES += -I"$(LIBIDN2_PATH)/include"
|
INCLUDES += -I"$(LIBIDN2_PATH)/include"
|
||||||
CFLAGS += -DUSE_LIBIDN2
|
CFLAGS += -DUSE_LIBIDN2
|
||||||
DLL_LIBS += -L"$(LIBIDN2_PATH)/lib" -lidn2
|
curl_LDADD += -L"$(LIBIDN2_PATH)/lib" -lidn2
|
||||||
else
|
else
|
||||||
ifdef WINIDN
|
ifdef WINIDN
|
||||||
CFLAGS += -DUSE_WIN32_IDN
|
CFLAGS += -DUSE_WIN32_IDN
|
||||||
CFLAGS += -DWANT_IDN_PROTOTYPES
|
CFLAGS += -DWANT_IDN_PROTOTYPES
|
||||||
DLL_LIBS += -L"$(WINIDN_PATH)" -lnormaliz
|
curl_LDADD += -lnormaliz
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef SSPI
|
ifdef SSPI
|
||||||
|
@ -403,19 +377,19 @@ endif
|
||||||
ifdef USE_LDAP_NOVELL
|
ifdef USE_LDAP_NOVELL
|
||||||
INCLUDES += -I"$(LDAP_SDK)/inc"
|
INCLUDES += -I"$(LDAP_SDK)/inc"
|
||||||
CFLAGS += -DCURL_HAS_NOVELL_LDAPSDK
|
CFLAGS += -DCURL_HAS_NOVELL_LDAPSDK
|
||||||
DLL_LIBS += -L"$(LDAP_SDK)/lib/mscvc" -lldapsdk -lldapssl -lldapx
|
curl_LDADD += -L"$(LDAP_SDK)/lib/mscvc" -lldapsdk -lldapssl -lldapx
|
||||||
endif
|
endif
|
||||||
ifdef USE_LDAP_OPENLDAP
|
ifdef USE_LDAP_OPENLDAP
|
||||||
INCLUDES += -I"$(LDAP_SDK)/include"
|
INCLUDES += -I"$(LDAP_SDK)/include"
|
||||||
CFLAGS += -DCURL_HAS_OPENLDAP_LDAPSDK
|
CFLAGS += -DCURL_HAS_OPENLDAP_LDAPSDK
|
||||||
DLL_LIBS += -L"$(LDAP_SDK)/lib" -lldap -llber
|
curl_LDADD += -L"$(LDAP_SDK)/lib" -lldap -llber
|
||||||
endif
|
endif
|
||||||
ifndef USE_LDAP_NOVELL
|
ifndef USE_LDAP_NOVELL
|
||||||
ifndef USE_LDAP_OPENLDAP
|
ifndef USE_LDAP_OPENLDAP
|
||||||
DLL_LIBS += -lwldap32
|
curl_LDADD += -lwldap32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
DLL_LIBS += -lws2_32 -lbcrypt
|
curl_LDADD += -lws2_32 -lcrypt32 -lbcrypt
|
||||||
|
|
||||||
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
||||||
include Makefile.inc
|
include Makefile.inc
|
||||||
|
@ -444,11 +418,10 @@ $(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES)
|
||||||
|
|
||||||
# remove the last line above to keep debug info
|
# remove the last line above to keep debug info
|
||||||
|
|
||||||
$(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE) $(libcurl_dll_DEPENDENCIES)
|
$(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE)
|
||||||
@$(call DEL, $@)
|
@$(call DEL, $@)
|
||||||
$(CC) $(LDFLAGS) -shared -o $@ \
|
$(CC) $(LDFLAGS) -shared -o $@ $(libcurl_a_OBJECTS) $(RESOURCE) $(curl_LDADD) \
|
||||||
-Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY) \
|
-Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY)
|
||||||
$(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS)
|
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
|
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
|
||||||
|
|
195
src/Makefile.m32
195
src/Makefile.m32
|
@ -24,87 +24,58 @@
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
#
|
||||||
## Makefile for building curl.exe with MinGW (GCC-3.2 or later or LLVM/Clang)
|
# Makefile for building curl.exe with MinGW and optional features.
|
||||||
## 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
|
||||||
## 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
|
||||||
## Hint: you can also set environment vars to control the build, e.g.:
|
# set ZLIB=1
|
||||||
## set ZLIB_PATH=c:/zlib-1.2.8
|
|
||||||
## 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 = ..
|
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
|
ifndef LIBCARES_PATH
|
||||||
LIBCARES_PATH = $(PROOT)/ares
|
LIBCARES_PATH = $(PROOT)/../c-ares
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CURL_CC),)
|
ifeq ($(CURL_CC),)
|
||||||
|
@ -116,21 +87,12 @@ endif
|
||||||
ifeq ($(CURL_RC),)
|
ifeq ($(CURL_RC),)
|
||||||
CURL_RC := $(CROSSPREFIX)windres
|
CURL_RC := $(CROSSPREFIX)windres
|
||||||
endif
|
endif
|
||||||
ifeq ($(CURL_STRIP),)
|
|
||||||
CURL_STRIP := $(CROSSPREFIX)strip
|
|
||||||
endif
|
|
||||||
|
|
||||||
CC = $(CURL_CC)
|
CC = $(CURL_CC)
|
||||||
CFLAGS = -O3 $(CURL_CFLAG_EXTRAS) -W -Wall
|
CFLAGS = -O3 $(CURL_CFLAG_EXTRAS) -W -Wall
|
||||||
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE)
|
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE)
|
||||||
AR = $(CURL_AR)
|
|
||||||
RC = $(CURL_RC)
|
RC = $(CURL_RC)
|
||||||
RCFLAGS = --include-dir=$(PROOT)/include -O coff -DCURL_EMBED_MANIFEST $(CURL_RCFLAG_EXTRAS)
|
RCFLAGS = -I$(PROOT)/include -O coff -DCURL_EMBED_MANIFEST $(CURL_RCFLAG_EXTRAS)
|
||||||
STRIP = $(CURL_STRIP) -g
|
|
||||||
|
|
||||||
# We may need these someday
|
|
||||||
# PERL = perl
|
|
||||||
# NROFF = nroff
|
|
||||||
|
|
||||||
# Set environment var ARCH to your architecture to override autodetection.
|
# Set environment var ARCH to your architecture to override autodetection.
|
||||||
ifndef ARCH
|
ifndef ARCH
|
||||||
|
@ -145,11 +107,11 @@ ifneq ($(ARCH),custom)
|
||||||
ifeq ($(ARCH),w64)
|
ifeq ($(ARCH),w64)
|
||||||
CFLAGS += -m64
|
CFLAGS += -m64
|
||||||
LDFLAGS += -m64
|
LDFLAGS += -m64
|
||||||
RCFLAGS += -F pe-x86-64
|
RCFLAGS += --target=pe-x86-64
|
||||||
else
|
else
|
||||||
CFLAGS += -m32
|
CFLAGS += -m32
|
||||||
LDFLAGS += -m32
|
LDFLAGS += -m32
|
||||||
RCFLAGS += -F pe-i386
|
RCFLAGS += --target=pe-i386
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -159,7 +121,6 @@ DEL = rm -f $1
|
||||||
RMDIR = rm -fr $1
|
RMDIR = rm -fr $1
|
||||||
MKDIR = mkdir -p $1
|
MKDIR = mkdir -p $1
|
||||||
COPY = -cp -afv $1 $2
|
COPY = -cp -afv $1 $2
|
||||||
#COPYR = -cp -afr $1/* $2
|
|
||||||
COPYR = -rsync -aC $1/* $2
|
COPYR = -rsync -aC $1/* $2
|
||||||
TOUCH = touch $1
|
TOUCH = touch $1
|
||||||
CAT = cat
|
CAT = cat
|
||||||
|
@ -255,7 +216,7 @@ ifneq ($(SSH2)$(RTMP),)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
INCLUDES = -I. -I../include -I../lib
|
INCLUDES = -I. -I$(PROOT)/include -I$(PROOT)/lib
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
ifdef SCHANNEL
|
ifdef SCHANNEL
|
||||||
CFLAGS += -DCURL_WITH_MULTI_SSL
|
CFLAGS += -DCURL_WITH_MULTI_SSL
|
||||||
|
@ -279,9 +240,6 @@ ifdef SYNC
|
||||||
CFLAGS += -DUSE_SYNC_DNS
|
CFLAGS += -DUSE_SYNC_DNS
|
||||||
else
|
else
|
||||||
ifdef ARES
|
ifdef ARES
|
||||||
ifndef DYN
|
|
||||||
curl_DEPENDENCIES += $(LIBCARES_PATH)/libcares.a
|
|
||||||
endif
|
|
||||||
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
CFLAGS += -DUSE_ARES -DCARES_STATICLIB
|
||||||
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
||||||
endif
|
endif
|
||||||
|
@ -297,11 +255,6 @@ endif
|
||||||
ifdef SSH2
|
ifdef SSH2
|
||||||
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
||||||
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
||||||
ifdef SCHANNEL
|
|
||||||
ifndef DYN
|
|
||||||
curl_LDADD += -lcrypt32
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef NGHTTP3
|
ifdef NGHTTP3
|
||||||
CFLAGS += -DUSE_NGHTTP3
|
CFLAGS += -DUSE_NGHTTP3
|
||||||
|
@ -322,6 +275,7 @@ endif
|
||||||
ifdef SSL
|
ifdef SSL
|
||||||
ifndef OPENSSL_INCLUDE
|
ifndef OPENSSL_INCLUDE
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
|
||||||
|
@ -334,25 +288,23 @@ ifdef SSL
|
||||||
ifndef OPENSSL_LIBPATH
|
ifndef OPENSSL_LIBPATH
|
||||||
OPENSSL_LIBS = -lssl -lcrypto
|
OPENSSL_LIBS = -lssl -lcrypto
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
||||||
|
# OpenSSL 1.0.2 and earlier
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
||||||
ifdef DYN
|
OPENSSL_LIBS = -lssl32 -leay32
|
||||||
OPENSSL_LIBS = -lssl32 -leay32
|
ifndef DYN
|
||||||
|
OPENSSL_LIBS += -lgdi32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
||||||
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifndef DYN
|
|
||||||
OPENSSL_LIBS += -lgdi32 -lcrypt32
|
|
||||||
endif
|
|
||||||
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
INCLUDES += -I"$(OPENSSL_INCLUDE)"
|
||||||
CFLAGS += -DUSE_OPENSSL
|
CFLAGS += -DUSE_OPENSSL
|
||||||
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
||||||
endif
|
endif
|
||||||
ifdef SCHANNEL
|
ifdef SCHANNEL
|
||||||
CFLAGS += -DUSE_SCHANNEL
|
CFLAGS += -DUSE_SCHANNEL
|
||||||
curl_LDADD += -lcrypt32
|
|
||||||
endif
|
endif
|
||||||
ifdef ZLIB
|
ifdef ZLIB
|
||||||
INCLUDES += -I"$(ZLIB_PATH)"
|
INCLUDES += -I"$(ZLIB_PATH)"
|
||||||
|
@ -389,7 +341,7 @@ ifdef IDN2
|
||||||
else
|
else
|
||||||
ifdef WINIDN
|
ifdef WINIDN
|
||||||
CFLAGS += -DUSE_WIN32_IDN
|
CFLAGS += -DUSE_WIN32_IDN
|
||||||
curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
|
curl_LDADD += -lnormaliz
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifdef SSPI
|
ifdef SSPI
|
||||||
|
@ -411,37 +363,27 @@ ifdef USE_LDAP_OPENLDAP
|
||||||
endif
|
endif
|
||||||
ifndef USE_LDAP_NOVELL
|
ifndef USE_LDAP_NOVELL
|
||||||
ifndef USE_LDAP_OPENLDAP
|
ifndef USE_LDAP_OPENLDAP
|
||||||
curl_LDADD += -lwldap32
|
curl_LDADD += -lwldap32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
curl_LDADD += -lws2_32 -lbcrypt
|
curl_LDADD += -lws2_32 -lcrypt32 -lbcrypt
|
||||||
|
|
||||||
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
# Makefile.inc provides the CURL_CFILES and CURLX_CFILES defines
|
||||||
include Makefile.inc
|
include Makefile.inc
|
||||||
|
|
||||||
curl_PROGRAMS = curl.exe
|
TARGETS = curl.exe
|
||||||
curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES)))
|
curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES)))
|
||||||
curlx_OBJECTS := $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_CFILES))))
|
curl_OBJECTS += $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_CFILES))))
|
||||||
curl_OBJECTS += $(curlx_OBJECTS)
|
|
||||||
vpath %.c $(PROOT)/lib
|
vpath %.c $(PROOT)/lib
|
||||||
|
|
||||||
RESOURCE = curl.res
|
RESOURCE = curl.res
|
||||||
|
|
||||||
|
|
||||||
all: $(curl_PROGRAMS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
curl.exe: $(RESOURCE) $(curl_OBJECTS) $(curl_DEPENDENCIES)
|
curl.exe: $(curl_OBJECTS) $(RESOURCE) $(curl_DEPENDENCIES)
|
||||||
$(call DEL, $@)
|
@$(call DEL, $@)
|
||||||
$(CC) $(LDFLAGS) -o $@ $< $(curl_OBJECTS) $(curl_LDADD)
|
$(CC) $(LDFLAGS) -o $@ $(curl_OBJECTS) $(RESOURCE) $(curl_LDADD)
|
||||||
|
|
||||||
# We don't have nroff normally under win32
|
|
||||||
# tool_hugehelp.c: $(PROOT)/docs/MANUAL $(PROOT)/docs/curl.1 mkhelp.pl
|
|
||||||
# @$(call DEL, tool_hugehelp.c)
|
|
||||||
# $(NROFF) -man $(PROOT)/docs/curl.1 | $(PERL) mkhelp.pl $(PROOT)/docs/MANUAL > tool_hugehelp.c
|
|
||||||
|
|
||||||
tool_hugehelp.c:
|
|
||||||
@echo Creating $@
|
|
||||||
@$(call COPY, $@.cvs, $@)
|
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||||
|
@ -450,10 +392,7 @@ tool_hugehelp.c:
|
||||||
$(RC) $(RCFLAGS) -i $< -o $@
|
$(RC) $(RCFLAGS) -i $< -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
ifeq "$(wildcard tool_hugehelp.c.cvs)" "tool_hugehelp.c.cvs"
|
@$(call DEL, $(curl_OBJECTS) $(RESOURCE))
|
||||||
@$(call DEL, tool_hugehelp.c)
|
|
||||||
endif
|
|
||||||
@$(call DEL, $(curl_OBJECTS) $(curlx_OBJECTS) $(RESOURCE))
|
|
||||||
|
|
||||||
distclean vclean: clean
|
distclean vclean: clean
|
||||||
@$(call DEL, $(curl_PROGRAMS))
|
@$(call DEL, $(TARGETS))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user