Apply patch #3108246: Patch for better windows installer
[siplcs.git] / src / core / Makefile.mingw
blob0c56a839193c0b470c8dec21b9e6f8d97defd674
2 # Makefile.mingw
4 # Author: zup@sbox.tugraz.at
5 # Date 8/28/07
6 # Description: Makefile for win32 (mingw) version of libsipe
9 OLD_PIDGIN_TREE_TOP := $(PIDGIN_TREE_TOP)
10 PIDGIN_TREE_TOP := ../$(OLD_PIDGIN_TREE_TOP)
12 include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
14 LIBICONV_TOP    = $(WIN32_DEV_TOP)/libiconv-1.13.1-1
15 GMIME_TOP       = $(WIN32_DEV_TOP)/gmime-2.4.15
18 TARGET = libsipe
19 TYPE = PLUGIN
21 # dump higher level defines
22 DEFINES =
24 # Static or Plugin...
25 ifeq ($(TYPE),STATIC)
26   DEFINES += -DSTATIC
27   DLL_INSTALL_DIR =     $(PURPLE_INSTALL_DIR)
28 else
29 ifeq ($(TYPE),PLUGIN)
30   DLL_INSTALL_DIR =     $(PURPLE_INSTALL_PLUGINS_DIR)
31 endif
32 endif
34 DEFINES += -DENABLE_NLS=1
35 DEFINES += -DPACKAGE_BUGREPORT=\"https://sourceforge.net/tracker/?atid=949931\&group_id=194563\"
36 DEFINES += -DPACKAGE_NAME=\"pidgin-sipe\"
37 DEFINES += -DPACKAGE_URL=\"http://sipe.sourceforge.net/\"
38 DEFINES += -DPACKAGE_VERSION=\"$(VERSION)\"
39 #Whether to use Windows native SSPI security package (Kerberos, NTLM; SSO)
40 #or use SIPE custom NTLMv2 implementation only (No Kerberos; No SSO).
41 DEFINES += -DHAVE_LIBKRB5=1
42 DEFINES += -DHAVE_NSS=1
43 DEFINES += -DHAVE_GMIME=1
46 ## INCLUDE PATHS
48 INCLUDE_PATHS +=        -I. \
49                         -I../api \
50                         -I../purple \
51                         -I$(GTK_TOP)/include \
52                         -I$(GTK_TOP)/include/glib-2.0 \
53                         -I$(GTK_TOP)/lib/glib-2.0/include \
54                         -I$(LIBICONV_TOP)/include \
55                         -I$(GMIME_TOP)/include/gmime-2.4 \
56                         -I$(LIBXML2_TOP)/include/libxml2 \
57                         -I$(NSPR_TOP)/include \
58                         -I$(NSS_TOP)/include
60 PURPLE_INCLUDE_PATHS += \
61                         -I$(PURPLE_TOP) \
62                         -I$(PURPLE_TOP)/win32 \
63                         -I$(PIDGIN_TREE_TOP)
66 ##  SOURCES, OBJECTS
68 CLEAN_C_SRC = \
69                         http-conn.c \
70                         md4.c \
71                         sip-transport.c \
72                         sipe-conf.c \
73                         sipe-core.c \
74                         sipe-crypt.c \
75                         sipe-digest.c \
76                         sipe-domino.c \
77                         sipe-buddy.c \
78                         sipe-cal.c \
79                         sipe-chat.c \
80                         sipe-dialog.c \
81                         sipe-ft.c \
82                         sipe-groupchat.c \
83                         sipe-incoming.c \
84                         sipe-schedule.c \
85                         sipe-session.c \
86                         sipe-subscriptions.c \
87                         sipe-user.c \
88                         sipe-ews.c \
89                         sipmsg.c \
90                         sipe-sign.c \
91                         sip-sec.c \
92                         sip-sec-ntlm.c \
93                         sip-sec-sspi.c \
94                         sip-csta.c \
95                         sipe-xml.c \
96                         sipe-mime.c \
97                         uuid.c \
98                         sipe-win32dep.c
100 PURPLE_C_SRC = \
101                         ../purple/purple-chat.c \
102                         ../purple/purple-connection.c \
103                         ../purple/purple-debug.c \
104                         ../purple/purple-dnsquery.c \
105                         ../purple/purple-ft.c \
106                         ../purple/purple-groupchat.c \
107                         ../purple/purple-im.c \
108                         ../purple/purple-markup.c \
109                         ../purple/purple-network.c \
110                         ../purple/purple-notify.c \
111                         ../purple/purple-plugin.c \
112                         ../purple/purple-schedule.c \
113                         ../purple/purple-setting.c \
114                         ../purple/purple-transport.c \
115                         ../purple/purple-user.c \
116                         sipe-utils.c \
117                         sipe.c
119 C_TEST_SRC =            sipe-xml-tests.c \
120                         sip-sec-ntlm-tests.c \
121                         ../purple/tests.c \
123 C_SRC =                 $(CLEAN_C_SRC) $(PURPLE_C_SRC)
125 CLEAN_OBJECTS =         $(CLEAN_C_SRC:%.c=%.o)                          
126 PURPLE_OBJECTS =        $(PURPLE_C_SRC:%.c=%.o)
127 OBJECTS =               $(CLEAN_OBJECTS) $(PURPLE_OBJECTS)
129 # Only these modules need the purple headers
130 $(PURPLE_OBJECTS):      INCLUDE_PATHS += $(PURPLE_INCLUDE_PATHS)
132 TEST_OBJECTS =          $(C_TEST_SRC:%.c=%.o)
135 LIB_PATHS +=    \
136                         $(GMIME_TOP)/lib/libgmime-2.4.a \
137                         -L$(LIBICONV_TOP)/lib \
138                         -L$(GTK_TOP)/lib \
139                         -L$(LIBXML2_TOP)/lib \
140                         -L$(NSS_TOP)/lib \
141                         -L$(PURPLE_TOP)
144 ## LIBRARIES
146 LIBS =  \
147                         -liconv \
148                         -lglib-2.0 \
149                         -lgobject-2.0 \
150                         -lintl \
151                         -lxml2-2 \
152                         -lnss3 \
153                         -lws2_32 \
154                         -lsecur32 \
155                         -lpurple
156         
157 # These flags are used in mingw build   
158 TESTS_WARN = -Werror -Wall -Wextra -Waggregate-return -Wcast-align -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef
160 include $(PIDGIN_COMMON_RULES)
163 ## TARGET DEFINITIONS
165 .PHONY: all clean install
167 all: $(TARGET).dll
169 $(OBJECTS): $(PURPLE_CONFIG_H)
171 $(TARGET).dll: $(PURPLE_DLL).a $(OBJECTS)
172         $(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -o $(TARGET).dll
175 ## CLEAN RULES
177 clean: tests-clean
178         rm -f $(OBJECTS)
179         rm -f $(TARGET).dll
180   
181 rmbak:
182         rm -f *~
183         
184 install:
185         test -z "$(DLL_INSTALL_DIR)" || mkdir -p "$(DLL_INSTALL_DIR)"
186         /usr/bin/install -c $(TARGET).dll '$(DLL_INSTALL_DIR)'
187         
188 $(TEST_OBJECTS):
190 tests: tests-clean $(TEST_OBJECTS)
191         $(CC) sipe-utils.o uuid.o sipe-xml.o sipe-xml-tests.o -L. $(LIB_PATHS) $(LIBS) -lsipe -o sipe-xml-tests.exe
192         $(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
193         ./sipe-xml-tests.exe
194         ../purple/tests.exe
195         
196 tests-clean:
197         rm -f $(TEST_OBJECTS)
198         rm -f sipe-xml-tests.exe ../purple/tests.exe
200 include $(PIDGIN_COMMON_TARGETS)