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