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