## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
##
## Hint: you can also set environment vars to control the build, f.e.:
-## set ZLIB_PATH=c:/zlib-1.2.7
+## 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.7
+ZLIB_PATH = ../../zlib-1.2.8
endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8x
+OPENSSL_PATH = ../../openssl-0.9.8y
endif
# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-1.4.2
+LIBSSH2_PATH = ../../libssh2-1.4.3
endif
# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
ifeq ($(findstring -ares,$(CFG)),-ares)
ARES = 1
endif
+ifeq ($(findstring -sync,$(CFG)),-sync)
+SYNC = 1
+endif
ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
RTMP = 1
SSL = 1
ifeq ($(findstring -ssl,$(CFG)),-ssl)
SSL = 1
endif
+ifeq ($(findstring -srp,$(CFG)),-srp)
+SRP = 1
+endif
ifeq ($(findstring -zlib,$(CFG)),-zlib)
ZLIB = 1
endif
INCLUDES = -I. -I../include
CFLAGS += -DBUILDING_LIBCURL
-ifdef ARES
- INCLUDES += -I"$(LIBCARES_PATH)"
- CFLAGS += -DUSE_ARES
- DLL_LIBS += -L"$(LIBCARES_PATH)" -lcares
- libcurl_dll_DEPENDENCIES = $(LIBCARES_PATH)/libcares.a
+ifdef SYNC
+ CFLAGS += -DUSE_SYNC_DNS
+else
+ ifdef ARES
+ INCLUDES += -I"$(LIBCARES_PATH)"
+ CFLAGS += -DUSE_ARES -DCARES_STATICLIB
+ DLL_LIBS += -L"$(LIBCARES_PATH)" -lcares
+ libcurl_dll_DEPENDENCIES = $(LIBCARES_PATH)/libcares.a
+ endif
endif
ifdef RTMP
INCLUDES += -I"$(LIBRTMP_PATH)"
-DHAVE_ENGINE_LOAD_BUILTIN_ENGINES -DOPENSSL_NO_KRB5 \
-DCURL_WANTS_CA_BUNDLE_ENV
DLL_LIBS += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
+ ifdef SRP
+ ifeq "$(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h)" "$(OPENSSL_INCLUDE)/openssl/srp.h"
+ CFLAGS += -DHAVE_SSLEAY_SRP -DUSE_TLS_SRP
+ endif
+ endif
endif
ifdef ZLIB
INCLUDES += -I"$(ZLIB_PATH)"
$(libcurl_dll_LIBRARY): $(libcurl_a_OBJECTS) $(RESOURCE) $(libcurl_dll_DEPENDENCIES)
@$(call DEL, $@)
- $(CC) $(LDFLAGS) -shared -Wl,--out-implib,$(libcurl_dll_a_LIBRARY) \
- -o $@ $(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS)
+ $(CC) $(LDFLAGS) -shared -o $@ \
+ -Wl,--output-def,$(@:.dll=.def),--out-implib,$(libcurl_dll_a_LIBRARY) \
+ $(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS)
%.o: %.c $(PROOT)/include/curl/curlbuild.h
- $(CC) $(INCLUDES) $(CFLAGS) -c $<
+ $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
%.res: %.rc
$(RC) $(RCFLAGS) $< -o $@
@$(call DEL, $(libcurl_a_OBJECTS) $(RESOURCE))
distclean vclean: clean
- @$(call DEL, $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY) $(libcurl_dll_a_LIBRARY))
+ @$(call DEL, $(libcurl_a_LIBRARY) $(libcurl_dll_LIBRARY) $(libcurl_dll_LIBRARY:.dll=.def) $(libcurl_dll_a_LIBRARY))
$(PROOT)/include/curl/curlbuild.h:
@echo Creating $@