819afe46ee
Version number is removed in order to make this info consistent with how we do it with other MS and Linux system libraries for which we don't provide this info. Identifier changed from 'WinSSPI' to 'schannel' given that this is the actual provider of the SSL/TLS support. libcurl can still be built with SSPI and without SCHANNEL support.
269 lines
6.4 KiB
Makefile
269 lines
6.4 KiB
Makefile
###########################################################################
|
|
#
|
|
## Makefile for building curl.exe with MingW (GCC-3.2 or later)
|
|
## and optionally OpenSSL (0.9.8), libssh2 (1.3), zlib (1.2.5), librtmp (2.3)
|
|
##
|
|
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
|
|
## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-spi-winidn
|
|
##
|
|
## Hint: you can also set environment vars to control the build, f.e.:
|
|
## set ZLIB_PATH=c:/zlib-1.2.7
|
|
## set ZLIB=1
|
|
#
|
|
###########################################################################
|
|
|
|
# Edit the path below to point to the base of your Zlib sources.
|
|
ifndef ZLIB_PATH
|
|
ZLIB_PATH = ../../zlib-1.2.7
|
|
endif
|
|
# Edit the path below to point to the base of your OpenSSL package.
|
|
ifndef OPENSSL_PATH
|
|
OPENSSL_PATH = ../../openssl-0.9.8x
|
|
endif
|
|
# Edit the path below to point to the base of your LibSSH2 package.
|
|
ifndef LIBSSH2_PATH
|
|
LIBSSH2_PATH = ../../libssh2-1.4.2
|
|
endif
|
|
# Edit the path below to point to the base of your librtmp package.
|
|
ifndef LIBRTMP_PATH
|
|
LIBRTMP_PATH = ../../librtmp-2.3
|
|
endif
|
|
# Edit the path below to point to the base of your libmetalink package.
|
|
ifndef LIBMETALINK_PATH
|
|
LIBMETALINK_PATH = ../../libmetalink-0.0.3
|
|
endif
|
|
# Edit the path below to point to the base of your libidn package.
|
|
ifndef LIBIDN_PATH
|
|
LIBIDN_PATH = ../../libidn-1.18
|
|
endif
|
|
# Edit the path below to point to the base of your MS IDN package.
|
|
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
|
|
# http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
|
|
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
|
|
|
|
PROOT = ..
|
|
|
|
# Edit the path below to point to the base of your c-ares package.
|
|
ifndef LIBCARES_PATH
|
|
LIBCARES_PATH = $(PROOT)/ares
|
|
endif
|
|
|
|
# Edit the var below to set to your architecture or set environment var.
|
|
ifndef ARCH
|
|
ARCH = w32
|
|
endif
|
|
|
|
CC = gcc
|
|
CFLAGS = -g -O2 -Wall
|
|
CFLAGS += -fno-strict-aliasing
|
|
ifeq ($(ARCH),w64)
|
|
CFLAGS += -D_AMD64_
|
|
endif
|
|
# comment LDFLAGS below to keep debug info
|
|
LDFLAGS = -s
|
|
RC = windres
|
|
RCFLAGS = --include-dir=$(PROOT)/include -O COFF -i
|
|
|
|
RM = del /q /f 2>NUL
|
|
CP = copy
|
|
|
|
# We may need these someday
|
|
# PERL = perl
|
|
# NROFF = nroff
|
|
|
|
########################################################
|
|
## Nothing more to do below this line!
|
|
|
|
ifeq ($(findstring -dyn,$(CFG)),-dyn)
|
|
DYN = 1
|
|
endif
|
|
ifeq ($(findstring -ares,$(CFG)),-ares)
|
|
ARES = 1
|
|
endif
|
|
ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
|
|
RTMP = 1
|
|
SSL = 1
|
|
ZLIB = 1
|
|
endif
|
|
ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
|
|
SSH2 = 1
|
|
SSL = 1
|
|
ZLIB = 1
|
|
endif
|
|
ifeq ($(findstring -ssl,$(CFG)),-ssl)
|
|
SSL = 1
|
|
endif
|
|
ifeq ($(findstring -zlib,$(CFG)),-zlib)
|
|
ZLIB = 1
|
|
endif
|
|
ifeq ($(findstring -idn,$(CFG)),-idn)
|
|
IDN = 1
|
|
endif
|
|
ifeq ($(findstring -winidn,$(CFG)),-winidn)
|
|
WINIDN = 1
|
|
endif
|
|
ifeq ($(findstring -sspi,$(CFG)),-sspi)
|
|
SSPI = 1
|
|
endif
|
|
ifeq ($(findstring -spnego,$(CFG)),-spnego)
|
|
SPNEGO = 1
|
|
endif
|
|
ifeq ($(findstring -ldaps,$(CFG)),-ldaps)
|
|
LDAPS = 1
|
|
endif
|
|
ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
|
|
IPV6 = 1
|
|
endif
|
|
ifeq ($(findstring -metalink,$(CFG)),-metalink)
|
|
METALINK = 1
|
|
endif
|
|
ifeq ($(findstring -schannel,$(CFG)),-schannel)
|
|
SCHANNEL = 1
|
|
SSPI = 1
|
|
endif
|
|
|
|
INCLUDES = -I. -I.. -I../include -I../lib
|
|
|
|
ifdef DYN
|
|
curl_DEPENDENCIES = $(PROOT)/lib/libcurldll.a $(PROOT)/lib/libcurl.dll
|
|
curl_LDADD = -L$(PROOT)/lib -lcurldll
|
|
else
|
|
curl_DEPENDENCIES = $(PROOT)/lib/libcurl.a
|
|
curl_LDADD = -L$(PROOT)/lib -lcurl
|
|
CFLAGS += -DCURL_STATICLIB
|
|
LDFLAGS += -static
|
|
endif
|
|
ifdef ARES
|
|
ifndef DYN
|
|
curl_DEPENDENCIES += $(LIBCARES_PATH)/libcares.a
|
|
endif
|
|
CFLAGS += -DUSE_ARES
|
|
curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
|
|
endif
|
|
ifdef RTMP
|
|
CFLAGS += -DUSE_LIBRTMP
|
|
curl_LDADD += -L"$(LIBRTMP_PATH)/librtmp" -lrtmp -lwinmm
|
|
endif
|
|
ifdef SSH2
|
|
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
|
|
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
|
|
endif
|
|
ifdef SSL
|
|
ifndef OPENSSL_LIBPATH
|
|
OPENSSL_LIBS = -lssl -lcrypto
|
|
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
|
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
|
|
ifdef DYN
|
|
OPENSSL_LIBS = -lssl32 -leay32
|
|
endif
|
|
endif
|
|
ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
|
|
OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
|
|
endif
|
|
endif
|
|
ifndef DYN
|
|
OPENSSL_LIBS += -lgdi32 -lcrypt32
|
|
endif
|
|
CFLAGS += -DUSE_SSLEAY
|
|
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
|
|
endif
|
|
ifdef ZLIB
|
|
INCLUDES += -I"$(ZLIB_PATH)"
|
|
CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H
|
|
curl_LDADD += -L"$(ZLIB_PATH)" -lz
|
|
endif
|
|
ifdef IDN
|
|
CFLAGS += -DUSE_LIBIDN
|
|
curl_LDADD += -L"$(LIBIDN_PATH)/lib" -lidn
|
|
else
|
|
ifdef WINIDN
|
|
CFLAGS += -DUSE_WIN32_IDN
|
|
curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
|
|
endif
|
|
endif
|
|
ifdef METALINK
|
|
INCLUDES += -I"$(LIBMETALINK_PATH)/include"
|
|
CFLAGS += -DUSE_METALINK
|
|
curl_LDADD += -L"$(LIBMETALINK_PATH)/lib" -lmetalink
|
|
endif
|
|
ifdef SSPI
|
|
CFLAGS += -DUSE_WINDOWS_SSPI
|
|
ifdef SCHANNEL
|
|
CFLAGS += -DUSE_SCHANNEL
|
|
endif
|
|
endif
|
|
ifdef SPNEGO
|
|
CFLAGS += -DHAVE_SPNEGO
|
|
endif
|
|
ifdef IPV6
|
|
CFLAGS += -DENABLE_IPV6 -D_WIN32_WINNT=0x0501
|
|
endif
|
|
ifdef LDAPS
|
|
CFLAGS += -DHAVE_LDAP_SSL
|
|
endif
|
|
ifdef USE_LDAP_NOVELL
|
|
CFLAGS += -DCURL_HAS_NOVELL_LDAPSDK
|
|
curl_LDADD += -L"$(LDAP_SDK)/lib/mscvc" -lldapsdk -lldapssl -lldapx
|
|
endif
|
|
ifdef USE_LDAP_OPENLDAP
|
|
CFLAGS += -DCURL_HAS_OPENLDAP_LDAPSDK
|
|
curl_LDADD += -L"$(LDAP_SDK)/lib" -lldap -llber
|
|
endif
|
|
ifndef USE_LDAP_NOVELL
|
|
ifndef USE_LDAP_OPENLDAP
|
|
curl_LDADD += -lwldap32
|
|
endif
|
|
endif
|
|
curl_LDADD += -lws2_32
|
|
|
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
|
include Makefile.inc
|
|
|
|
curl_PROGRAMS = curl.exe
|
|
curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES)))
|
|
curlx_OBJECTS := $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_ONES))))
|
|
ifdef DYN
|
|
curl_OBJECTS += $(curlx_OBJECTS)
|
|
vpath %.c $(PROOT)/lib
|
|
endif
|
|
|
|
RESOURCE = curl.res
|
|
|
|
|
|
all: $(curl_PROGRAMS)
|
|
|
|
curl.exe: $(RESOURCE) $(curl_OBJECTS) $(curl_DEPENDENCIES)
|
|
-$(RM) $@
|
|
$(CC) $(LDFLAGS) -o $@ $< $(curl_OBJECTS) $(curl_LDADD)
|
|
|
|
# We don't have nroff normally under win32
|
|
# hugehelp.c: $(PROOT)/README.curl $(PROOT)/curl.1 mkhelp.pl
|
|
# -$(RM) hugehelp.c
|
|
# $(NROFF) -man $(PROOT)/curl.1 | $(PERL) mkhelp.pl $(PROOT)/README.curl > hugehelp.c
|
|
|
|
hugehelp.c:
|
|
@echo Creating $@
|
|
@$(CP) hugehelp.c.cvs $@
|
|
|
|
%.o: %.c
|
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
|
|
|
%.res: %.rc
|
|
$(RC) $(RCFLAGS) $< -o $@
|
|
|
|
clean:
|
|
ifeq "$(wildcard hugehelp.c.cvs)" "hugehelp.c.cvs"
|
|
-$(RM) hugehelp.c
|
|
endif
|
|
-$(RM) $(curl_OBJECTS) $(curlx_OBJECTS) $(RESOURCE)
|
|
|
|
distclean vclean: clean
|
|
-$(RM) $(curl_PROGRAMS)
|
|
|