| ############################################################# |
| # $Id$ |
| # |
| ## Makefile for building libcurl.a with MingW32 (GCC-3.2) and |
| ## optionally OpenSSL (0.9.7) |
| ## |
| ## Use: make -f Makefile.m32 |
| ## |
| ## Comments to: Troy Engel <tengel@sonic.net> or |
| ## Joern Hartroth <hartroth@acm.org> |
| |
| ifndef OPENSSL_PATH |
| OPENSSL_PATH = ../../openssl-0.9.7d |
| endif |
| ifndef ZLIB_PATH |
| ZLIB_PATH = ../../zlib-1.2.1 |
| endif |
| |
| CC = gcc |
| AR = ar |
| RM = rm -f |
| RANLIB = ranlib |
| STRIP = strip -g |
| |
| ######################################################## |
| ## Nothing more to do below this line! |
| |
| INCLUDES = -I. -I../include |
| CFLAGS = -g -O2 -DMINGW32 -DBUILDING_LIBCURL -DHAVE_LONGLONG |
| ifdef SSL |
| INCLUDES += -I"$(OPENSSL_PATH)/outinc" -I"$(OPENSSL_PATH)/outinc/openssl" |
| CFLAGS += -DUSE_SSLEAY -DUSE_OPENSSL -DHAVE_OPENSSL_ENGINE_H -DHAVE_OPENSSL_PKCS12_H \ |
| -DHAVE_ENGINE_LOAD_BUILTIN_ENGINES -DOPENSSL_NO_KRB5 \ |
| -DCURL_CA_BUNDLE='getenv("CURL_CA_BUNDLE")' |
| DLL_LIBS = -L$(OPENSSL_PATH)/out -leay32 -lssl32 |
| endif |
| ifdef ZLIB |
| INCLUDES += -I"$(ZLIB_PATH)" |
| CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H |
| DLL_LIBS += -L$(ZLIB_PATH) -lz |
| endif |
| COMPILE = $(CC) $(INCLUDES) $(CFLAGS) |
| |
| # Makefile.inc provides the CSOURCES and HHEADERS defines |
| include Makefile.inc |
| |
| libcurl_a_OBJECTS := $(patsubst %.c,%.o,$(strip $(CSOURCES))) |
| |
| libcurl_a_LIBRARIES = libcurl.a |
| libcurl_a_DEPENDENCIES = $(strip $(CSOURCES) $(HHEADERS)) |
| |
| all: libcurl.a libcurl.dll libcurldll.a |
| |
| libcurl.a: $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES) |
| $(RM) libcurl.a |
| $(AR) cru libcurl.a $(libcurl_a_OBJECTS) |
| $(RANLIB) libcurl.a |
| $(STRIP) $@ |
| |
| RESOURCE = libcurl.res |
| |
| # remove the last line above to keep debug info |
| |
| libcurl.dll libcurldll.a: $(libcurl_a_OBJECTS) $(RESOURCE) |
| $(RM) $@ |
| $(CC) -s -shared -Wl,--out-implib,libcurldll.a -o libcurl.dll \ |
| $(libcurl_a_OBJECTS) $(RESOURCE) $(DLL_LIBS) -lws2_32 -lwinmm |
| |
| # remove the above '-s' to keep debug info |
| |
| .c.o: |
| $(COMPILE) -c $< |
| |
| libcurl.res: libcurl.rc |
| windres -DCURLDEBUG=0 -O COFF -o $@ -i $^ |
| |
| clean: |
| $(RM) $(libcurl_a_OBJECTS) $(RESOURCE) |
| |
| distrib: clean |
| $(RM) $(libcurl_a_LIBRARIES) |
| |