From eb65a49befa040746b222e693bba19ee56814e85 Mon Sep 17 00:00:00 2001 From: Guenter Knauf Date: Tue, 19 Apr 2011 20:59:24 +0200 Subject: [PATCH] Improve MinGW static makefile builds. It is now possible to use any combination of features without having to 1st add makefile targets to the main makefile. The main makefile now passes the 'mingw32-feat1-feat2' as var CFG, and the ./[lib|src]/Makefile.m32 parses the CFG var to determine the features to be enabled. --- Makefile.dist | 28 ++++++++-------------------- lib/Makefile.m32 | 44 +++++++++++++++++++++++++++++++++++++++++--- src/Makefile.m32 | 44 +++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 90 insertions(+), 26 deletions(-) diff --git a/Makefile.dist b/Makefile.dist index bc532ce9a..55bab370a 100644 --- a/Makefile.dist +++ b/Makefile.dist @@ -70,30 +70,18 @@ mingw32: $(MAKE) -C lib -f Makefile.m32 $(MAKE) -C src -f Makefile.m32 -mingw32-zlib: - $(MAKE) -C lib -f Makefile.m32 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 ZLIB=1 - -mingw32-ssl-zlib: - $(MAKE) -C lib -f Makefile.m32 SSL=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSL=1 ZLIB=1 - -mingw32-ssh2-ssl-zlib: - $(MAKE) -C lib -f Makefile.m32 SSH2=1 SSL=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSH2=1 SSL=1 ZLIB=1 - -mingw32-ssh2-ssl-sspi-zlib: - $(MAKE) -C lib -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - -mingw32-rtmp-ssh2-ssl-sspi-zlib: - $(MAKE) -C lib -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - $(MAKE) -C src -f Makefile.m32 RTMP=1 SSH2=1 SSL=1 SSPI=1 ZLIB=1 - mingw32-clean: $(MAKE) -C lib -f Makefile.m32 clean $(MAKE) -C src -f Makefile.m32 clean +mingw32-vclean mingw32-distclean: + $(MAKE) -C lib -f Makefile.m32 vclean + $(MAKE) -C src -f Makefile.m32 vclean + +mingw32%: + $(MAKE) -C lib -f Makefile.m32 CFG=$@ + $(MAKE) -C src -f Makefile.m32 CFG=$@ + vc-clean: $(VC) cd lib nmake -f Makefile.$(VC) clean diff --git a/lib/Makefile.m32 b/lib/Makefile.m32 index fdc064daa..76171cb9b 100644 --- a/lib/Makefile.m32 +++ b/lib/Makefile.m32 @@ -1,10 +1,10 @@ ######################################################################### # ## Makefile for building libcurl.a with MingW32 (GCC-3.2 or later) -## and optionally OpenSSL (0.9.8), libssh2 (1.2), zlib (1.2.5) +## and optionally OpenSSL (0.9.8), libssh2 (1.2), zlib (1.2.5), librtmp (2.3) ## -## Usage: -## mingw32-make -f Makefile.m32 [SSL=1] [SSH2=1] [ZLIB=1] [IDN=1] [WINIDN=1] [SSPI=1] [IPV6=1] [LDAPS=1] [RTMP=1] [DYN=1] +## 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, f.e.: ## set ZLIB_PATH=c:/zlib-1.2.5 @@ -64,6 +64,44 @@ STRIP = strip -g ######################################################## ## 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 -ldaps,$(CFG)),-ldaps) +LDAPS = 1 +endif +ifeq ($(findstring -ipv6,$(CFG)),-ipv6) +IPV6 = 1 +endif + INCLUDES = -I. -I../include CFLAGS += -DBUILDING_LIBCURL ifdef ARES diff --git a/src/Makefile.m32 b/src/Makefile.m32 index c5a9e2a99..3cafae7bb 100644 --- a/src/Makefile.m32 +++ b/src/Makefile.m32 @@ -1,10 +1,10 @@ ######################################################################### # ## Makefile for building curl.exe with MingW32 (GCC-3.2 or later) -## and optionally OpenSSL (0.9.8), libssh2 (1.2), zlib (1.2.5) +## and optionally OpenSSL (0.9.8), libssh2 (1.2), zlib (1.2.5), librtmp (2.3) ## -## Usage: -## mingw32-make -f Makefile.m32 [SSL=1] [SSH2=1] [ZLIB=1] [IDN=1] [SSPI=1] [IPV6=1] [LDAPS=1] [RTMP=1] [DYN=1] +## 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.5 @@ -66,6 +66,44 @@ CP = copy ######################################################## ## 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 -ldaps,$(CFG)),-ldaps) +LDAPS = 1 +endif +ifeq ($(findstring -ipv6,$(CFG)),-ipv6) +IPV6 = 1 +endif + INCLUDES = -I. -I.. -I../include -I../lib LINK = $(CC) $(LDFLAGS) -o $@