digest: add support for OpenSSL 1.1.0
[siplcs.git] / src / core / Makefile.mingw
blob34af3e2da8ae1c6bc2dce752cedcddc5b3f36ccf
1 ################################### tell Emacs this is a -*- makefile-gmake -*-
3 # Copyright (C) 2011-2016 SIPE Project <http://sipe.sourceforge.net/>
5 # Makefile.mingw
7 # Author: zup@sbox.tugraz.at
8 # Date 8/28/07
9 # Description: Makefile for win32 (mingw) version of libsipe
11 ###############################################################################
13 # Configuration option:
14 #  - USE_SSPI defined:     NTLM, Kerberos, TLS-DSK & Single Sign-On supported
15 #  - USE_SSPI not defined: NTLM & TLS-DSK but without Single Sign-On support
16 #             [eg.: make -f Makefile.mingw USE_SSPI= ]
18 # @TODO: HAVE_GSSAPI_GSSAPI_H support for USE_SSPI=. Where to find the libraries?
19 #        Those would need to be packaged alongside the plugin.
21 USE_SSPI := 1
23 ifdef PIDGIN_TREE_TOP
24 # standalone MinGW build
25 OLD_PIDGIN_TREE_TOP := $(PIDGIN_TREE_TOP)
26 PIDGIN_TREE_TOP     := ../$(OLD_PIDGIN_TREE_TOP)
27 else
28 # MinGW cross-compile build (see contrib/mingw-cross-compile/README.txt)
29 PIDGIN_TREE_TOP := ../../..
30 VERSION         := $(shell cat ../../VERSION)
31 endif
33 include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
35 TARGET = libsipe
37 DLL_INSTALL_DIR = $(PURPLE_INSTALL_PLUGINS_DIR)
39 # dump higher level defines
40 DEFINES  =
41 DEFINES += -DENABLE_NLS=1
42 DEFINES += -DPACKAGE_BUGREPORT=\"https://sourceforge.net/p/sipe/bugs/\"
43 DEFINES += -DPACKAGE_NAME=\"pidgin-sipe\"
44 DEFINES += -DPACKAGE_URL=\"http://sipe.sourceforge.net/\"
45 DEFINES += -DPACKAGE_VERSION=\"$(VERSION)\"
46 DEFINES += -DSIPE_TRANSLATIONS_URL=\"https://www.transifex.com/stefanb/pidgin-sipe/\"
47 #DEFINES += -DENABLE_OCS2005_MESSAGE_HACK=1
49 ifdef USE_SSPI
50 DEFINES += -DHAVE_SSPI=1
51 endif
54 ## INCLUDE PATHS
56 INCLUDE_PATHS +=        -I. \
57                         -I../api \
58                         -I../purple \
59                         -I$(GTK_TOP)/include \
60                         -I$(GTK_TOP)/include/glib-2.0 \
61                         -I$(GTK_TOP)/lib/glib-2.0/include \
62                         -I$(LIBXML2_TOP)/include/libxml2 \
63                         -I$(NSPR_TOP)/include \
64                         -I$(NSS_TOP)/include
66 PURPLE_INCLUDE_PATHS += -I$(PURPLE_TOP) \
67                         -I$(PURPLE_TOP)/win32 \
68                         -I$(PIDGIN_TREE_TOP)
71 ##  SOURCES, OBJECTS
73 CLEAN_C_SRC =           sip-soap.c \
74                         sip-transport.c \
75                         sipe-conf.c \
76                         sipe-core.c \
77                         sipe-domino.c \
78                         sipe-buddy.c \
79                         sipe-cal.c \
80                         sipe-certificate.c \
81                         sipe-cert-crypto-nss.c \
82                         sipe-chat.c \
83                         sipe-crypt-nss.c \
84                         sipe-dialog.c \
85                         sipe-digest-nss.c \
86                         sipe-ft.c \
87                         sipe-ft-tftp.c \
88                         sipe-group.c \
89                         sipe-groupchat.c \
90                         sipe-http.c \
91                         sipe-http-request.c \
92                         sipe-http-transport.c \
93                         sipe-im.c \
94                         sipe-incoming.c \
95                         sipe-lync-autodiscover.c \
96                         sipe-mime-common.c \
97                         sipe-notify.c \
98                         sipe-ocs2005.c \
99                         sipe-ocs2007.c \
100                         sipe-schedule.c \
101                         sipe-session.c \
102                         sipe-status.c \
103                         sipe-subscriptions.c \
104                         sipe-svc.c \
105                         sipe-tls.c \
106                         sipe-ucs.c \
107                         sipe-user.c \
108                         sipe-utils.c \
109                         sipe-ews.c \
110                         sipe-ews-autodiscover.c \
111                         sipmsg.c \
112                         sipe-sign.c \
113                         sip-sec.c \
114                         sip-sec-basic.c \
115                         sip-sec-digest.c \
116                         sip-sec-tls-dsk.c \
117                         sip-csta.c \
118                         sipe-webticket.c \
119                         sipe-xml.c \
120                         uuid.c \
121                         sipe-win32dep.c
123 PURPLE_C_SRC =          ../purple/purple-buddy.c \
124                         ../purple/purple-chat.c \
125                         ../purple/purple-connection.c \
126                         ../purple/purple-debug.c \
127                         ../purple/purple-dnsquery.c \
128                         ../purple/purple-ft.c \
129                         ../purple/purple-groupchat.c \
130                         ../purple/purple-im.c \
131                         ../purple/purple-markup.c \
132                         ../purple/purple-mime.c \
133                         ../purple/purple-network.c \
134                         ../purple/purple-notify.c \
135                         ../purple/purple-plugin.c \
136                         ../purple/purple-plugin-common.c \
137                         ../purple/purple-schedule.c \
138                         ../purple/purple-search.c \
139                         ../purple/purple-setting.c \
140                         ../purple/purple-status.c \
141                         ../purple/purple-transport.c \
142                         ../purple/purple-user.c
144 C_TEST_SRC =            sipe-xml-tests.c
146 ifdef USE_SSPI
147 CLEAN_C_SRC +=          sip-sec-sspi.c
148 else
149 CLEAN_C_SRC +=          md4.c \
150                         sip-sec-ntlm.c
152 C_TEST_SRC +=           sip-sec-ntlm-tests.c \
153                         ../purple/tests.c
154 endif
156 C_SRC =                 $(CLEAN_C_SRC) $(PURPLE_C_SRC)
158 RC_SRC =                libsiperc.rc
160 CLEAN_OBJECTS =         $(CLEAN_C_SRC:%.c=%.o)
161 PURPLE_OBJECTS =        $(PURPLE_C_SRC:%.c=%.o)
162 RC_OBJECTS =            $(RC_SRC:%.rc=%.o)
163 OBJECTS =               $(CLEAN_OBJECTS) $(PURPLE_OBJECTS) $(RC_OBJECTS)
165 # Only these modules need the purple headers
166 $(PURPLE_OBJECTS):      INCLUDE_PATHS += $(PURPLE_INCLUDE_PATHS)
168 TEST_OBJECTS =          $(C_TEST_SRC:%.c=%.o)
171 ## LIBRARIES
173 LIB_PATHS =             -L$(GTK_TOP)/lib \
174                         -L$(LIBXML2_TOP)/lib \
175                         -L$(NSS_TOP)/lib \
176                         -L$(PURPLE_TOP)
178 LIBS =                  -lglib-2.0 \
179                         -lgobject-2.0 \
180                         -lintl \
181                         -lxml2 \
182                         -lnss3 \
183                         -lsmime3 \
184                         -lnspr4 \
185                         -lws2_32 \
186                         -lpurple
188 ifdef USE_SSPI
189 LIBS +=                 -lsecur32
190 endif
192 # These flags are used in mingw build
193 TESTS_WARN = -Werror -Wall -Wextra -Waggregate-return -Wcast-align -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef
195 include $(PIDGIN_COMMON_RULES)
198 ## TARGET DEFINITIONS
200 .PHONY: all clean install
202 all: $(TARGET).dll
204 _comma = ,
206 libsiperc.rc: libsiperc.rc.in
207         sed \
208                 -e 's/@SIPE_VERSION@/$(VERSION)/' \
209                 -e 's/#SIPE_VERSION#/$(subst .,$(_comma),$(VERSION))/' \
210                 <$< >$@
212 $(OBJECTS): $(PURPLE_CONFIG_H)
214 $(TARGET).dll: $(PURPLE_DLL).a $(OBJECTS)
215         $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $@.dbgsym
216         $(STRIP) --strip-unneeded $@.dbgsym -o $@
219 ## CLEAN RULES
221 clean: tests-clean
222         rm -f $(RC_SRC)
223         rm -f $(OBJECTS)
224         rm -f $(TARGET).dll
226 rmbak:
227         rm -f *~
229 install:
230         test -z "$(DLL_INSTALL_DIR)" || mkdir -p "$(DLL_INSTALL_DIR)"
231         /usr/bin/install -c $(TARGET).dll $(TARGET).dll.dbgsym '$(DLL_INSTALL_DIR)'
233 $(TEST_OBJECTS):
235 tests: tests-clean $(TEST_OBJECTS)
236         $(CC) sipe-utils.o uuid.o sipe-xml.o sipe-xml-tests.o -L. $(LIB_PATHS) $(LIBS) -lsipe -o sipe-xml-tests.exe
237         ./sipe-xml-tests.exe
238 ifdef USE_SSPI
239 # nothing to do
240 else
241         $(CC) ../purple/purple-debug.o ../purple/purple-markup.o ../purple/purple-network.o md4.o sipe-digest.o sipe-crypt.o sipe-mime.o sipe-sign.o sipmsg.o sipe-utils.o uuid.o sip-sec-ntlm-tests.o ../purple/tests.o  -L. $(LIB_PATHS) $(LIBS) -lsipe -o ../purple/tests.exe
242         ../purple/tests.exe
243 endif
245 tests-clean:
246         rm -f $(TEST_OBJECTS)
247         rm -f sipe-xml-tests.exe ../purple/tests.exe
249 include $(PIDGIN_COMMON_TARGETS)