summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViktor Szakats <vszakats@users.noreply.github.com>2017-10-15 19:42:32 +0000
committerViktor Szakats <vszakats@users.noreply.github.com>2017-10-15 19:42:32 +0000
commit4440b6ad575385b433dc4b8a28ef80000aa95f7f (patch)
treeee0bafe2591abb746ff06e39d864935623da4ac1
parent748f5301c0a91ad8bab2b74097bc25e3d99317b9 (diff)
downloadcurl-4440b6ad575385b433dc4b8a28ef80000aa95f7f.tar.gz
makefile.m32: allow to override gcc, ar and ranlib
Allow to ovverride certain build tools, making it possible to use LLVM/Clang to build curl. The default behavior is unchanged. To build with clang (as offered by MSYS2), these settings can be used: CURL_CC=clang CURL_AR=llvm-ar CURL_RANLIB=llvm-ranlib Closes https://github.com/curl/curl/pull/1993
-rw-r--r--lib/Makefile.m3218
-rw-r--r--src/Makefile.m3213
2 files changed, 24 insertions, 7 deletions
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index 577785e62..1389b8539 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -22,7 +22,7 @@
###########################################################################
#
-## Makefile for building libcurl.a with MingW (GCC-3.2 or later)
+## Makefile for building libcurl.a with MingW (GCC-3.2 or later or LLVM/Clang)
## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
@@ -76,13 +76,23 @@ ifndef LIBCARES_PATH
LIBCARES_PATH = $(PROOT)/ares
endif
-CC = $(CROSSPREFIX)gcc
+ifeq ($(CURL_CC),)
+CURL_CC := $(CROSSPREFIX)gcc
+endif
+ifeq ($(CURL_AR),)
+CURL_AR := $(CROSSPREFIX)ar
+endif
+ifeq ($(CURL_RANLIB),)
+CURL_RANLIB := $(CROSSPREFIX)ranlib
+endif
+
+CC = $(CURL_CC)
CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
CFLAGS += -fno-strict-aliasing
# comment LDFLAGS below to keep debug info
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_DLL) -s
-AR = $(CROSSPREFIX)ar
-RANLIB = $(CROSSPREFIX)ranlib
+AR = $(CURL_AR)
+RANLIB = $(CURL_RANLIB)
RC = $(CROSSPREFIX)windres
RCFLAGS = --include-dir=$(PROOT)/include -DDEBUGBUILD=0 -O COFF
STRIP = $(CROSSPREFIX)strip -g
diff --git a/src/Makefile.m32 b/src/Makefile.m32
index e55427a5e..728c814a4 100644
--- a/src/Makefile.m32
+++ b/src/Makefile.m32
@@ -22,7 +22,7 @@
###########################################################################
#
-## Makefile for building curl.exe with MingW (GCC-3.2 or later)
+## Makefile for building curl.exe with MingW (GCC-3.2 or later or LLVM/Clang)
## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
@@ -88,12 +88,19 @@ ifndef LIBCARES_PATH
LIBCARES_PATH = $(PROOT)/ares
endif
-CC = $(CROSSPREFIX)gcc
+ifeq ($(CURL_CC),)
+CURL_CC := $(CROSSPREFIX)gcc
+endif
+ifeq ($(CURL_AR),)
+CURL_AR := $(CROSSPREFIX)ar
+endif
+
+CC = $(CURL_CC)
CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
CFLAGS += -fno-strict-aliasing
# comment LDFLAGS below to keep debug info
LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE) -s
-AR = $(CROSSPREFIX)ar
+AR = $(CURL_AR)
RC = $(CROSSPREFIX)windres
RCFLAGS = --include-dir=$(PROOT)/include -O COFF
STRIP = $(CROSSPREFIX)strip -g