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