Initial commit of some Qt-style bindings.
[jelmer/openchange.git] / Makefile
1 # Makefile for OpenChange
2 # Written by Jelmer Vernooij <jelmer@openchange.org>, 2005.
3
4 default: all
5
6 # Until we add proper dependencies for all the C files:
7 .NOTPARALLEL:
8
9 config.mk: config.status config.mk.in
10         ./config.status
11
12 config.status: configure
13         ./configure
14
15 configure: configure.ac
16         ./autogen.sh
17
18 samba:
19         ./script/installsamba4.sh all
20
21 samba-git: 
22         ./script/installsamba4.sh git-all
23
24 ifneq ($(MAKECMDGOALS), samba)
25 ifneq ($(MAKECMDGOALS), samba-git)
26 include config.mk
27 endif
28 endif
29
30 #################################################################
31 # top level compilation rules
32 #################################################################
33
34 all:            $(OC_IDL)               \
35                 $(OC_LIBS)              \
36                 $(OC_TOOLS)             \
37                 $(OC_TORTURE)           \
38                 $(OC_SERVER)            \
39                 $(SWIGDIRS-ALL)         \
40                 $(PYMAPIALL)            \
41                 $(COVERAGE_INIT)        \
42                 $(OPENCHANGE_QT4)
43
44 install:        all                     \
45                 installlib              \
46                 installpc               \
47                 installheader           \
48                 $(OC_TOOLS_INSTALL)     \
49                 $(OC_SERVER_INSTALL)    \
50                 $(OC_TORTURE_INSTALL)   \
51                 $(SWIGDIRS-INSTALL)     \
52                 $(PYMAPIINSTALL) \
53                 installnagios
54
55 installlib:     $(OC_LIBS_INSTALL)
56 installpc:      $(OC_LIBS_INSTALLPC)
57 installheader:  $(OC_LIBS_INSTALLHEADERS)
58
59 uninstall::     $(OC_LIBS_UNINSTALL)    \
60                 $(OC_TOOLS_UNINSTALL)   \
61                 $(OC_SERVER_UNINSTALL)  \
62                 $(OC_TORTURE_UNINSTALL) \
63                 $(SWIGDIRS-UNINSTALL) \
64                 $(PYMAPIUNINSTALL)
65
66 dist:: distclean
67         ./autogen.sh
68
69 distclean:: clean
70         rm -rf autom4te.cache
71         rm -f Doxyfile
72         rm -f libmapi/Doxyfile
73         rm -f libmapiadmin/Doxyfile
74         rm -f libocpf/Doxyfile
75         rm -f libmapi++/Doxyfile
76         rm -f mapiproxy/Doxyfile
77         rm -f config.status config.log
78         rm -f stamp-h1
79         rm -f utils/mapitest/Doxyfile
80         rm -f intltool-extract intltool-merge intltool-update
81         rm -rf apidocs
82         rm -rf gen_ndr
83         rm -f tags
84
85 clean::
86         rm -f *~
87         rm -f */*~
88         rm -f */*/*~
89         rm -f doc/examples/mapi_sample1
90         rm -f doc/examples/fetchappointment
91         rm -f doc/examples/fetchmail
92
93 re:: clean install
94
95 #################################################################
96 # Suffixes compilation rules
97 #################################################################
98
99 .SUFFIXES: .c .o .h .po .idl .cpp
100
101 .idl.h:
102         @echo "Generating $@"
103         @$(PIDL) --outputdir=gen_ndr --header -- $<
104
105 .c.o:
106         @echo "Compiling $<"
107         @$(CC) $(CFLAGS) -c $< -o $@
108
109 .c.po:
110         @echo "Compiling $< with -fPIC"
111         @$(CC) $(CFLAGS) -fPIC -c $< -o $@
112
113 .cpp.po:
114         @echo "Compiling $< with -fPIC"
115         $(CXX) $(CXXFLAGS) -fPIC -c $< -o $@
116
117 #################################################################
118 # IDL compilation rules
119 #################################################################
120
121 idl: gen_ndr gen_ndr/ndr_exchange.h gen_ndr/ndr_property.h
122
123 exchange.idl: mapitags_enum.h mapicodes_enum.h
124
125 gen_ndr:
126         @echo "Creating the gen_ndr directory"
127         mkdir -p gen_ndr
128
129 gen_ndr/ndr_%.h gen_ndr/ndr_%.c: %.idl %.h
130         @echo "Generating $@"
131         @$(PIDL) --outputdir=gen_ndr --ndr-parser -- $<
132
133 gen_ndr/ndr_%_c.h gen_ndr/ndr_%_c.c: %.idl %.h
134         @echo "Generating $@"
135         @$(PIDL) --outputdir=gen_ndr --client -- $<
136
137 gen_ndr/ndr_%_s.c: %.idl
138         @echo "Generating $@"
139         @$(PIDL) --outputdir=gen_ndr --server -- $<
140
141
142
143 #################################################################
144 # libmapi compilation rules
145 #################################################################
146
147 LIBMAPI_SO_VERSION = 0
148
149 libmapi:        idl                                     \
150                 libmapi/version.h                       \
151                 libmapi/proto.h                         \
152                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)  
153
154 libmapi-install:        libmapi                 \
155                         libmapi-installpc       \
156                         libmapi-installlib      \
157                         libmapi-installheader   \
158                         libmapi-installscript
159
160 libmapi-uninstall:      libmapi-uninstallpc     \
161                         libmapi-uninstalllib    \
162                         libmapi-uninstallheader \
163                         libmapi-uninstallscript
164
165 libmapi-clean::
166         rm -f libmapi/*.o libmapi/*.po
167         rm -f libmapi/*.gcno libmapi/*.gcda libmapi/*.gcov
168         rm -f libmapi/tests/*.o libmapi/tests/*.po
169         rm -f libmapi/tests/*.gcno libmapi/tests/*.gcda
170         rm -f libmapi/socket/*.o libmapi/socket/*.po
171         rm -f libmapi/socket/*.gcno libmapi/socket/*.gcda
172         rm -f libmapi/util/*.o libmapi/util/*.po
173         rm -f libmapi/util/*.gcno libmapi/util/*.gcda
174         rm -f libmapi/version.h
175 ifneq ($(SNAPSHOT), no)
176         rm -f libmapi/utf8_convert.yy.c
177         rm -f libmapi/mapicode.c libmapi/mapicode.h
178         rm -f libmapi/mapitags.c libmapi/mapitags.h
179         rm -f libmapi/mapi_nameid.h libmapi/mapi_nameid_private.h
180         rm -f libmapi/proto.h
181         rm -f libmapi/proto_private.h
182         rm -f mapicodes_enum.h
183         rm -f mapitags_enum.h
184 endif
185         rm -f gen_ndr/ndr_exchange*
186         rm -f gen_ndr/exchange.h
187         rm -f gen_ndr/ndr_property*
188         rm -f gen_ndr/property.h
189         rm -f ndr_mapi.o ndr_mapi.po
190         rm -f ndr_mapi.gcno ndr_mapi.gcda
191         rm -f *~
192         rm -f */*~
193         rm -f */*/*~
194         rm -f libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) \
195                   libmapi.$(SHLIBEXT)
196
197 clean:: libmapi-clean
198
199 libmapi-distclean::
200         rm -f libmapi.pc
201
202 distclean:: libmapi-distclean
203
204 libmapi-installpc:
205         @echo "[*] install: libmapi pc files"
206         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
207         $(INSTALL) -m 0644 libmapi.pc $(DESTDIR)$(libdir)/pkgconfig
208
209 libmapi-installlib:
210         @echo "[*] install: libmapi library"
211         $(INSTALL) -d $(DESTDIR)$(libdir)
212         $(INSTALL) -m 0755 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
213         ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT)
214 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
215         ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
216 endif
217
218 libmapi-installheader:
219         @echo "[*] install: libmapi headers"
220         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi 
221         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi/socket 
222         $(INSTALL) -d $(DESTDIR)$(includedir)/gen_ndr
223         $(INSTALL) -m 0644 libmapi/dlinklist.h $(DESTDIR)$(includedir)/libmapi/
224         $(INSTALL) -m 0644 libmapi/libmapi.h $(DESTDIR)$(includedir)/libmapi/
225         $(INSTALL) -m 0644 libmapi/proto.h $(DESTDIR)$(includedir)/libmapi/
226         $(INSTALL) -m 0644 libmapi/nspi.h $(DESTDIR)$(includedir)/libmapi/
227         $(INSTALL) -m 0644 libmapi/emsmdb.h $(DESTDIR)$(includedir)/libmapi/
228         $(INSTALL) -m 0644 libmapi/mapi_ctx.h $(DESTDIR)$(includedir)/libmapi/
229         $(INSTALL) -m 0644 libmapi/mapi_provider.h $(DESTDIR)$(includedir)/libmapi/
230         $(INSTALL) -m 0644 libmapi/mapi_id_array.h $(DESTDIR)$(includedir)/libmapi/
231         $(INSTALL) -m 0644 libmapi/mapi_notification.h $(DESTDIR)$(includedir)/libmapi/
232         $(INSTALL) -m 0644 libmapi/mapi_object.h $(DESTDIR)$(includedir)/libmapi/
233         $(INSTALL) -m 0644 libmapi/mapi_profile.h $(DESTDIR)$(includedir)/libmapi/
234         $(INSTALL) -m 0644 libmapi/mapi_nameid.h $(DESTDIR)$(includedir)/libmapi/
235         $(INSTALL) -m 0644 libmapi/mapidefs.h $(DESTDIR)$(includedir)/libmapi/
236         $(INSTALL) -m 0644 libmapi/version.h $(DESTDIR)$(includedir)/libmapi/
237         $(INSTALL) -m 0644 libmapi/mapicode.h $(DESTDIR)$(includedir)/libmapi/
238         $(INSTALL) -m 0644 libmapi/socket/netif.h $(DESTDIR)$(includedir)/libmapi/socket/
239         $(INSTALL) -m 0644 gen_ndr/exchange.h $(DESTDIR)$(includedir)/gen_ndr/
240         $(INSTALL) -m 0644 gen_ndr/property.h $(DESTDIR)$(includedir)/gen_ndr/
241
242 libmapi-installscript:
243         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/profiles
244         $(INSTALL) -m 0644 setup/profiles/oc_profiles* $(DESTDIR)$(datadir)/setup/profiles/
245
246 libmapi-uninstallpc:
247         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi.pc
248
249 libmapi-uninstalllib:
250         rm -f $(DESTDIR)$(libdir)/libmapi.*
251
252 libmapi-uninstallheader:
253         rm -rf $(DESTDIR)$(includedir)/libmapi
254         rm -f $(DESTDIR)$(includedir)/gen_ndr/exchange.h
255         rm -f $(DESTDIR)$(includedir)/gen_ndr/property.h
256
257 libmapi-uninstallscript:
258         rm -f $(DESTDIR)$(datadir)/setup/profiles/oc_profiles*
259         rm -rf $(DESTDIR)$(datadir)/setup/profiles
260
261 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION):                 \
262         libmapi/IABContainer.po                         \
263         libmapi/IProfAdmin.po                           \
264         libmapi/IMAPIContainer.po                       \
265         libmapi/IMAPIFolder.po                          \
266         libmapi/IMAPIProp.po                            \
267         libmapi/IMAPISession.po                         \
268         libmapi/IMAPISupport.po                         \
269         libmapi/IStream.po                              \
270         libmapi/IMAPITable.po                           \
271         libmapi/IMessage.po                             \
272         libmapi/IMsgStore.po                            \
273         libmapi/IStoreFolder.po                         \
274         libmapi/IUnknown.po                             \
275         libmapi/IMSProvider.po                          \
276         libmapi/IXPLogon.po                             \
277         libmapi/FXICS.po                                \
278         libmapi/utils.po                                \
279         libmapi/property.po                             \
280         libmapi/cdo_mapi.po                             \
281         libmapi/lzfu.po                                 \
282         libmapi/mapi_object.po                          \
283         libmapi/mapi_id_array.po                        \
284         libmapi/mapitags.po                             \
285         libmapi/mapidump.po                             \
286         libmapi/mapicode.po                             \
287         libmapi/mapi_nameid.po                          \
288         libmapi/emsmdb.po                               \
289         libmapi/nspi.po                                 \
290         libmapi/simple_mapi.po                          \
291         libmapi/util/lcid.po                            \
292         libmapi/util/codepage.po                        \
293         libmapi/freebusy.po                             \
294         libmapi/x500.po                                 \
295         ndr_mapi.po                                     \
296         gen_ndr/ndr_exchange.po                         \
297         gen_ndr/ndr_exchange_c.po                       \
298         gen_ndr/ndr_property.po                         \
299         libmapi/socket/interface.po                     \
300         libmapi/socket/netif.po                         \
301         libmapi/utf8_convert.yy.po
302         @echo "Linking $@"
303         @$(CC) $(DSOOPT) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
304
305
306 libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
307         ln -fs $< $@
308
309 libmapi/version.h: VERSION
310         @./script/mkversion.sh  VERSION libmapi/version.h $(PACKAGE_VERSION) $(top_builddir)/
311
312 libmapi/utf8_convert.yy.c:      libmapi/utf8_convert.l
313         @echo "Generating $@"
314         @$(FLEX) -Plibmapi_utf8_convert_ -t $< > $@
315
316 # Avoid warnings:
317 libmapi/utf8_convert.yy.o: CFLAGS=
318 libmapi/utf8_convert.yy.po: CFLAGS=
319
320 libmapi/proto.h libmapi/proto_private.h:                \
321         libmapi/nspi.c                                  \
322         libmapi/emsmdb.c                                \
323         libmapi/cdo_mapi.c                              \
324         libmapi/simple_mapi.c                           \
325         libmapi/mapitags.c                              \
326         libmapi/mapicode.c                              \
327         libmapi/mapidump.c                              \
328         libmapi/mapi_object.c                           \
329         libmapi/mapi_id_array.c                         \
330         libmapi/mapi_nameid.c                           \
331         libmapi/property.c                              \
332         libmapi/IABContainer.c                          \
333         libmapi/IProfAdmin.c                            \
334         libmapi/IMAPIContainer.c                        \
335         libmapi/IMAPIFolder.c                           \
336         libmapi/IMAPIProp.c                             \
337         libmapi/IMAPISession.c                          \
338         libmapi/IMAPISupport.c                          \
339         libmapi/IMAPITable.c                            \
340         libmapi/IMSProvider.c                           \
341         libmapi/IMessage.c                              \
342         libmapi/IMsgStore.c                             \
343         libmapi/IStoreFolder.c                          \
344         libmapi/IUnknown.c                              \
345         libmapi/IStream.c                               \
346         libmapi/IXPLogon.c                              \
347         libmapi/FXICS.c                                 \
348         libmapi/freebusy.c                              \
349         libmapi/x500.c                                  \
350         libmapi/lzfu.c                                  \
351         libmapi/utils.c                                 \
352         libmapi/util/lcid.c                             \
353         libmapi/util/codepage.c                         \
354         libmapi/socket/interface.c                      \
355         libmapi/socket/netif.c          
356         @echo "Generating $@"
357         @./script/mkproto.pl --private=libmapi/proto_private.h --public=libmapi/proto.h $^
358
359 libmapi/emsmdb.c: libmapi/emsmdb.h gen_ndr/ndr_exchange_c.h
360
361 libmapi/mapitags.c libmapi/mapicode.c mapitags_enum.h mapicodes_enum.h: \
362         libmapi/conf/mapi-properties                                    \
363         libmapi/conf/mapi-codes                                         \
364         libmapi/conf/mapi-named-properties                              \
365         libmapi/conf/mparse.pl
366         @./libmapi/conf/build.sh
367
368 #################################################################
369 # libmapi++ compilation rules
370 #################################################################
371
372 LIBMAPIPP_SO_VERSION = 0
373
374 libmapixx: libmapi \
375         libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
376         libmapixx-tests \
377         libmapixx-examples
378
379 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION):       \
380         libmapi++/src/attachment.po             \
381         libmapi++/src/folder.po                 \
382         libmapi++/src/mapi_exception.po         \
383         libmapi++/src/message.po                \
384         libmapi++/src/object.po                 \
385         libmapi++/src/session.po
386         @echo "Linking $@"
387         @$(CXX) $(DSOOPT) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION) -o $@ $^ $(LIBS)
388
389 libmapixx-installpc:
390
391 libmapixx-clean: libmapixx-tests-clean
392
393 libmapixx-install: libmapixx-installheader libmapixx-installlib
394
395 libmapixx-uninstall: libmapixx-uninstallheader libmapixx-uninstalllib
396
397 libmapixx-installheader:
398         @echo "[*] install: libmapi++ headers"
399         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++
400         $(INSTALL) -m 0644 libmapi++/attachment.h $(DESTDIR)$(includedir)/libmapi++/
401         $(INSTALL) -m 0644 libmapi++/clibmapi.h $(DESTDIR)$(includedir)/libmapi++/
402         $(INSTALL) -m 0644 libmapi++/folder.h $(DESTDIR)$(includedir)/libmapi++/
403         $(INSTALL) -m 0644 libmapi++/libmapi++.h $(DESTDIR)$(includedir)/libmapi++/
404         $(INSTALL) -m 0644 libmapi++/mapi_exception.h $(DESTDIR)$(includedir)/libmapi++/
405         $(INSTALL) -m 0644 libmapi++/message.h $(DESTDIR)$(includedir)/libmapi++/
406         $(INSTALL) -m 0644 libmapi++/message_store.h $(DESTDIR)$(includedir)/libmapi++/
407         $(INSTALL) -m 0644 libmapi++/object.h $(DESTDIR)$(includedir)/libmapi++/
408         $(INSTALL) -m 0644 libmapi++/profile.h $(DESTDIR)$(includedir)/libmapi++/
409         $(INSTALL) -m 0644 libmapi++/property_container.h $(DESTDIR)$(includedir)/libmapi++/
410         $(INSTALL) -m 0644 libmapi++/session.h $(DESTDIR)$(includedir)/libmapi++/
411
412 libmapixx-installlib:
413         @echo "[*] install: libmapi++ library"
414         $(INSTALL) -d $(DESTDIR)$(libdir)
415         $(INSTALL) -m 0755 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
416         ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapipp.$(SHLIBEXT)
417 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
418         ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION)
419 endif
420
421 libmapixx-uninstallheader:
422         rm -rf $(DESTDIR)$(includedir)/libmapi++
423
424 libmapixx-uninstalllib:
425         rm -f $(DESTDIR)$(libdir)/libmapipp.*
426
427 libmapixx-tests:        libmapixx-test          \
428                         libmapixx-attach        \
429                         libmapixx-exception
430
431 libmapixx-tests-clean:  libmapixx-test-clean    \
432                         libmapixx-attach-clean  \
433                         libmapixx-exception-clean 
434
435 libmapixx-test: bin/libmapixx-test
436
437 libmapixx-test-clean:
438         rm -f bin/libmapixx-test
439         rm -f libmapi++/tests/*.o
440
441 clean:: libmapixx-tests-clean
442
443 bin/libmapixx-test:     libmapi++/tests/test.cpp        \
444                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
445                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
446         @echo "Linking sample application $@"
447         @$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) 
448
449 clean:: libmapixx-test-clean
450
451 libmapixx-attach: bin/libmapixx-attach
452
453 libmapixx-attach-clean:
454         rm -f bin/libmapixx-attach
455         rm -f libmapi++/tests/*.o
456
457 bin/libmapixx-attach: libmapi++/tests/attach_test.po    \
458                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
459                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
460         @echo "Linking sample application $@"
461         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
462
463 clean:: libmapixx-attach-clean
464
465 libmapixx-exception: bin/libmapixx-exception
466  
467 bin/libmapixx-exception: libmapi++/tests/exception_test.cpp \
468                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
469                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
470         @echo "Linking exception test application $@"
471         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
472
473 libmapixx-exception-clean:
474         rm -f bin/libmapixx-exception
475         rm -f libmapi++/tests/*.o
476
477 clean:: libmapixx-exception-clean
478
479 libmapixx-examples: libmapi++/examples/foldertree \
480                   libmapi++/examples/messages
481
482 libmapixx-foldertree-clean:
483         rm -f libmapi++/examples/foldertree
484         rm -f libmapi++/examples/*.o
485
486 libmapixx-messages-clean:
487         rm -f libmapi++/examples/messages
488         rm -f libmapi++/examples/*.o
489
490 libmapi++/examples/foldertree: libmapi++/examples/foldertree.cpp        \
491                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
492                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
493         @echo "Linking foldertree example application $@"
494         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
495
496 clean:: libmapixx-foldertree-clean
497
498 libmapi++/examples/messages: libmapi++/examples/messages.cpp    \
499                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
500                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
501         @echo "Linking messages example application $@"
502         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
503
504 clean:: libmapixx-messages-clean
505
506 #################################################################
507 # libmapiadmin compilation rules
508 #################################################################
509
510 LIBMAPIADMIN_SO_VERSION = 0
511
512 libmapiadmin:   libmapiadmin/proto.h                            \
513                 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
514
515 libmapiadmin-install:   libmapiadmin-installpc          \
516                         libmapiadmin-installlib         \
517                         libmapiadmin-installheader
518
519 libmapiadmin-uninstall: libmapiadmin-uninstallpc        \
520                         libmapiadmin-uninstalllib       \
521                         libmapiadmin-uninstallheader
522
523 libmapiadmin-clean::
524         rm -f libmapiadmin/*.o libmapiadmin/*.po
525         rm -f libmapiadmin/*.gcno libmapiadmin/*.gcda
526 ifneq ($(SNAPSHOT), no)
527         rm -f libmapiadmin/proto.h
528         rm -f libmapiadmin/proto_private.h
529 endif
530         rm -f libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) \
531                   libmapiadmin.$(SHLIBEXT)
532
533 clean:: libmapiadmin-clean
534
535 libmapiadmin-distclean::
536         rm -f libmapiadmin.pc
537
538 distclean:: libmapiadmin-distclean
539
540 libmapiadmin-installpc:
541         @echo "[*] install: libmapiadmin pc files"
542         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
543         $(INSTALL) -m 0644 libmapiadmin.pc $(DESTDIR)$(libdir)/pkgconfig
544
545 libmapiadmin-installlib:
546         @echo "[*] install: libmapiadmin library"
547         $(INSTALL) -d $(DESTDIR)$(libdir)
548         $(INSTALL) -m 0755 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
549         ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT)
550 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
551         ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
552 endif
553
554 libmapiadmin-installheader:
555         @echo "[*] install: libmapiadmin headers"
556         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapiadmin 
557         $(INSTALL) -m 0644 libmapiadmin/proto.h $(DESTDIR)$(includedir)/libmapiadmin/
558         $(INSTALL) -m 0644 libmapiadmin/libmapiadmin.h $(DESTDIR)$(includedir)/libmapiadmin/
559
560 libmapiadmin-uninstallpc:
561         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiadmin.pc
562
563 libmapiadmin-uninstalllib:
564         rm -f $(DESTDIR)$(libdir)/libmapiadmin.*
565
566 libmapiadmin-uninstallheader:
567         rm -rf $(DESTDIR)$(includedir)/libmapiadmin
568
569 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION):    \
570         libmapiadmin/mapiadmin_user.po          \
571         libmapiadmin/mapiadmin.po               \
572         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
573         @echo "Linking $@"
574         @$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS) 
575
576 libmapiadmin/proto.h libmapiadmin/proto_private.h:      \
577         libmapiadmin/mapiadmin.c                        \
578         libmapiadmin/mapiadmin_user.c                   
579         @echo "Generating $@"
580         @./script/mkproto.pl -private=libmapiadmin/proto_private.h --public=libmapiadmin/proto.h $^
581
582
583
584 #################################################################
585 # libocpf compilation rules
586 #################################################################
587
588 LIBOCPF_SO_VERSION = 0
589
590 libocpf:        libocpf/proto.h                         \
591                 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
592
593 libocpf-install:        libocpf-installpc       \
594                         libocpf-installlib      \
595                         libocpf-installheader
596
597 libocpf-uninstall:      libocpf-uninstallpc     \
598                         libocpf-uninstalllib    \
599                         libocpf-uninstallheader
600
601 libocpf-clean::
602         rm -f libocpf/*.o libocpf/*.po
603         rm -f libocpf/*.gcno libocpf/*.gcda
604 ifneq ($(SNAPSHOT), no)
605         rm -f libocpf/lex.yy.c
606         rm -f libocpf/ocpf.tab.c libocpf/ocpf.tab.h
607         rm -f libocpf/proto.h
608         rm -f libocpf/proto_private.h
609 endif
610         rm -f libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) \
611                   libocpf.$(SHLIBEXT)
612
613 clean:: libocpf-clean
614
615 libocpf-distclean::
616         rm -f libocpf.pc
617
618 distclean:: libocpf-distclean
619
620 libocpf-installpc:
621         @echo "[*] install: libocpf pc files"
622         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
623         $(INSTALL) -m 0644 libocpf.pc $(DESTDIR)$(libdir)/pkgconfig
624
625 libocpf-installlib:
626         @echo "[*] install: libocpf library"
627         $(INSTALL) -d $(DESTDIR)$(libdir)
628         $(INSTALL) -m 0755 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
629         ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT)
630 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
631         ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION)
632 endif
633
634 libocpf-installheader:
635         @echo "[*] install: libocpf headers"
636         $(INSTALL) -d $(DESTDIR)$(includedir)/libocpf
637         $(INSTALL) -m 0644 libocpf/ocpf.h $(DESTDIR)$(includedir)/libocpf/
638         $(INSTALL) -m 0644 libocpf/proto.h $(DESTDIR)$(includedir)/libocpf/
639
640 libocpf-uninstallpc:
641         rm -f $(DESTDIR)$(libdir)/pkgconfig/libocpf.pc
642
643 libocpf-uninstalllib:
644         rm -f $(DESTDIR)$(libdir)/libocpf.*
645
646 libocpf-uninstallheader:
647         rm -rf $(DESTDIR)$(includedir)/libocpf
648
649 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION):         \
650         libocpf/ocpf.tab.po                     \
651         libocpf/lex.yy.po                       \
652         libocpf/ocpf_public.po                  \
653         libocpf/ocpf_dump.po                    \
654         libocpf/ocpf_api.po                     \
655         libocpf/ocpf_write.po                   \
656         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
657         @echo "Linking $@"
658         @$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
659
660 libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION): libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
661         ln -fs $< $@
662
663 libocpf/proto.h:        libocpf/ocpf_public.c   \
664                         libocpf/ocpf_dump.c     \
665                         libocpf/ocpf_api.c      \
666                         libocpf/ocpf_write.c
667                         @echo "Generating $@"
668                         @./script/mkproto.pl --private=libocpf/proto_private.h \
669                         --public=libocpf/proto.h $^
670
671 libocpf/lex.yy.c:               libocpf/lex.l
672         @echo "Generating $@"
673         @$(FLEX) -t $< > $@
674
675 libocpf/ocpf.tab.c:     libocpf/ocpf.y
676         @echo "Generating $@"
677         @$(BISON) -pocpf_yy -d $< -o $@
678
679 # Avoid warnings
680 libocpf/lex.yy.o: CFLAGS=
681 libocpf/ocpf.tab.o: CFLAGS=
682
683
684
685 #################################################################
686 # torture suite compilation rules
687 #################################################################
688
689 torture:        torture/torture_proto.h         \
690                 torture/openchange.$(SHLIBEXT)
691
692 torture-install:
693         @echo "[*] install: openchange torture suite"
694         $(INSTALL) -d $(DESTDIR)$(TORTURE_MODULESDIR)
695         $(INSTALL) -m 0755 torture/openchange.$(SHLIBEXT) $(DESTDIR)$(TORTURE_MODULESDIR)
696
697 torture-uninstall:
698         rm -f $(DESTDIR)$(TORTURE_MODULESDIR)/openchange.*
699
700 torture-clean::
701         rm -f torture/*.$(SHLIBEXT)
702 ifneq ($(SNAPSHOT), no)
703         rm -f torture/torture_proto.h
704 endif
705         rm -f torture/*.o torture/*.po torture/*.gcno torture/*.gcda
706
707 clean:: torture-clean
708
709 torture/openchange.$(SHLIBEXT):                 \
710         torture/nspi_profile.po                 \
711         torture/nspi_resolvenames.po            \
712         torture/mapi_restrictions.po            \
713         torture/mapi_criteria.po                \
714         torture/mapi_copymail.po                \
715         torture/mapi_sorttable.po               \
716         torture/mapi_bookmark.po                \
717         torture/mapi_fetchmail.po               \
718         torture/mapi_sendmail.po                \
719         torture/mapi_sendmail_html.po           \
720         torture/mapi_deletemail.po              \
721         torture/mapi_newmail.po                 \
722         torture/mapi_sendattach.po              \
723         torture/mapi_fetchattach.po             \
724         torture/mapi_fetchappointment.po        \
725         torture/mapi_sendappointment.po         \
726         torture/mapi_fetchcontacts.po           \
727         torture/mapi_sendcontacts.po            \
728         torture/mapi_fetchtasks.po              \
729         torture/mapi_sendtasks.po               \
730         torture/mapi_common.po                  \
731         torture/mapi_permissions.po             \
732         torture/mapi_createuser.po              \
733         torture/exchange_createuser.po          \
734         torture/mapi_namedprops.po              \
735         torture/mapi_recipient.po               \
736         torture/openchange.po                   \
737         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
738         @echo "Linking $@"
739         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
740
741 torture/torture_proto.h: torture/mapi_restrictions.c    \
742         torture/mapi_criteria.c         \
743         torture/mapi_deletemail.c       \
744         torture/mapi_newmail.c          \
745         torture/mapi_fetchmail.c        \
746         torture/mapi_sendattach.c       \
747         torture/mapi_sorttable.c        \
748         torture/mapi_bookmark.c         \
749         torture/mapi_copymail.c         \
750         torture/mapi_fetchattach.c      \
751         torture/mapi_sendmail.c         \
752         torture/mapi_sendmail_html.c    \
753         torture/nspi_profile.c          \
754         torture/nspi_resolvenames.c     \
755         torture/mapi_fetchappointment.c \
756         torture/mapi_sendappointment.c  \
757         torture/mapi_fetchcontacts.c    \
758         torture/mapi_sendcontacts.c     \
759         torture/mapi_fetchtasks.c       \
760         torture/mapi_sendtasks.c        \
761         torture/mapi_common.c           \
762         torture/mapi_permissions.c      \
763         torture/mapi_namedprops.c       \
764         torture/mapi_recipient.c        \
765         torture/mapi_createuser.c       \
766         torture/exchange_createuser.c   \
767         torture/openchange.c
768         @echo "Generating $@"
769         @./script/mkproto.pl --private=torture/torture_proto.h --public=torture/torture_proto.h $^
770
771 #################################################################
772 # mapiproxy compilation rules
773 #################################################################
774 LIBMAPIPROXY_SO_VERSION = 0
775 LIBMAPISERVER_SO_VERSION = 0
776
777 .PHONY: mapiproxy
778
779 mapiproxy:              idl                                     \
780                         libmapiproxy                            \
781                         libmapiserver                           \
782                         libmapistore                            \
783                         mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)  \
784                         mapiproxy-modules                       \
785                         mapiproxy-servers
786
787 mapiproxy-install:      mapiproxy                               \
788                         mapiproxy-modules-install               \
789                         mapiproxy-servers-install               \
790                         libmapiproxy-install                    \
791                         libmapiserver-install                   \
792                         libmapistore-install
793         $(INSTALL) -d $(DESTDIR)$(SERVER_MODULESDIR)
794         $(INSTALL) -m 0755 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
795
796 mapiproxy-uninstall:    mapiproxy-modules-uninstall             \
797                         mapiproxy-servers-uninstall             \
798                         libmapiproxy-uninstall                  \
799                         libmapiserver-uninstall                 \
800                         libmapistore-uninstall
801         rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_mapiproxy.*
802         rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
803         rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
804
805 mapiproxy-clean::       mapiproxy-modules-clean                 \
806                         mapiproxy-servers-clean                 \
807                         libmapiproxy-clean                      \
808                         libmapiserver-clean                     \
809                         libmapistore-clean
810         rm -f mapiproxy/*.o mapiproxy/*.po
811         rm -f mapiproxy/*.gcno mapiproxy/*.gcda
812         rm -f mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)
813
814 clean:: mapiproxy-clean
815
816
817 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT):         mapiproxy/dcesrv_mapiproxy.po           \
818                                                 mapiproxy/dcesrv_mapiproxy_nspi.po      \
819                                                 mapiproxy/dcesrv_mapiproxy_rfr.po       \
820                                                 mapiproxy/dcesrv_mapiproxy_unused.po    \
821                                                 ndr_mapi.po                             \
822                                                 gen_ndr/ndr_exchange.po                         
823
824         @echo "Linking $@"
825         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
826
827 mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
828
829
830 ###############
831 # libmapiproxy
832 ###############
833
834 libmapiproxy: mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
835
836 libmapiproxy-install:
837         $(INSTALL) -m 0755 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
838         ln -sf libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiproxy.$(SHLIBEXT)
839         $(INSTALL) -m 0644 mapiproxy/libmapiproxy/libmapiproxy.h $(DESTDIR)$(includedir)/
840         $(INSTALL) -m 0644 mapiproxy/libmapiproxy.pc $(DESTDIR)$(libdir)/pkgconfig
841
842 libmapiproxy-clean:
843         rm -f mapiproxy/libmapiproxy/*.po mapiproxy/libmapiproxy/*.o
844         rm -f mapiproxy/libmapiproxy/*.gcno mapiproxy/libmapiproxy/*.gcda
845 ifneq ($(SNAPSHOT), no)
846         rm -f mapiproxy/libmapiproxy/openchangedb_property.c
847 endif
848         rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
849         rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION)
850
851 libmapiproxy-uninstall:
852         rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
853         rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
854         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiproxy.pc
855
856 libmapiproxy-distclean:
857         rm -f mapiproxy/libmapiproxy.pc
858
859 distclean::libmapiproxy-distclean
860
861 mapiproxy/libmapiproxy/openchangedb_property.c: libmapi/conf/mapi-properties libmapi/conf/mparse.pl
862         @./libmapi/conf/mparse.pl --parser=openchangedb_property --outputdir=mapiproxy/libmapiproxy/ \
863                                   libmapi/conf/mapi-properties
864
865 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION):  mapiproxy/libmapiproxy/dcesrv_mapiproxy_module.po       \
866                                                         mapiproxy/libmapiproxy/dcesrv_mapiproxy_server.po       \
867                                                         mapiproxy/libmapiproxy/dcesrv_mapiproxy_session.po      \
868                                                         mapiproxy/libmapiproxy/openchangedb.po                  \
869                                                         mapiproxy/libmapiproxy/openchangedb_property.po         \
870                                                         mapiproxy/libmapiproxy/mapi_handles.po                  \
871                                                         mapiproxy/libmapiproxy/entryid.po                       \
872                                                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
873         @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS) $(TDB_LIBS)
874
875 mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION): libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
876         ln -fs $< $@
877
878
879 #################
880 # libmapiserver
881 #################
882
883 libmapiserver: mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
884
885 libmapiserver-install:
886         $(INSTALL) -m 0755 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
887         ln -sf libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiserver.$(SHLIBEXT)
888         $(INSTALL) -m 0644 mapiproxy/libmapiserver/libmapiserver.h $(DESTDIR)$(includedir)/
889         $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
890
891 libmapiserver-clean:
892         rm -f mapiproxy/libmapiserver/*.po mapiproxy/libmapiserver/*.o
893         rm -f mapiproxy/libmapiserver/*.gcno mapiproxy/libmapiserver/*.gcda
894         rm -f mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
895         rm -f mapiproxy/libmapiserver.$(SHLIBEXT).$(LIBMAPISERVER_SO_VERSION)
896
897 libmapiserver-uninstall:
898         rm -f $(DESTDIR)$(libdir)/libmapiserver.*
899         rm -f $(DESTDIR)$(includedir)/libmapiserver.h
900         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiserver.pc
901
902 libmapiserver-distclean:
903         rm -f mapiproxy/libmapiserver.pc
904
905 distclean:: libmapiserver-distclean
906
907 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/libmapiserver/libmapiserver_oxcstor.po        \
908                                                         mapiproxy/libmapiserver/libmapiserver_oxcprpt.po        \
909                                                         mapiproxy/libmapiserver/libmapiserver_oxcfold.po        \
910                                                         mapiproxy/libmapiserver/libmapiserver_oxctabl.po        \
911                                                         mapiproxy/libmapiserver/libmapiserver_oxcmsg.po         \
912                                                         mapiproxy/libmapiserver/libmapiserver_oxcnotif.po       \
913                                                         mapiproxy/libmapiserver/libmapiserver_oxorule.po         \
914                                                         ndr_mapi.po                             \
915                                                         gen_ndr/ndr_exchange.po
916         @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiserver.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ $(LIBS)
917
918 mapiproxy/libmapiserver.$(SHLIBEXT).$(LIBMAPISERVER_SO_VERSION): libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
919         ln -fs $< $@
920
921
922 ################
923 # libmapistore
924 ################
925 LIBMAPISTORE_SO_VERSION = 0
926
927 libmapistore:   mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)   \
928                 $(OC_MAPISTORE)                                         \
929                 mapistore_test
930
931 libmapistore-install:   $(OC_MAPISTORE_INSTALL)
932         $(INSTALL) -m 0755 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
933         ln -sf libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapistore.$(SHLIBEXT)
934         $(INSTALL) -d $(DESTDIR)$(includedir)/mapistore
935         $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore.h $(DESTDIR)$(includedir)/mapistore/
936         $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore_errors.h $(DESTDIR)$(includedir)/mapistore/
937         $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
938
939 libmapistore-clean:     $(OC_MAPISTORE_CLEAN)
940         rm -f mapiproxy/libmapistore/*.po mapiproxy/libmapistore/*.o
941         rm -f mapiproxy/libmapistore/*.gcno mapiproxy/libmapistore/*.gcda
942         rm -f mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
943         rm -f mapiproxy/libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION)
944
945 libmapistore-uninstall: $(OC_MAPISTORE_UNINSTALL)
946         rm -f $(DESTDIR)$(libdir)/libmapistore.*
947         rm -rf $(DESTDIR)$(includedir)/mapistore
948         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapistore.pc
949
950 libmapistore-distclean: libmapistore-clean
951         rm -f mapiproxy/libmapistore.pc
952
953 distclean:: libmapistore-distclean
954
955 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION):  mapiproxy/libmapistore/mapistore_interface.po   \
956                                                         mapiproxy/libmapistore/mapistore_processing.po  \
957                                                         mapiproxy/libmapistore/mapistore_backend.po     \
958                                                         mapiproxy/libmapistore/mapistore_tdb_wrap.po
959         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION) $^ -L. $(LIBS) $(TDB_LIBS)
960
961 mapiproxy/libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION): libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
962         ln -fs $< $@
963
964 #####################
965 # mapistore backends
966 #####################
967
968 mapistore_sqlite3: mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT)
969
970 mapistore_sqlite3-install:
971         $(INSTALL) -d $(DESTDIR)$(libdir)/mapistore_backends
972         $(INSTALL) -m 0755 mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT) $(DESTDIR)$(libdir)/mapistore_backends/
973
974 mapistore_sqlite3-uninstall:
975         rm -rf $(DESTDIR)$(libdir)/mapistore_backends
976
977 mapistore_sqlite3-clean:
978         rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.o
979         rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.po
980         rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.gcno
981         rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.gcda
982
983 clean:: mapistore_sqlite3-clean
984
985 mapistore_sqlite3-distclean: mapistore_sqlite3-clean
986         rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.so
987
988 distclean:: mapistore_sqlite3-distclean
989
990 mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT): mapiproxy/libmapistore/backends/mapistore_sqlite3.po
991         @echo "Linking mapistore module $@"
992         @$(CC) $(SQLITE_CFLAGS) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) $(SQLITE_LIBS)        \
993         -Lmapiproxy mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
994
995 #######################
996 # mapistore test tools
997 #######################
998
999 mapistore_test: bin/mapistore_test
1000
1001 bin/mapistore_test:     mapiproxy/libmapistore/tests/mapistore_test.o           \
1002                         mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
1003         @echo "Linking $@"
1004         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1005
1006 mapistore_clean:
1007         rm -f mapiproxy/libmapistore/tests/*.o
1008         rm -f mapiproxy/libmapistore/tests/*.gcno
1009         rm -f mapiproxy/libmapistore/tests/*.gcda
1010         rm -f bin/mapistore_test
1011
1012 clean:: mapistore_clean
1013
1014 ####################
1015 # mapiproxy modules
1016 ####################
1017
1018 mapiproxy-modules:      mapiproxy/modules/mpm_downgrade.$(SHLIBEXT)     \
1019                         mapiproxy/modules/mpm_pack.$(SHLIBEXT)          \
1020                         mapiproxy/modules/mpm_cache.$(SHLIBEXT)         \
1021                         mapiproxy/modules/mpm_dummy.$(SHLIBEXT)         
1022
1023 mapiproxy-modules-install: mapiproxy-modules
1024         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
1025         $(INSTALL) -m 0755 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
1026         $(INSTALL) -m 0755 mapiproxy/modules/mpm_pack.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
1027         $(INSTALL) -m 0755 mapiproxy/modules/mpm_cache.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
1028         $(INSTALL) -m 0755 mapiproxy/modules/mpm_dummy.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
1029
1030 mapiproxy-modules-uninstall:
1031         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy
1032
1033 mapiproxy-modules-clean::
1034         rm -f mapiproxy/modules/*.o mapiproxy/modules/*.po
1035         rm -f mapiproxy/modules/*.gcno mapiproxy/modules/*.gcda
1036         rm -f mapiproxy/modules/*.so
1037
1038 clean:: mapiproxy-modules-clean
1039
1040 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT): mapiproxy/modules/mpm_downgrade.po
1041         @echo "Linking $@"
1042         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1043
1044 mapiproxy/modules/mpm_pack.$(SHLIBEXT): mapiproxy/modules/mpm_pack.po   \
1045                                         ndr_mapi.po                     \
1046                                         gen_ndr/ndr_exchange.po
1047         @echo "Linking $@"
1048         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1049
1050 mapiproxy/modules/mpm_cache.$(SHLIBEXT): mapiproxy/modules/mpm_cache.po         \
1051                                          mapiproxy/modules/mpm_cache_ldb.po     \
1052                                          mapiproxy/modules/mpm_cache_stream.po  \
1053                                          ndr_mapi.po                            \
1054                                          gen_ndr/ndr_exchange.po
1055         @echo "Linking $@"
1056         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1057
1058 mapiproxy/modules/mpm_dummy.$(SHLIBEXT): mapiproxy/modules/mpm_dummy.po
1059         @echo "Linking $@"
1060         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1061
1062
1063 ####################
1064 # mapiproxy servers
1065 ####################
1066 provision-install: python-install
1067         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/AD
1068         $(INSTALL) -m 0644 setup/AD/oc_provision* $(DESTDIR)$(datadir)/setup/AD/
1069         $(INSTALL) -m 0644 setup/AD/prefixMap.txt $(DESTDIR)$(datadir)/setup/AD/
1070         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/openchangedb
1071         $(INSTALL) -m 0644 setup/openchangedb/oc_provision* $(DESTDIR)$(datadir)/setup/openchangedb/
1072
1073 provision-uninstall: python-uninstall
1074         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_configuration.ldif
1075         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema.ldif
1076         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_modify.ldif
1077         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_ADSC.ldif
1078         rm -f $(DESTDIR)$(datadir)/setup/AD/prefixMap.txt
1079         rm -rf $(DESTDIR)$(datadir)/setup/AD
1080         rm -rf $(DESTDIR)$(datadir)/setup/openchangedb
1081
1082 mapiproxy-servers:      mapiproxy/servers/exchange_nsp.$(SHLIBEXT)              \
1083                         mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT)           \
1084                         mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT)
1085
1086 mapiproxy-servers-install: mapiproxy-servers provision-install
1087         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1088         $(INSTALL) -m 0755 mapiproxy/servers/exchange_nsp.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1089         $(INSTALL) -m 0755 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1090         $(INSTALL) -m 0755 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1091
1092 mapiproxy-servers-uninstall: provision-uninstall
1093         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server
1094
1095 mapiproxy-servers-clean::
1096         rm -f mapiproxy/servers/default/nspi/*.o mapiproxy/servers/default/nspi/*.po
1097         rm -f mapiproxy/servers/default/nspi/*.gcno mapiproxy/servers/default/nspi/*.gcda
1098         rm -f mapiproxy/servers/default/emsmdb/*.o mapiproxy/servers/default/emsmdb/*.po
1099         rm -f mapiproxy/servers/default/emsmdb/*.gcno mapiproxy/servers/default/emsmdb/*.gcda
1100         rm -f mapiproxy/servers/default/rfr/*.o mapiproxy/servers/default/rfr/*.po
1101         rm -f mapiproxy/servers/default/rfr/*.gcno mapiproxy/servers/default/rfr/*.gcda
1102         rm -f mapiproxy/servers/*.so
1103
1104 clean:: mapiproxy-servers-clean
1105
1106 mapiproxy/servers/exchange_nsp.$(SHLIBEXT):     mapiproxy/servers/default/nspi/dcesrv_exchange_nsp.po   \
1107                                                 mapiproxy/servers/default/nspi/emsabp.po                \
1108                                                 mapiproxy/servers/default/nspi/emsabp_tdb.po            \
1109                                                 mapiproxy/servers/default/nspi/emsabp_property.po       
1110         @echo "Linking $@"
1111         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1112
1113 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT):  mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.po      \
1114                                                 mapiproxy/servers/default/emsmdb/emsmdbp.po                     \
1115                                                 mapiproxy/servers/default/emsmdb/emsmdbp_object.po              \
1116                                                 mapiproxy/servers/default/emsmdb/oxcstor.po                     \
1117                                                 mapiproxy/servers/default/emsmdb/oxcprpt.po                     \
1118                                                 mapiproxy/servers/default/emsmdb/oxcfold.po                     \
1119                                                 mapiproxy/servers/default/emsmdb/oxctabl.po                     \
1120                                                 mapiproxy/servers/default/emsmdb/oxcmsg.po                      \
1121                                                 mapiproxy/servers/default/emsmdb/oxcnotif.po                    \
1122                                                 mapiproxy/servers/default/emsmdb/oxorule.po                     
1123         @echo "Linking $@"
1124         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
1125                                                 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1126                                                 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
1127
1128 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT):  mapiproxy/servers/default/rfr/dcesrv_exchange_ds_rfr.po
1129         @echo "Linking $@"
1130         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1131
1132 #################################################################
1133 # Tools compilation rules
1134 #################################################################
1135
1136 ###################
1137 # openchangeclient
1138 ###################
1139
1140 openchangeclient:       bin/openchangeclient
1141
1142 openchangeclient-install:       openchangeclient
1143         $(INSTALL) -d $(DESTDIR)$(bindir) 
1144         $(INSTALL) -m 0755 bin/openchangeclient $(DESTDIR)$(bindir)
1145
1146 openchangeclient-uninstall:
1147         rm -f $(DESTDIR)$(bindir)/openchangeclient
1148
1149 openchangeclient-clean::
1150         rm -f bin/openchangeclient
1151         rm -f utils/openchangeclient.o
1152         rm -f utils/openchangeclient.gcno
1153         rm -f utils/openchangeclient.gcda
1154         rm -f utils/openchange-tools.o
1155         rm -f utils/openchange-tools.gcno
1156         rm -f utils/openchange-tools.gcda
1157
1158 clean:: openchangeclient-clean
1159
1160 bin/openchangeclient:   utils/openchangeclient.o                        \
1161                         utils/openchange-tools.o                        \
1162                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1163                         libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
1164         @echo "Linking $@"
1165         @$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1166
1167
1168 ##############
1169 # mapiprofile
1170 ##############
1171
1172 mapiprofile:            bin/mapiprofile
1173
1174 mapiprofile-install:    mapiprofile
1175         $(INSTALL) -d $(DESTDIR)$(bindir) 
1176         $(INSTALL) -m 0755 bin/mapiprofile $(DESTDIR)$(bindir)
1177
1178 mapiprofile-uninstall:
1179         rm -f $(DESTDIR)$(bindir)/mapiprofile
1180
1181 mapiprofile-clean::
1182         rm -f bin/mapiprofile
1183         rm -f utils/mapiprofile.o
1184         rm -f utils/mapiprofile.gcno
1185         rm -f utils/mapiprofile.gcda
1186
1187 clean:: mapiprofile-clean
1188
1189 bin/mapiprofile:        utils/mapiprofile.o                     \
1190                         utils/openchange-tools.o                \
1191                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1192         @echo "Linking $@"
1193         @$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1194
1195
1196 ###################
1197 #openchangepfadmin
1198 ###################
1199
1200 openchangepfadmin:      bin/openchangepfadmin
1201
1202 openchangepfadmin-install:      openchangepfadmin
1203         $(INSTALL) -d $(DESTDIR)$(bindir) 
1204         $(INSTALL) -m 0755 bin/openchangepfadmin $(DESTDIR)$(bindir)
1205
1206 openchangepfadmin-uninstall:
1207         rm -f $(DESTDIR)$(bindir)/openchangepfadmin
1208
1209 openchangepfadmin-clean::
1210         rm -f bin/openchangepfadmin
1211         rm -f utils/openchangepfadmin.o
1212         rm -f utils/openchangepfadmin.gcno
1213         rm -f utils/openchangepfadmin.gcda
1214
1215 clean:: openchangepfadmin-clean
1216
1217 bin/openchangepfadmin:  utils/openchangepfadmin.o                       \
1218                         utils/openchange-tools.o                        \
1219                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1220                         libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
1221         @echo "Linking $@"
1222         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt                  
1223
1224
1225 ###################
1226 # exchange2mbox
1227 ###################
1228
1229 exchange2mbox:          bin/exchange2mbox
1230
1231 exchange2mbox-install:  exchange2mbox
1232         $(INSTALL) -d $(DESTDIR)$(bindir)
1233         $(INSTALL) -m 0755 bin/exchange2mbox $(DESTDIR)$(bindir)
1234
1235 exchange2mbox-uninstall:
1236         rm -f $(DESTDIR)$(bindir)/exchange2mbox
1237
1238 exchange2mbox-clean::
1239         rm -f bin/exchange2mbox
1240         rm -f utils/exchange2mbox.o
1241         rm -f utils/exchange2mbox.gcno
1242         rm -f utils/exchange2mbox.gcda
1243         rm -f utils/openchange-tools.o
1244         rm -f utils/openchange-tools.gcno
1245         rm -f utils/openchange-tools.gcda
1246
1247 clean:: exchange2mbox-clean
1248
1249 bin/exchange2mbox:      utils/exchange2mbox.o                           \
1250                         utils/openchange-tools.o                        \
1251                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1252         @echo "Linking $@"
1253         @$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt  $(MAGIC_LIBS)
1254
1255
1256 ###################
1257 # exchange2ical
1258 ###################
1259
1260 exchange2ical:          bin/exchange2ical
1261
1262 exchange2ical-install:  exchange2ical
1263         $(INSTALL) -d $(DESTDIR)$(bindir)
1264         $(INSTALL) -m 0755 bin/exchange2ical $(DESTDIR)$(bindir)
1265
1266 exchange2ical-uninstall:
1267         rm -f $(DESTDIR)$(bindir)/exchange2ical
1268
1269 exchange2ical-clean::
1270         rm -f bin/exchange2ical
1271         rm -f utils/exchange2ical_tool.o
1272         rm -f utils/exchange2ical_tool.gcno
1273         rm -f utils/exchange2ical_tool.gcda
1274         rm -f libexchange2ical/libexchange2ical.o
1275         rm -f libexchange2ical/libexchange2ical.gcno
1276         rm -f libexchange2ical/libexchange2ical.gcda
1277         rm -f libexchange2ical/exchange2ical.o
1278         rm -f libexchange2ical/exchange2ical.gcno
1279         rm -f libexchange2ical/exchange2ical.gcda
1280         rm -f libexchange2ical/exchange2ical_utils.o
1281         rm -f libexchange2ical/exchange2ical_utils.gcno
1282         rm -f libexchange2ical/exchange2ical_utils.gcda
1283         rm -f libexchange2ical/exchange2ical_component.o
1284         rm -f libexchange2ical/exchange2ical_component.gcno
1285         rm -f libexchange2ical/exchange2ical_component.gcda
1286         rm -f libexchange2ical/exchange2ical_property.o
1287         rm -f libexchange2ical/exchange2ical_property.gcno
1288         rm -f libexchange2ical/exchange2ical_property.gcda
1289         rm -f libexchange2ical/libical2exchange.o
1290         rm -f libexchange2ical/libical2exchange.gcno
1291         rm -f libexchange2ical/libical2exchange.gcda
1292         rm -f libexchange2ical/ical2exchange.o
1293         rm -f libexchange2ical/ical2exchange.gcno
1294         rm -f libexchange2ical/ical2exchange.gcda
1295         rm -f libexchange2ical/ical2exchange_property.o
1296         rm -f libexchange2ical/ical2exchange_property.gcno
1297         rm -f libexchange2ical/ical2exchange_property.gcda
1298         rm -f libexchange2ical/openchange-tools.o
1299         rm -f libexchange2ical/openchange-tools.gcno
1300         rm -f libexchange2ical/openchange-tools.gcda
1301
1302
1303 clean:: exchange2ical-clean
1304
1305 bin/exchange2ical:      utils/exchange2ical_tool.o      \
1306                         libexchange2ical/libexchange2ical.o             \
1307                         libexchange2ical/exchange2ical.o                \
1308                         libexchange2ical/exchange2ical_component.o      \
1309                         libexchange2ical/exchange2ical_property.o       \
1310                         libexchange2ical/exchange2ical_utils.o          \
1311                         libexchange2ical/libical2exchange.o     \
1312                         libexchange2ical/ical2exchange.o        \
1313                         libexchange2ical/ical2exchange_property.o       \
1314                         utils/openchange-tools.o                        \
1315                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1316         @echo "Linking $@"
1317         @$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(ICAL_LIBS) -lpopt
1318
1319
1320 ###################
1321 # mapitest
1322 ###################
1323
1324 mapitest:       libmapi                 \
1325                 utils/mapitest/proto.h  \
1326                 bin/mapitest
1327
1328 mapitest-install:       mapitest
1329         $(INSTALL) -d $(DESTDIR)$(bindir)
1330         $(INSTALL) -m 0755 bin/mapitest $(DESTDIR)$(bindir)
1331
1332 mapitest-uninstall:
1333         rm -f $(DESTDIR)$(bindir)/mapitest
1334
1335 mapitest-clean:
1336         rm -f bin/mapitest
1337         rm -f utils/mapitest/*.o
1338         rm -f utils/mapitest/*.gcno
1339         rm -f utils/mapitest/*.gcda
1340         rm -f utils/mapitest/modules/*.o
1341         rm -f utils/mapitest/modules/*.gcno
1342         rm -f utils/mapitest/modules/*.gcda
1343 ifneq ($(SNAPSHOT), no)
1344         rm -f utils/mapitest/proto.h
1345         rm -f utils/mapitest/mapitest_proto.h
1346 endif
1347
1348 clean:: mapitest-clean
1349
1350 bin/mapitest:   utils/mapitest/mapitest.o                       \
1351                 utils/openchange-tools.o                        \
1352                 utils/mapitest/mapitest_suite.o                 \
1353                 utils/mapitest/mapitest_print.o                 \
1354                 utils/mapitest/mapitest_stat.o                  \
1355                 utils/mapitest/mapitest_common.o                \
1356                 utils/mapitest/module.o                         \
1357                 utils/mapitest/modules/module_oxcstor.o         \
1358                 utils/mapitest/modules/module_oxcfold.o         \
1359                 utils/mapitest/modules/module_oxomsg.o          \
1360                 utils/mapitest/modules/module_oxcmsg.o          \
1361                 utils/mapitest/modules/module_oxcprpt.o         \
1362                 utils/mapitest/modules/module_oxctable.o        \
1363                 utils/mapitest/modules/module_oxorule.o         \
1364                 utils/mapitest/modules/module_oxcnotif.o        \
1365                 utils/mapitest/modules/module_oxcfxics.o        \
1366                 utils/mapitest/modules/module_nspi.o            \
1367                 utils/mapitest/modules/module_noserver.o        \
1368                 utils/mapitest/modules/module_errorchecks.o     \
1369                 utils/mapitest/modules/module_lcid.o            \
1370                 utils/mapitest/modules/module_mapidump.o        \
1371                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          
1372         @echo "Linking $@"
1373         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1374
1375 utils/mapitest/proto.h:                                 \
1376         utils/mapitest/mapitest_suite.c                 \
1377         utils/mapitest/mapitest_print.c                 \
1378         utils/mapitest/mapitest_stat.c                  \
1379         utils/mapitest/mapitest_common.c                \
1380         utils/mapitest/module.c                         \
1381         utils/mapitest/modules/module_oxcstor.c         \
1382         utils/mapitest/modules/module_oxcfold.c         \
1383         utils/mapitest/modules/module_oxomsg.c          \
1384         utils/mapitest/modules/module_oxcmsg.c          \
1385         utils/mapitest/modules/module_oxcprpt.c         \
1386         utils/mapitest/modules/module_oxctable.c        \
1387         utils/mapitest/modules/module_oxorule.c         \
1388         utils/mapitest/modules/module_oxcnotif.c        \
1389         utils/mapitest/modules/module_oxcfxics.c        \
1390         utils/mapitest/modules/module_nspi.c            \
1391         utils/mapitest/modules/module_noserver.c        \
1392         utils/mapitest/modules/module_errorchecks.c     \
1393         utils/mapitest/modules/module_lcid.c            \
1394         utils/mapitest/modules/module_mapidump.c
1395         @echo "Generating $@"
1396         @./script/mkproto.pl --private=utils/mapitest/mapitest_proto.h --public=utils/mapitest/proto.h $^
1397
1398 #####################
1399 # openchangemapidump
1400 #####################
1401
1402 openchangemapidump:             bin/openchangemapidump
1403
1404 openchangemapidump-install:     openchangemapidump
1405         $(INSTALL) -d $(DESTDIR)$(bindir)
1406         $(INSTALL) -m 0755 bin/openchangemapidump $(DESTDIR)$(bindir)
1407
1408 openchangemapidump-uninstall:
1409         rm -f bin/openchangemapidump
1410         rm -f $(DESTDIR)$(bindir)/openchangemapidump
1411
1412 openchangemapidump-clean::
1413         rm -f bin/openchangemapidump
1414         rm -f utils/backup/openchangemapidump.o
1415         rm -f utils/backup/openchangemapidump.gcno
1416         rm -f utils/backup/openchangemapidump.gcda
1417         rm -f utils/backup/openchangebackup.o
1418         rm -f utils/backup/openchangebackup.gcno
1419         rm -f utils/backup/openchangebackup.gcda
1420
1421 clean:: openchangemapidump-clean
1422
1423 bin/openchangemapidump: utils/backup/openchangemapidump.o               \
1424                         utils/backup/openchangebackup.o                 \
1425                         utils/openchange-tools.o                        \
1426                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1427         @echo "Linking $@"
1428         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1429
1430
1431 ###############
1432 # schemaIDGUID
1433 ###############
1434
1435 schemaIDGUID:           bin/schemaIDGUID
1436
1437 schemaIDGUID-install:   schemaIDGUID
1438         $(INSTALL) -m 0755 bin/schemaIDGUID $(DESTDIR)$(bindir)
1439
1440 schemaIDGUID-uninstall:
1441         rm -f $(DESTDIR)$(bindir)/schemaIDGUID
1442
1443 schemaIDGUID-clean::
1444         rm -f bin/schemaIDGUID
1445         rm -f utils/schemaIDGUID.o
1446         rm -f utils/schemaIDGUID.gcno
1447         rm -f utils/schemaIDGUID.gcda
1448
1449 clean:: schemaIDGUID-clean
1450
1451 bin/schemaIDGUID: utils/schemaIDGUID.o
1452         @echo "Linking $@"
1453         @$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
1454
1455
1456 ##################
1457 # locale_codepage
1458 ##################
1459
1460 locale_codepage:        bin/locale_codepage
1461
1462 locale_codepage-install:        locale_codepage
1463         $(INSTALL) -m 0755 bin/locale_codepage $(DESTDIR)$(bindir)
1464
1465 locale_codepage-uninstall:
1466         rm -f bin/locale_codepage
1467         rm -f $(DESTDIR)$(bindir)/locale_codepage
1468
1469 locale_codepage-clean::
1470         rm -f bin/locale_codepage
1471         rm -f libmapi/tests/locale_codepage.o
1472
1473 clean:: locale_codepage-clean
1474
1475 bin/locale_codepage: libmapi/tests/locale_codepage.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1476         @echo "Linking $@"
1477         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1478
1479 ###################
1480 # python code
1481 ###################
1482
1483 pythonscriptdir = python
1484
1485 pymapi: $(pythonscriptdir)/mapi.$(SHLIBEXT)
1486
1487 pymapi/%: CFLAGS+=`$(PYTHON_CONFIG) --cflags` -fPIC
1488
1489 $(pythonscriptdir)/mapi.$(SHLIBEXT): $(patsubst %.c,%.o,$(wildcard pymapi/*.c)) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1490         $(CC) -o $@ $^ `$(PYTHON_CONFIG) --libs` $(DSOOPT)
1491
1492 pymapi-install::
1493         $(INSTALL) -d $(DESTDIR)$(PYCDIR)
1494         $(INSTALL) -m 0755 $(pythonscriptdir)/mapi.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)
1495
1496 pymapi-uninstall::
1497         rm -f $(DESTDIR)$(PYCDIR)/mapi.$(SHLIBEXT)
1498
1499 PYTHON_MODULES = $(patsubst $(pythonscriptdir)/%,%,$(shell find  $(pythonscriptdir) -name "*.py"))
1500
1501 python-install::
1502         @echo "Installing Python modules"
1503         @$(foreach MODULE, $(PYTHON_MODULES), \
1504                 $(INSTALL) -d $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1505                 $(INSTALL) -m 0644 $(pythonscriptdir)/$(MODULE) $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1506         )
1507
1508 python-uninstall::
1509         rm -rf $(DESTDIR)$(pythondir)/openchange
1510
1511 EPYDOC_OPTIONS = --no-private --url http://www.openchange.org/ --no-sourcecode
1512
1513 epydoc::
1514         PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) epydoc $(EPYDOC_OPTIONS) openchange
1515
1516 check-python:
1517         PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) trial openchange
1518
1519 check:: check-python
1520
1521 ###################
1522 # nagios plugin
1523 ###################
1524
1525 nagiosdir = $(libdir)/nagios
1526
1527 installnagios:
1528         $(INSTALL) -d $(DESTDIR)$(nagiosdir)
1529         $(INSTALL) -m 0755 script/check_exchange $(DESTDIR)$(nagiosdir)
1530
1531 ###################
1532 # libmapi examples
1533 ###################
1534 examples:
1535         cd doc/examples && make && cd ${OLD_PWD}
1536
1537 examples-clean::
1538         rm -f doc/examples/mapi_sample1
1539         rm -f doc/examples/fetchappointment
1540         rm -f doc/examples/fetchmail
1541
1542 clean:: examples-clean
1543
1544 examples-install examples-uninstall:
1545
1546 manpages = \
1547                 doc/man/man1/exchange2mbox.1                            \
1548                 doc/man/man1/mapiprofile.1                              \
1549                 doc/man/man1/openchangeclient.1                         \
1550                 doc/man/man1/openchangepfadmin.1                        \
1551                 $(wildcard apidocs/man/man3/*)
1552
1553 installman: doxygen
1554         @./script/installman.sh $(DESTDIR)$(mandir) $(manpages)
1555
1556
1557 uninstallman:
1558         @./script/uninstallman.sh $(DESTDIR)$(mandir) $(manpages)
1559
1560 doxygen:        
1561         @if test ! -d apidocs ; then                                            \
1562                 echo "Doxify API documentation: HTML and man pages";            \
1563                 mkdir -p apidocs/html;                                          \
1564                 mkdir -p apidocs/man;                                           \
1565                 $(DOXYGEN) Doxyfile;                                            \
1566                 $(DOXYGEN) libmapi/Doxyfile;                                    \
1567                 $(DOXYGEN) libmapiadmin/Doxyfile;                               \
1568                 $(DOXYGEN) libocpf/Doxyfile;                                    \
1569                 $(DOXYGEN) libmapi++/Doxyfile;                                  \
1570                 $(DOXYGEN) mapiproxy/Doxyfile;                                  \
1571                 $(DOXYGEN) utils/mapitest/Doxyfile;                             \
1572                 cp -f doc/doxygen/index.html apidocs/html;                      \
1573                 cp -f doc/doxygen/pictures/* apidocs/html/overview;             \
1574                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi;              \
1575                 cp -f doc/doxygen/pictures/* apidocs/html/libmapiadmin;         \
1576                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi++;            \
1577                 cp -f doc/doxygen/pictures/* apidocs/html/libocpf;              \
1578                 cp -f doc/doxygen/pictures/* apidocs/html/mapitest;             \
1579                 cp -f doc/doxygen/pictures/* apidocs/html/mapiproxy;            \
1580                 cp -f mapiproxy/documentation/pictures/* apidocs/html/mapiproxy;\
1581                 rm -f apidocs/man/man3/todo.3;                                  \
1582                 rm -f apidocs/man/man3/bug.3;                                   \
1583                 rm -f apidocs/man/man3/*.c.3;                                   \
1584         fi                                                              
1585
1586 etags:
1587         etags `find $(srcdir) -name "*.[ch]"`
1588
1589 ctags:
1590         ctags `find $(srcdir) -name "*.[ch]"`
1591
1592 swigperl-all:
1593         @echo "Creating Perl bindings ..."
1594         @$(MAKE) -C swig/perl all
1595
1596 swigperl-install:
1597         @echo "Install Perl bindings ..."
1598         @$(MAKE) -C swig/perl install
1599
1600 swigperl-uninstall:
1601         @echo "Uninstall Perl bindings ..."
1602         @$(MAKE) -C swig/perl uninstall
1603
1604 distclean::
1605         @$(MAKE) -C swig/perl distclean
1606
1607 clean::
1608         @echo "Cleaning Perl bindings ..."
1609         @$(MAKE) -C swig/perl clean
1610
1611 .PRECIOUS: exchange.h gen_ndr/ndr_exchange.h gen_ndr/ndr_exchange.c gen_ndr/ndr_exchange_c.c gen_ndr/ndr_exchange_c.h
1612
1613 test:: check
1614
1615 check:: torture/openchange.$(SHLIBEXT) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
1616         # FIXME: Set up server
1617         LD_LIBRARY_PATH=`pwd` $(SMBTORTURE) --load-module torture/openchange.$(SHLIBEXT) ncalrpc: OPENCHANGE
1618         ./bin/mapitest --mapi-calls 
1619
1620 ####################################
1621 # coverage tests
1622 #
1623 # this could be better integrated...
1624 ####################################
1625 coverage-init:
1626         lcov --base-directory . --directory . --capture --initial --output-file oc_cov.info
1627
1628 coverage::
1629         rm -f libmapi/\<stdout\>.gcov
1630         rm -f ./libocpf/lex.yy.gcda
1631         rm -f libocpf/\<stdout\>.gcov
1632         rm -f ./\<stdout\>.gcov
1633         lcov --base-directory .  --directory . --output-file oc_cov.info --capture
1634         genhtml -o covresults oc_cov.info
1635
1636 coverage-clean::
1637         rm -rf oc_cov.info
1638         rm -rf covresults
1639         rm -f test.gcno
1640
1641 clean:: coverage-clean
1642
1643 # This should be the last line in the makefile since other distclean rules may 
1644 # need config.mk
1645 distclean::
1646         rm -f config.mk
1647
1648 ####################################
1649 # Qt4 widgets
1650 ####################################
1651 openchange_qt4: qt-lib qt-demoapp
1652
1653 qt-lib: libqtmapi
1654
1655 qt-demoapp: qt/demo/demoapp.moc qt/demo/demoapp 
1656
1657 # No install yet - we need to finish this first
1658
1659 qt-clean::
1660         rm -f qt/demo/demoapp
1661         rm -f qt/demo/*.o
1662         rm -f qt/lib/*.o
1663         rm -f qt/demo/*.moc
1664         rm -f qt/lib/*.moc
1665         rm -f libqtmapi*
1666
1667 clean:: qt-clean
1668
1669 qt/demo/demoapp.moc:    qt/demo/demoapp.h
1670         moc -i qt/demo/demoapp.h -o qt/demo/demoapp.moc
1671
1672 qt/lib/foldermodel.moc: qt/lib/foldermodel.h
1673         moc -i qt/lib/foldermodel.h -o qt/lib/foldermodel.moc
1674
1675 qt/lib/messagesmodel.moc:       qt/lib/messagesmodel.h
1676         moc -i qt/lib/messagesmodel.h -o qt/lib/messagesmodel.moc
1677
1678 .cpp.o:
1679         $(CXX) $(CXXFLAGS) $(QT4_CXXFLAGS) -fPIC -c $< -o $@
1680
1681 libqtmapi: libmapi                                      \
1682         qt/lib/foldermodel.moc                          \
1683         qt/lib/messagesmodel.moc                        \
1684         libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1685
1686 LIBQTMAPI_SO_VERSION = 0
1687
1688 libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION):       \
1689         qt/lib/foldermodel.o                    \
1690         qt/lib/messagesmodel.o
1691         @echo "Linking $@"
1692         @$(CXX) $(DSOOPT) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION) -o $@ $^ $(LIBS)
1693
1694
1695 qt/demo/demoapp: qt/demo/demoapp.o                              \
1696         qt/demo/main.o                                  \
1697         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1698         libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION)        \
1699         libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1700         @echo "Linking $@"
1701         @$(CXX) $(CXXFLAGS) -o $@ $^ $(QT4_LIBS) $(LDFLAGS) $(LIBS)
1702         # we don't yet install this...
1703         ln -sf libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libqtmapi.$(SHLIBEXT)
1704         ln -sf libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION)
1705