Add a samba4 patch when running make samba for alpha18 on Fedora operating system
[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 $(DESTDIR)$(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         libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
364         @echo "Linking $@"
365         @$(CXX) $(DSOOPT) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION) -o $@ $^ $(LIBS) 
366
367 libmapixx-installpc:
368         @echo "[*] install: libmapi++ pc files"
369         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
370         $(INSTALL) -m 0644 libmapi++.pc $(DESTDIR)$(libdir)/pkgconfig
371
372 libmapixx-distclean:
373         rm -f libmapi++.pc
374
375 libmapixx-uninstallpc:
376         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi++.pc
377
378 distclean::libmapixx-distclean
379
380 clean:: libmapixx-clean
381
382 libmapixx-install: libmapixx-installheader libmapixx-installlib libmapixx-installpc
383
384 libmapixx-uninstall: libmapixx-uninstallheader libmapixx-uninstalllib libmapixx-uninstallpc
385
386 libmapixx-installheader:
387         @echo "[*] install: libmapi++ headers"
388         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++
389         $(INSTALL) -m 0644 libmapi++/attachment.h $(DESTDIR)$(includedir)/libmapi++/
390         $(INSTALL) -m 0644 libmapi++/clibmapi.h $(DESTDIR)$(includedir)/libmapi++/
391         $(INSTALL) -m 0644 libmapi++/folder.h $(DESTDIR)$(includedir)/libmapi++/
392         $(INSTALL) -m 0644 libmapi++/libmapi++.h $(DESTDIR)$(includedir)/libmapi++/
393         $(INSTALL) -m 0644 libmapi++/mapi_exception.h $(DESTDIR)$(includedir)/libmapi++/
394         $(INSTALL) -m 0644 libmapi++/message.h $(DESTDIR)$(includedir)/libmapi++/
395         $(INSTALL) -m 0644 libmapi++/message_store.h $(DESTDIR)$(includedir)/libmapi++/
396         $(INSTALL) -m 0644 libmapi++/object.h $(DESTDIR)$(includedir)/libmapi++/
397         $(INSTALL) -m 0644 libmapi++/profile.h $(DESTDIR)$(includedir)/libmapi++/
398         $(INSTALL) -m 0644 libmapi++/property_container.h $(DESTDIR)$(includedir)/libmapi++/
399         $(INSTALL) -m 0644 libmapi++/session.h $(DESTDIR)$(includedir)/libmapi++/
400         @$(SED) $(DESTDIR)$(includedir)/libmapi++/*.h
401
402 libmapixx-libs-clean:
403         rm -f libmapi++/src/*.po
404         rm -f libmapipp.$(SHLIBEXT)*
405         rm -f libmapi++/src/*.gcno libmapi++/src/*.gcda
406
407 libmapixx-clean: libmapixx-tests-clean libmapixx-libs-clean
408
409 libmapixx-installlib:
410         @echo "[*] install: libmapi++ library"
411         $(INSTALL) -d $(DESTDIR)$(libdir)
412         $(INSTALL) -m 0755 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
413         ln -sf libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapipp.$(SHLIBEXT)
414 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
415         ln -sf libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION)
416 endif
417
418 libmapixx-uninstallheader:
419         rm -rf $(DESTDIR)$(includedir)/libmapi++
420
421 libmapixx-uninstalllib:
422         rm -f $(DESTDIR)$(libdir)/libmapipp.*
423
424 libmapixx-tests:        libmapixx-test          \
425                         libmapixx-attach        \
426                         libmapixx-exception     \
427                         libmapixx-profiletest
428
429 libmapixx-tests-clean:  libmapixx-test-clean            \
430                         libmapixx-attach-clean          \
431                         libmapixx-exception-clean       \
432                         libmapixx-profiletest-clean
433
434 libmapixx-test: bin/libmapixx-test
435
436 libmapixx-test-clean:
437         rm -f bin/libmapixx-test
438         rm -f libmapi++/tests/*.o
439
440 clean:: libmapixx-tests-clean
441
442 bin/libmapixx-test:     libmapi++/tests/test.cpp        \
443                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
444                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
445         @echo "Linking sample application $@"
446         @$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) 
447
448 clean:: libmapixx-test-clean
449
450 libmapixx-attach: bin/libmapixx-attach
451
452 libmapixx-attach-clean:
453         rm -f bin/libmapixx-attach
454         rm -f libmapi++/tests/*.po
455         rm -f libmapi++/tests/*.gcno libmapi++/tests/*.gcda
456
457 bin/libmapixx-attach: libmapi++/tests/attach_test.po    \
458                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
459                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
460         @echo "Linking sample application $@"
461         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
462
463 clean:: libmapixx-attach-clean
464
465 libmapixx-exception: bin/libmapixx-exception
466  
467 bin/libmapixx-exception: libmapi++/tests/exception_test.cpp \
468                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
469                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
470         @echo "Linking exception test application $@"
471         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
472
473 libmapixx-exception-clean:
474         rm -f bin/libmapixx-exception
475         rm -f libmapi++/tests/*.o
476         rm -f libmapi++/tests/*.gcno libmapi++/tests/*.gcda
477
478 clean:: libmapixx-exception-clean
479
480 libmapixx-profiletest: bin/libmapixx-profiletest
481
482 libmapixx-profiletest-clean:
483         rm -f bin/libmapixx-profiletest
484         rm -f libmapi++/tests/*.po
485         rm -f libmapi++/tests/*.gcno libmapi++/tests/*.gcda
486
487 bin/libmapixx-profiletest: libmapi++/tests/profile_test.po      \
488                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
489                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
490         @echo "Linking profile test application $@"
491         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
492
493 clean:: libmapixx-profiletest-clean
494
495 libmapixx-examples: libmapi++/examples/foldertree \
496                   libmapi++/examples/messages
497
498 libmapixx-foldertree-clean:
499         rm -f libmapi++/examples/foldertree
500         rm -f libmapi++/examples/*.o
501         rm -f libmapi++/examples/*.gcno libmapi++/examples/*.gcda
502
503 libmapixx-messages-clean:
504         rm -f libmapi++/examples/messages
505         rm -f libmapi++/examples/*.o
506         rm -f libmapi++/examples/*.gcno libmapi++/examples/*.gcda
507
508 libmapi++/examples/foldertree: libmapi++/examples/foldertree.cpp        \
509                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
510                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
511         @echo "Linking foldertree example application $@"
512         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
513
514 clean:: libmapixx-foldertree-clean
515
516 libmapi++/examples/messages: libmapi++/examples/messages.cpp    \
517                 libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
518                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
519         @echo "Linking messages example application $@"
520         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
521
522 clean:: libmapixx-messages-clean
523
524 #################################################################
525 # libmapiadmin compilation rules
526 #################################################################
527
528 LIBMAPIADMIN_SO_VERSION = 0
529
530 libmapiadmin:           libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
531
532 libmapiadmin-install:   libmapiadmin-installpc          \
533                         libmapiadmin-installlib         \
534                         libmapiadmin-installheader
535
536 libmapiadmin-uninstall: libmapiadmin-uninstallpc        \
537                         libmapiadmin-uninstalllib       \
538                         libmapiadmin-uninstallheader
539
540 libmapiadmin-clean::
541         rm -f libmapiadmin/*.o libmapiadmin/*.po
542         rm -f libmapiadmin/*.gcno libmapiadmin/*.gcda
543         rm -f libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) libmapiadmin.$(SHLIBEXT).* \
544                   libmapiadmin.$(SHLIBEXT)
545
546 clean:: libmapiadmin-clean
547
548 libmapiadmin-distclean::
549         rm -f libmapiadmin.pc
550
551 distclean:: libmapiadmin-distclean
552
553 libmapiadmin-installpc:
554         @echo "[*] install: libmapiadmin pc files"
555         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
556         $(INSTALL) -m 0644 libmapiadmin.pc $(DESTDIR)$(libdir)/pkgconfig
557
558 libmapiadmin-installlib:
559         @echo "[*] install: libmapiadmin library"
560         $(INSTALL) -d $(DESTDIR)$(libdir)
561         $(INSTALL) -m 0755 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
562         ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT)
563 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
564         ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION)
565 endif
566
567 libmapiadmin-installheader:
568         @echo "[*] install: libmapiadmin headers"
569         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapiadmin 
570         $(INSTALL) -m 0644 libmapiadmin/libmapiadmin.h $(DESTDIR)$(includedir)/libmapiadmin/
571         @$(SED) $(DESTDIR)$(includedir)/libmapiadmin/*.h
572
573 libmapiadmin-uninstallpc:
574         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiadmin.pc
575
576 libmapiadmin-uninstalllib:
577         rm -f $(DESTDIR)$(libdir)/libmapiadmin.*
578
579 libmapiadmin-uninstallheader:
580         rm -rf $(DESTDIR)$(includedir)/libmapiadmin
581
582 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION):    \
583         libmapiadmin/mapiadmin_user.po          \
584         libmapiadmin/mapiadmin.po               \
585         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
586         @echo "Linking $@"
587         @$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS) 
588
589
590
591 #################################################################
592 # libocpf compilation rules
593 #################################################################
594
595 LIBOCPF_SO_VERSION = 0
596
597 libocpf:                libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
598
599 libocpf-install:        libocpf-installpc       \
600                         libocpf-installlib      \
601                         libocpf-installheader   
602
603 libocpf-uninstall:      libocpf-uninstallpc     \
604                         libocpf-uninstalllib    \
605                         libocpf-uninstallheader 
606
607 libocpf-clean::
608         rm -f libocpf/*.o libocpf/*.po
609         rm -f libocpf/*.gcno libocpf/*.gcda
610 ifneq ($(SNAPSHOT), no)
611         rm -f libocpf/lex.yy.c
612         rm -f libocpf/ocpf.tab.c libocpf/ocpf.tab.h
613 endif
614         rm -f libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) libocpf.$(SHLIBEXT).* \
615                   libocpf.$(SHLIBEXT)
616
617 clean:: libocpf-clean
618
619 libocpf-distclean::
620         rm -f libocpf.pc
621
622 distclean:: libocpf-distclean
623
624 libocpf-installpc:
625         @echo "[*] install: libocpf pc files"
626         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
627         $(INSTALL) -m 0644 libocpf.pc $(DESTDIR)$(libdir)/pkgconfig
628
629 libocpf-installlib:
630         @echo "[*] install: libocpf library"
631         $(INSTALL) -d $(DESTDIR)$(libdir)
632         $(INSTALL) -m 0755 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
633         ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT)
634 ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
635         ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION)
636 endif
637
638 libocpf-installheader:
639         @echo "[*] install: libocpf headers"
640         $(INSTALL) -d $(DESTDIR)$(includedir)/libocpf
641         $(INSTALL) -m 0644 libocpf/ocpf.h $(DESTDIR)$(includedir)/libocpf/
642         @$(SED) $(DESTDIR)$(includedir)/libocpf/*.h
643
644 libocpf-uninstallpc:
645         rm -f $(DESTDIR)$(libdir)/pkgconfig/libocpf.pc
646
647 libocpf-uninstalllib:
648         rm -f $(DESTDIR)$(libdir)/libocpf.*
649
650 libocpf-uninstallheader:
651         rm -rf $(DESTDIR)$(includedir)/libocpf
652
653 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION):         \
654         libocpf/ocpf.tab.po                     \
655         libocpf/lex.yy.po                       \
656         libocpf/ocpf_context.po                 \
657         libocpf/ocpf_public.po                  \
658         libocpf/ocpf_server.po                  \
659         libocpf/ocpf_dump.po                    \
660         libocpf/ocpf_api.po                     \
661         libocpf/ocpf_write.po                   \
662         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
663         @echo "Linking $@"
664         @$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
665
666 libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION): libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
667         ln -fs $< $@
668
669 libocpf/lex.yy.c:               libocpf/lex.l
670         @echo "Generating $@"
671         @$(FLEX) -t $< > $@
672
673 libocpf/ocpf.tab.c:     libocpf/ocpf.y
674         @echo "Generating $@"
675         @$(BISON) -d $< -o $@
676
677 # Avoid warnings
678 libocpf/lex.yy.o: CFLAGS=
679 libocpf/ocpf.tab.o: CFLAGS=
680
681 #################################################################
682 # mapiproxy compilation rules
683 #################################################################
684 LIBMAPIPROXY_SO_VERSION = 0
685 LIBMAPISERVER_SO_VERSION = 0
686
687 .PHONY: mapiproxy
688
689 mapiproxy:              idl                                     \
690                         libmapiproxy                            \
691                         libmapiserver                           \
692                         libmapistore                            \
693                         mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)  \
694                         mapiproxy-modules                       \
695                         mapiproxy-servers
696
697 mapiproxy-install:      mapiproxy                               \
698                         mapiproxy-modules-install               \
699                         mapiproxy-servers-install               \
700                         libmapiproxy-install                    \
701                         libmapiserver-install                   \
702                         libmapistore-installpc                  \
703                         libmapistore-install
704         $(INSTALL) -d $(DESTDIR)$(DCERPC_SERVER_MODULESDIR)
705         $(INSTALL) -m 0755 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) $(DESTDIR)$(DCERPC_SERVER_MODULESDIR)
706
707 mapiproxy-uninstall:    mapiproxy-modules-uninstall             \
708                         mapiproxy-servers-uninstall             \
709                         libmapiproxy-uninstall                  \
710                         libmapiserver-uninstall                 \
711                         libmapistore-uninstall
712         rm -f $(DESTDIR)$(DCERPC_SERVER_MODULESDIR)/dcesrv_mapiproxy.*
713         rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
714         rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
715
716 mapiproxy-clean::       mapiproxy-modules-clean                 \
717                         mapiproxy-servers-clean                 \
718                         libmapiproxy-clean                      \
719                         libmapiserver-clean                     \
720                         libmapistore-clean
721         rm -f mapiproxy/*.o mapiproxy/*.po
722         rm -f mapiproxy/*.gcno mapiproxy/*.gcda
723         rm -f mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)
724
725 clean:: mapiproxy-clean
726
727
728 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT):         mapiproxy/dcesrv_mapiproxy.po           \
729                                                 mapiproxy/dcesrv_mapiproxy_nspi.po      \
730                                                 mapiproxy/dcesrv_mapiproxy_rfr.po       \
731                                                 mapiproxy/dcesrv_mapiproxy_unused.po    \
732                                                 ndr_mapi.po                             \
733                                                 gen_ndr/ndr_exchange.po                         
734
735         @echo "Linking $@"
736         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(SAMBASERVER_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
737
738 mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
739
740
741 ###############
742 # libmapiproxy
743 ###############
744
745 libmapiproxy: mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
746
747 libmapiproxy-install:
748         $(INSTALL) -m 0755 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
749         ln -sf libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiproxy.$(SHLIBEXT)
750         $(INSTALL) -m 0644 mapiproxy/libmapiproxy/libmapiproxy.h $(DESTDIR)$(includedir)/
751         $(INSTALL) -m 0644 mapiproxy/libmapiproxy.pc $(DESTDIR)$(libdir)/pkgconfig
752
753 libmapiproxy-clean:
754         rm -f mapiproxy/libmapiproxy/*.po mapiproxy/libmapiproxy/*.o
755         rm -f mapiproxy/libmapiproxy/*.gcno mapiproxy/libmapiproxy/*.gcda
756         rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).*
757
758 libmapiproxy-uninstall:
759         rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
760         rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
761         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiproxy.pc
762
763 libmapiproxy-distclean:
764         rm -f mapiproxy/libmapiproxy.pc
765
766 distclean::libmapiproxy-distclean
767
768 mapiproxy/libmapiproxy/modules.o mapiproxy/libmapiproxy/modules.po: CFLAGS+=-DMODULESDIR=\"${modulesdir}\"
769
770 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION):  mapiproxy/libmapiproxy/dcesrv_mapiproxy_module.po       \
771                                                         mapiproxy/libmapiproxy/dcesrv_mapiproxy_server.po       \
772                                                         mapiproxy/libmapiproxy/dcesrv_mapiproxy_session.po      \
773                                                         mapiproxy/libmapiproxy/openchangedb.po                  \
774                                                         mapiproxy/libmapiproxy/openchangedb_table.po            \
775                                                         mapiproxy/libmapiproxy/openchangedb_message.po          \
776                                                         mapiproxy/libmapiproxy/openchangedb_property.po         \
777                                                         mapiproxy/libmapiproxy/mapi_handles.po                  \
778                                                         mapiproxy/libmapiproxy/entryid.po                       \
779                                                         mapiproxy/libmapiproxy/modules.po                       \
780                                                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
781         @echo "Linking $@"
782         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS) $(TDB_LIBS)
783
784 mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION): libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
785         ln -fs $< $@
786
787
788 #################
789 # libmapiserver
790 #################
791
792 libmapiserver: mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
793
794 libmapiserver-install:
795         $(INSTALL) -m 0755 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
796         ln -sf libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiserver.$(SHLIBEXT)
797         $(INSTALL) -m 0644 mapiproxy/libmapiserver/libmapiserver.h $(DESTDIR)$(includedir)/
798         $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
799         @$(SED) $(DESTDIR)$(includedir)/*.h
800
801 libmapiserver-clean:
802         rm -f mapiproxy/libmapiserver/*.po mapiproxy/libmapiserver/*.o
803         rm -f mapiproxy/libmapiserver/*.gcno mapiproxy/libmapiserver/*.gcda
804         rm -f mapiproxy/libmapiserver.$(SHLIBEXT).*
805
806 libmapiserver-uninstall:
807         rm -f $(DESTDIR)$(libdir)/libmapiserver.*
808         rm -f $(DESTDIR)$(includedir)/libmapiserver.h
809         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiserver.pc
810
811 libmapiserver-distclean:
812         rm -f mapiproxy/libmapiserver.pc
813
814 distclean:: libmapiserver-distclean
815
816 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/libmapiserver/libmapiserver_oxcstor.po        \
817                                                         mapiproxy/libmapiserver/libmapiserver_oxcprpt.po        \
818                                                         mapiproxy/libmapiserver/libmapiserver_oxcfold.po        \
819                                                         mapiproxy/libmapiserver/libmapiserver_oxcfxics.po       \
820                                                         mapiproxy/libmapiserver/libmapiserver_oxctabl.po        \
821                                                         mapiproxy/libmapiserver/libmapiserver_oxcmsg.po         \
822                                                         mapiproxy/libmapiserver/libmapiserver_oxcnotif.po       \
823                                                         mapiproxy/libmapiserver/libmapiserver_oxomsg.po         \
824                                                         mapiproxy/libmapiserver/libmapiserver_oxorule.po        \
825                                                         mapiproxy/libmapiserver/libmapiserver_oxcperm.po        \
826                                                         mapiproxy/libmapiserver/libmapiserver_oxcdata.po        \
827                                                         ndr_mapi.po                             \
828                                                         gen_ndr/ndr_exchange.po
829         @echo "Linking $@"
830         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiserver.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ $(LIBS)
831
832 mapiproxy/libmapiserver.$(SHLIBEXT).$(LIBMAPISERVER_SO_VERSION): libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
833         ln -fs $< $@
834
835
836 ################
837 # libmapistore
838 ################
839 LIBMAPISTORE_SO_VERSION = 0
840
841 mapiproxy/libmapistore/mgmt/mapistore_mgmt.idl: mapiproxy/libmapistore/mgmt/gen_ndr
842
843 mapiproxy/libmapistore/mgmt/gen_ndr/%.h: mapiproxy/libmapistore/mgmt/mapistore_mgmt.idl
844         @echo "Generating $@"
845         @$(PIDL) --outputdir=mapiproxy/libmapistore/mgmt/gen_ndr --header -- $<
846
847 mapiproxy/libmapistore/mgmt/gen_ndr:
848         @echo "Creating gen_ndr directory for libmapistore mgmt IDL"
849         @mkdir -p mapiproxy/libmapistore/mgmt/gen_ndr
850
851 mapiproxy/libmapistore/mgmt/gen_ndr/ndr_%.h mapiproxy/libmapistore/mgmt/gen_ndr/ndr_%.c: mapiproxy/libmapistore/mgmt/%.idl mapiproxy/libmapistore/mgmt/gen_ndr/%.h
852         @echo "Generating $@"
853         @$(PIDL) --outputdir=mapiproxy/libmapistore/mgmt/gen_ndr --ndr-parser -- $<
854
855 libmapistore:   mapiproxy/libmapistore/mapistore_nameid.h               \
856                 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)   \
857                 setup/mapistore/mapistore_namedprops.ldif               \
858                 $(OC_MAPISTORE)                                         \
859                 $(MAPISTORE_TEST)
860
861 libmapistore-installpc:
862         @echo "[*] install: libmapistore pc files"
863         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
864         $(INSTALL) -m 0644 mapiproxy/libmapistore.pc $(DESTDIR)$(libdir)/pkgconfig
865
866 libmapistore-install:   $(OC_MAPISTORE_INSTALL)
867         $(INSTALL) -m 0755 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
868         ln -sf libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapistore.$(SHLIBEXT)
869         $(INSTALL) -d $(DESTDIR)$(includedir)/mapistore
870         $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore.h $(DESTDIR)$(includedir)/mapistore/
871         $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore_errors.h $(DESTDIR)$(includedir)/mapistore/
872         $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore_nameid.h $(DESTDIR)$(includedir)/mapistore/
873         $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
874         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/mapistore
875         $(INSTALL) -m 0644 setup/mapistore/*.ldif $(DESTDIR)$(datadir)/setup/mapistore/
876         @$(SED) $(DESTDIR)$(includedir)/mapistore/*.h
877
878 libmapistore-clean:     $(OC_MAPISTORE_CLEAN)
879         rm -f mapiproxy/libmapistore/*.po mapiproxy/libmapistore/*.o
880         rm -f mapiproxy/libmapistore/*.gcno mapiproxy/libmapistore/*.gcda
881         rm -f mapiproxy/libmapistore.$(SHLIBEXT).*
882         rm -f setup/mapistore/mapistore_namedprops.ldif
883         rm -f mapiproxy/libmapistore/mapistore_nameid.h
884         rm -rf mapiproxy/libmapistore/mgmt/gen_ndr
885
886 libmapistore-uninstall: $(OC_MAPISTORE_UNINSTALL)
887         rm -f $(DESTDIR)$(libdir)/libmapistore.*
888         rm -rf $(DESTDIR)$(includedir)/mapistore
889         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapistore.pc
890         rm -rf $(DESTDIR)$(datadir)/setup/mapistore
891
892 libmapistore-distclean: libmapistore-clean
893         rm -f mapiproxy/libmapistore.pc
894
895 distclean:: libmapistore-distclean
896
897 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION):  mapiproxy/libmapistore/mgmt/gen_ndr/ndr_mapistore_mgmt.po       \
898                                                         mapiproxy/libmapistore/mapistore_interface.po                   \
899                                                         mapiproxy/libmapistore/mgmt/mapistore_mgmt.po                   \
900                                                         mapiproxy/libmapistore/mgmt/mapistore_mgmt_messages.po          \
901                                                         mapiproxy/libmapistore/mgmt/mapistore_mgmt_send.po              \
902                                                         mapiproxy/libmapistore/mapistore_processing.po                  \
903                                                         mapiproxy/libmapistore/mapistore_backend.po                     \
904                                                         mapiproxy/libmapistore/mapistore_backend_defaults.po            \
905                                                         mapiproxy/libmapistore/mapistore_tdb_wrap.po                    \
906                                                         mapiproxy/libmapistore/mapistore_ldb_wrap.po                    \
907                                                         mapiproxy/libmapistore/mapistore_indexing.po                    \
908                                                         mapiproxy/libmapistore/mapistore_replica_mapping.po             \
909                                                         mapiproxy/libmapistore/mapistore_namedprops.po                  \
910                                                         mapiproxy/libmapistore/mapistore_notification.po                \
911                                                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
912         @echo "Linking $@"
913         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(TDB_LIBS) $(DL_LIBS) -Wl,-soname,libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION)
914
915 mapiproxy/libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION): libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
916         ln -fs $< $@
917
918 setup/mapistore/mapistore_namedprops.ldif:      \
919         libmapi/conf/mapi-named-properties      \
920         libmapi/conf/mparse.pl                  
921         @./libmapi/conf/build.sh
922
923 #####################
924 # mapistore backends
925 #####################
926
927 #######################
928 # mapistore test tools
929 #######################
930
931 mapistore_test: bin/mapistore_test
932
933 bin/mapistore_test:     mapiproxy/libmapistore/tests/mapistore_test.o           \
934                         mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
935         @echo "Linking $@"
936         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt -L. libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
937
938 mapistore_clean:
939         rm -f mapiproxy/libmapistore/tests/*.o
940         rm -f mapiproxy/libmapistore/tests/*.gcno
941         rm -f mapiproxy/libmapistore/tests/*.gcda
942         rm -f bin/mapistore_test
943
944 clean:: mapistore_clean
945
946 ####################
947 # mapiproxy modules
948 ####################
949
950 mapiproxy-modules:      mapiproxy/modules/mpm_downgrade.$(SHLIBEXT)     \
951                         mapiproxy/modules/mpm_pack.$(SHLIBEXT)          \
952                         mapiproxy/modules/mpm_cache.$(SHLIBEXT)         \
953                         mapiproxy/modules/mpm_dummy.$(SHLIBEXT)         
954
955 mapiproxy-modules-install: mapiproxy-modules
956         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
957         $(INSTALL) -m 0755 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
958         $(INSTALL) -m 0755 mapiproxy/modules/mpm_pack.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
959         $(INSTALL) -m 0755 mapiproxy/modules/mpm_cache.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
960         $(INSTALL) -m 0755 mapiproxy/modules/mpm_dummy.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
961
962 mapiproxy-modules-uninstall:
963         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy
964
965 mapiproxy-modules-clean::
966         rm -f mapiproxy/modules/*.o mapiproxy/modules/*.po
967         rm -f mapiproxy/modules/*.gcno mapiproxy/modules/*.gcda
968         rm -f mapiproxy/modules/*.so
969
970 clean:: mapiproxy-modules-clean
971
972 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT): mapiproxy/modules/mpm_downgrade.po
973         @echo "Linking $@"
974         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
975
976 mapiproxy/modules/mpm_pack.$(SHLIBEXT): mapiproxy/modules/mpm_pack.po   \
977                                         ndr_mapi.po                     \
978                                         gen_ndr/ndr_exchange.po
979         @echo "Linking $@"
980         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
981
982 mapiproxy/modules/mpm_cache.$(SHLIBEXT): mapiproxy/modules/mpm_cache.po         \
983                                          mapiproxy/modules/mpm_cache_ldb.po     \
984                                          mapiproxy/modules/mpm_cache_stream.po  \
985                                          ndr_mapi.po                            \
986                                          gen_ndr/ndr_exchange.po
987         @echo "Linking $@"
988         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
989
990 mapiproxy/modules/mpm_dummy.$(SHLIBEXT): mapiproxy/modules/mpm_dummy.po
991         @echo "Linking $@"
992         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
993
994
995 ####################
996 # mapiproxy servers
997 ####################
998 provision-install: python-install
999         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/AD
1000         $(INSTALL) -m 0644 setup/AD/oc_provision* $(DESTDIR)$(datadir)/setup/AD/
1001         $(INSTALL) -m 0644 setup/AD/prefixMap.txt $(DESTDIR)$(datadir)/setup/AD/
1002         $(INSTALL) -m 0644 setup/AD/provision_schema_basedn_modify.ldif $(DESTDIR)$(datadir)/setup/AD/
1003         $(INSTALL) -d $(DESTDIR)$(datadir)/setup/openchangedb
1004         $(INSTALL) -m 0644 setup/openchangedb/oc_provision* $(DESTDIR)$(datadir)/setup/openchangedb/
1005
1006 provision-uninstall: python-uninstall
1007         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_configuration.ldif
1008         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema.ldif
1009         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_modify.ldif
1010         rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_ADSC.ldif
1011         rm -f $(DESTDIR)$(datadir)/setup/AD/prefixMap.txt
1012         rm -rf $(DESTDIR)$(datadir)/setup/AD
1013         rm -rf $(DESTDIR)$(datadir)/setup/openchangedb
1014
1015 mapiproxy-servers:      mapiproxy/servers/exchange_nsp.$(SHLIBEXT)              \
1016                         mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT)           \
1017                         mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT)
1018
1019 mapiproxy-servers-install: mapiproxy-servers provision-install
1020         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1021         $(INSTALL) -m 0755 mapiproxy/servers/exchange_nsp.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1022         $(INSTALL) -m 0755 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1023         $(INSTALL) -m 0755 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1024
1025 mapiproxy-servers-uninstall: provision-uninstall
1026         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server
1027
1028 mapiproxy-servers-clean::
1029         rm -f mapiproxy/servers/default/nspi/*.o mapiproxy/servers/default/nspi/*.po
1030         rm -f mapiproxy/servers/default/nspi/*.gcno mapiproxy/servers/default/nspi/*.gcda
1031         rm -f mapiproxy/servers/default/emsmdb/*.o mapiproxy/servers/default/emsmdb/*.po
1032         rm -f mapiproxy/servers/default/emsmdb/*.gcno mapiproxy/servers/default/emsmdb/*.gcda
1033         rm -f mapiproxy/servers/default/rfr/*.o mapiproxy/servers/default/rfr/*.po
1034         rm -f mapiproxy/servers/default/rfr/*.gcno mapiproxy/servers/default/rfr/*.gcda
1035         rm -f mapiproxy/servers/*.so
1036
1037 clean:: mapiproxy-servers-clean
1038
1039 mapiproxy/servers/exchange_nsp.$(SHLIBEXT):     mapiproxy/servers/default/nspi/dcesrv_exchange_nsp.po   \
1040                                                 mapiproxy/servers/default/nspi/emsabp.po                \
1041                                                 mapiproxy/servers/default/nspi/emsabp_tdb.po            \
1042                                                 mapiproxy/servers/default/nspi/emsabp_property.po       
1043         @echo "Linking $@"
1044         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) $(TDB_LIBS) $(SAMBASERVER_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1045
1046 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT):  mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.po      \
1047                                                 mapiproxy/servers/default/emsmdb/emsmdbp.po                     \
1048                                                 mapiproxy/servers/default/emsmdb/emsmdbp_object.po              \
1049                                                 mapiproxy/servers/default/emsmdb/emsmdbp_provisioning.po        \
1050                                                 mapiproxy/servers/default/emsmdb/oxcstor.po                     \
1051                                                 mapiproxy/servers/default/emsmdb/oxcprpt.po                     \
1052                                                 mapiproxy/servers/default/emsmdb/oxcfold.po                     \
1053                                                 mapiproxy/servers/default/emsmdb/oxcfxics.po                    \
1054                                                 mapiproxy/servers/default/emsmdb/oxctabl.po                     \
1055                                                 mapiproxy/servers/default/emsmdb/oxcmsg.po                      \
1056                                                 mapiproxy/servers/default/emsmdb/oxcnotif.po                    \
1057                                                 mapiproxy/servers/default/emsmdb/oxomsg.po                      \
1058                                                 mapiproxy/servers/default/emsmdb/oxorule.po                     \
1059                                                 mapiproxy/servers/default/emsmdb/oxcperm.po
1060         @echo "Linking $@"
1061         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) $(SAMBASERVER_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
1062                                                 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1063                                                 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
1064
1065 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT):  mapiproxy/servers/default/rfr/dcesrv_exchange_ds_rfr.po
1066         @echo "Linking $@"
1067         @$(CC) -o $@ $(DSOOPT) $(LDFLAGS) $^ -L. $(LIBS) $(SAMBASERVER_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1068
1069 #################################################################
1070 # Tools compilation rules
1071 #################################################################
1072
1073 ###################
1074 # openchangeclient
1075 ###################
1076
1077 openchangeclient:       bin/openchangeclient
1078
1079 openchangeclient-install:       openchangeclient
1080         $(INSTALL) -d $(DESTDIR)$(bindir) 
1081         $(INSTALL) -m 0755 bin/openchangeclient $(DESTDIR)$(bindir)
1082
1083 openchangeclient-uninstall:
1084         rm -f $(DESTDIR)$(bindir)/openchangeclient
1085
1086 openchangeclient-clean::
1087         rm -f bin/openchangeclient
1088         rm -f utils/openchangeclient.o
1089         rm -f utils/openchangeclient.gcno
1090         rm -f utils/openchangeclient.gcda
1091         rm -f utils/openchange-tools.o
1092         rm -f utils/openchange-tools.gcno
1093         rm -f utils/openchange-tools.gcda
1094
1095 clean:: openchangeclient-clean
1096
1097 bin/openchangeclient:   utils/openchangeclient.o                        \
1098                         utils/openchange-tools.o                        \
1099                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1100                         libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
1101         @echo "Linking $@"
1102         @$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1103
1104
1105 ##############
1106 # mapiprofile
1107 ##############
1108
1109 mapiprofile:            bin/mapiprofile
1110
1111 mapiprofile-install:    mapiprofile
1112         $(INSTALL) -d $(DESTDIR)$(bindir) 
1113         $(INSTALL) -m 0755 bin/mapiprofile $(DESTDIR)$(bindir)
1114
1115 mapiprofile-uninstall:
1116         rm -f $(DESTDIR)$(bindir)/mapiprofile
1117
1118 mapiprofile-clean::
1119         rm -f bin/mapiprofile
1120         rm -f utils/mapiprofile.o
1121         rm -f utils/mapiprofile.gcno
1122         rm -f utils/mapiprofile.gcda
1123
1124 clean:: mapiprofile-clean
1125
1126 bin/mapiprofile:        utils/mapiprofile.o                     \
1127                         utils/openchange-tools.o                \
1128                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1129         @echo "Linking $@"
1130         @$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1131
1132
1133 ###################
1134 #openchangepfadmin
1135 ###################
1136
1137 openchangepfadmin:      bin/openchangepfadmin
1138
1139 openchangepfadmin-install:      openchangepfadmin
1140         $(INSTALL) -d $(DESTDIR)$(bindir) 
1141         $(INSTALL) -m 0755 bin/openchangepfadmin $(DESTDIR)$(bindir)
1142
1143 openchangepfadmin-uninstall:
1144         rm -f $(DESTDIR)$(bindir)/openchangepfadmin
1145
1146 openchangepfadmin-clean::
1147         rm -f bin/openchangepfadmin
1148         rm -f utils/openchangepfadmin.o
1149         rm -f utils/openchangepfadmin.gcno
1150         rm -f utils/openchangepfadmin.gcda
1151
1152 clean:: openchangepfadmin-clean
1153
1154 bin/openchangepfadmin:  utils/openchangepfadmin.o                       \
1155                         utils/openchange-tools.o                        \
1156                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1157                         libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
1158         @echo "Linking $@"
1159         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt                  
1160
1161
1162 ###################
1163 # exchange2mbox
1164 ###################
1165
1166 exchange2mbox:          bin/exchange2mbox
1167
1168 exchange2mbox-install:  exchange2mbox
1169         $(INSTALL) -d $(DESTDIR)$(bindir)
1170         $(INSTALL) -m 0755 bin/exchange2mbox $(DESTDIR)$(bindir)
1171
1172 exchange2mbox-uninstall:
1173         rm -f $(DESTDIR)$(bindir)/exchange2mbox
1174
1175 exchange2mbox-clean::
1176         rm -f bin/exchange2mbox
1177         rm -f utils/exchange2mbox.o
1178         rm -f utils/exchange2mbox.gcno
1179         rm -f utils/exchange2mbox.gcda
1180         rm -f utils/openchange-tools.o
1181         rm -f utils/openchange-tools.gcno
1182         rm -f utils/openchange-tools.gcda
1183
1184 clean:: exchange2mbox-clean
1185
1186 bin/exchange2mbox:      utils/exchange2mbox.o                           \
1187                         utils/openchange-tools.o                        \
1188                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1189         @echo "Linking $@"
1190         @$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt  $(MAGIC_LIBS)
1191
1192
1193 ###################
1194 # exchange2ical
1195 ###################
1196
1197 exchange2ical:          bin/exchange2ical
1198
1199 exchange2ical-install:  exchange2ical
1200         $(INSTALL) -d $(DESTDIR)$(bindir)
1201         $(INSTALL) -m 0755 bin/exchange2ical $(DESTDIR)$(bindir)
1202
1203 exchange2ical-uninstall:
1204         rm -f $(DESTDIR)$(bindir)/exchange2ical
1205
1206 exchange2ical-clean::
1207         rm -f bin/exchange2ical
1208         rm -f utils/exchange2ical_tool.o
1209         rm -f utils/exchange2ical_tool.gcno
1210         rm -f utils/exchange2ical_tool.gcda
1211         rm -f libexchange2ical/libexchange2ical.o
1212         rm -f libexchange2ical/libexchange2ical.gcno
1213         rm -f libexchange2ical/libexchange2ical.gcda
1214         rm -f libexchange2ical/exchange2ical.o
1215         rm -f libexchange2ical/exchange2ical.gcno
1216         rm -f libexchange2ical/exchange2ical.gcda
1217         rm -f libexchange2ical/exchange2ical_utils.o
1218         rm -f libexchange2ical/exchange2ical_utils.gcno
1219         rm -f libexchange2ical/exchange2ical_utils.gcda
1220         rm -f libexchange2ical/exchange2ical_component.o
1221         rm -f libexchange2ical/exchange2ical_component.gcno
1222         rm -f libexchange2ical/exchange2ical_component.gcda
1223         rm -f libexchange2ical/exchange2ical_property.o
1224         rm -f libexchange2ical/exchange2ical_property.gcno
1225         rm -f libexchange2ical/exchange2ical_property.gcda
1226         rm -f libexchange2ical/libical2exchange.o
1227         rm -f libexchange2ical/libical2exchange.gcno
1228         rm -f libexchange2ical/libical2exchange.gcda
1229         rm -f libexchange2ical/ical2exchange.o
1230         rm -f libexchange2ical/ical2exchange.gcno
1231         rm -f libexchange2ical/ical2exchange.gcda
1232         rm -f libexchange2ical/ical2exchange_property.o
1233         rm -f libexchange2ical/ical2exchange_property.gcno
1234         rm -f libexchange2ical/ical2exchange_property.gcda
1235         rm -f libexchange2ical/openchange-tools.o
1236         rm -f libexchange2ical/openchange-tools.gcno
1237         rm -f libexchange2ical/openchange-tools.gcda
1238
1239
1240 clean:: exchange2ical-clean
1241
1242 bin/exchange2ical:      utils/exchange2ical_tool.o      \
1243                         libexchange2ical/libexchange2ical.o             \
1244                         libexchange2ical/exchange2ical.o                \
1245                         libexchange2ical/exchange2ical_component.o      \
1246                         libexchange2ical/exchange2ical_property.o       \
1247                         libexchange2ical/exchange2ical_utils.o          \
1248                         libexchange2ical/libical2exchange.o     \
1249                         libexchange2ical/ical2exchange.o        \
1250                         libexchange2ical/ical2exchange_property.o       \
1251                         utils/openchange-tools.o                        \
1252                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1253         @echo "Linking $@"
1254         @$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(ICAL_LIBS) -lpopt
1255
1256
1257 ###################
1258 # mapitest
1259 ###################
1260
1261 mapitest:       libmapi                 \
1262                 utils/mapitest/proto.h  \
1263                 bin/mapitest
1264
1265 mapitest-install:       mapitest
1266         $(INSTALL) -d $(DESTDIR)$(bindir)
1267         $(INSTALL) -m 0755 bin/mapitest $(DESTDIR)$(bindir)
1268         $(INSTALL) -d $(DESTDIR)$(datadir)/mapitest/lzxpress
1269         $(INSTALL) -d $(DESTDIR)$(datadir)/mapitest/lzfu
1270         $(INSTALL) -m 0644 utils/mapitest/data/lzxpress/* $(DESTDIR)$(datadir)/mapitest/lzxpress/
1271         $(INSTALL) -m 0644 utils/mapitest/data/lzfu/* $(DESTDIR)$(datadir)/mapitest/lzfu/
1272
1273 mapitest-uninstall:
1274         rm -f $(DESTDIR)$(bindir)/mapitest
1275         rm -rf $(DESTDIR)$(datadir)/mapitest
1276
1277 mapitest-clean:
1278         rm -f bin/mapitest
1279         rm -f utils/mapitest/*.o
1280         rm -f utils/mapitest/*.gcno
1281         rm -f utils/mapitest/*.gcda
1282         rm -f utils/mapitest/modules/*.o
1283         rm -f utils/mapitest/modules/*.gcno
1284         rm -f utils/mapitest/modules/*.gcda
1285 ifneq ($(SNAPSHOT), no)
1286         rm -f utils/mapitest/proto.h
1287         rm -f utils/mapitest/mapitest_proto.h
1288 endif
1289
1290 clean:: mapitest-clean
1291
1292 bin/mapitest:   utils/mapitest/mapitest.o                       \
1293                 utils/openchange-tools.o                        \
1294                 utils/mapitest/mapitest_suite.o                 \
1295                 utils/mapitest/mapitest_print.o                 \
1296                 utils/mapitest/mapitest_stat.o                  \
1297                 utils/mapitest/mapitest_common.o                \
1298                 utils/mapitest/module.o                         \
1299                 utils/mapitest/modules/module_oxcstor.o         \
1300                 utils/mapitest/modules/module_oxcfold.o         \
1301                 utils/mapitest/modules/module_oxcfxics.o        \
1302                 utils/mapitest/modules/module_oxomsg.o          \
1303                 utils/mapitest/modules/module_oxcmsg.o          \
1304                 utils/mapitest/modules/module_oxcprpt.o         \
1305                 utils/mapitest/modules/module_oxctable.o        \
1306                 utils/mapitest/modules/module_oxorule.o         \
1307                 utils/mapitest/modules/module_oxcnotif.o        \
1308                 utils/mapitest/modules/module_oxcfxics.o        \
1309                 utils/mapitest/modules/module_oxcperm.o         \
1310                 utils/mapitest/modules/module_nspi.o            \
1311                 utils/mapitest/modules/module_noserver.o        \
1312                 utils/mapitest/modules/module_errorchecks.o     \
1313                 utils/mapitest/modules/module_lcid.o            \
1314                 utils/mapitest/modules/module_mapidump.o        \
1315                 utils/mapitest/modules/module_lzxpress.o        \
1316                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          
1317         @echo "Linking $@"
1318         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt $(SUBUNIT_LIBS)
1319
1320 utils/mapitest/proto.h:                                 \
1321         utils/mapitest/mapitest_suite.c                 \
1322         utils/mapitest/mapitest_print.c                 \
1323         utils/mapitest/mapitest_stat.c                  \
1324         utils/mapitest/mapitest_common.c                \
1325         utils/mapitest/module.c                         \
1326         utils/mapitest/modules/module_oxcstor.c         \
1327         utils/mapitest/modules/module_oxcfold.c         \
1328         utils/mapitest/modules/module_oxcfxics.c        \
1329         utils/mapitest/modules/module_oxomsg.c          \
1330         utils/mapitest/modules/module_oxcmsg.c          \
1331         utils/mapitest/modules/module_oxcprpt.c         \
1332         utils/mapitest/modules/module_oxcfxics.c        \
1333         utils/mapitest/modules/module_oxctable.c        \
1334         utils/mapitest/modules/module_oxorule.c         \
1335         utils/mapitest/modules/module_oxcnotif.c        \
1336         utils/mapitest/modules/module_oxcperm.c         \
1337         utils/mapitest/modules/module_nspi.c            \
1338         utils/mapitest/modules/module_noserver.c        \
1339         utils/mapitest/modules/module_errorchecks.c     \
1340         utils/mapitest/modules/module_lcid.c            \
1341         utils/mapitest/modules/module_mapidump.c        \
1342         utils/mapitest/modules/module_lzxpress.c
1343         @echo "Generating $@"
1344         @./script/mkproto.pl --private=utils/mapitest/mapitest_proto.h --public=utils/mapitest/proto.h $^
1345
1346 #####################
1347 # openchangemapidump
1348 #####################
1349
1350 openchangemapidump:             bin/openchangemapidump
1351
1352 openchangemapidump-install:     openchangemapidump
1353         $(INSTALL) -d $(DESTDIR)$(bindir)
1354         $(INSTALL) -m 0755 bin/openchangemapidump $(DESTDIR)$(bindir)
1355
1356 openchangemapidump-uninstall:
1357         rm -f bin/openchangemapidump
1358         rm -f $(DESTDIR)$(bindir)/openchangemapidump
1359
1360 openchangemapidump-clean::
1361         rm -f bin/openchangemapidump
1362         rm -f utils/backup/openchangemapidump.o
1363         rm -f utils/backup/openchangemapidump.gcno
1364         rm -f utils/backup/openchangemapidump.gcda
1365         rm -f utils/backup/openchangebackup.o
1366         rm -f utils/backup/openchangebackup.gcno
1367         rm -f utils/backup/openchangebackup.gcda
1368
1369 clean:: openchangemapidump-clean
1370
1371 bin/openchangemapidump: utils/backup/openchangemapidump.o               \
1372                         utils/backup/openchangebackup.o                 \
1373                         utils/openchange-tools.o                        \
1374                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1375         @echo "Linking $@"
1376         @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1377
1378
1379 ###############
1380 # schemaIDGUID
1381 ###############
1382
1383 schemaIDGUID:           bin/schemaIDGUID
1384
1385 schemaIDGUID-install:   schemaIDGUID
1386         $(INSTALL) -m 0755 bin/schemaIDGUID $(DESTDIR)$(bindir)
1387
1388 schemaIDGUID-uninstall:
1389         rm -f $(DESTDIR)$(bindir)/schemaIDGUID
1390
1391 schemaIDGUID-clean::
1392         rm -f bin/schemaIDGUID
1393         rm -f utils/schemaIDGUID.o
1394         rm -f utils/schemaIDGUID.gcno
1395         rm -f utils/schemaIDGUID.gcda
1396
1397 clean:: schemaIDGUID-clean
1398
1399 bin/schemaIDGUID: utils/schemaIDGUID.o
1400         @echo "Linking $@"
1401         @$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
1402
1403 ###################
1404 # check_fasttransfer test app.
1405 ###################
1406
1407 check_fasttransfer:             bin/check_fasttransfer
1408
1409 check_fasttransfer-install:     check_fasttransfer
1410         $(INSTALL) -d $(DESTDIR)$(bindir)
1411         $(INSTALL) -m 0755 bin/check_fasttransfer $(DESTDIR)$(bindir)
1412
1413 check_fasttransfer-uninstall:
1414         rm -f $(DESTDIR)$(bindir)/check_fasttransfer
1415
1416 check_fasttransfer-clean::
1417         rm -f bin/check_fasttransfer
1418         rm -f testprogs/check_fasttransfer.o
1419         rm -f testprogs/check_fasttransfer.gcno
1420         rm -f testprogs/check_fasttransfer.gcda
1421
1422 clean:: check_fasttransfer-clean
1423
1424 bin/check_fasttransfer: testprogs/check_fasttransfer.o                  \
1425                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1426                         mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
1427         @echo "Linking $@"
1428         @$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt
1429
1430 ###################
1431 # test_asyncnotif test app.
1432 ###################
1433
1434 test_asyncnotif:                bin/test_asyncnotif
1435
1436 test_asyncnotif-install:        test_asyncnotif
1437         $(INSTALL) -d $(DESTDIR)$(bindir)
1438         $(INSTALL) -m 0755 bin/test_asyncnotif $(DESTDIR)$(bindir)
1439
1440 test_asyncnotif-uninstall:
1441         rm -f $(DESTDIR)$(bindir)/test_asyncnotif
1442
1443 test_asyncnotif-clean::
1444         rm -f bin/test_asyncnotif
1445         rm -f testprogs/test_asyncnotif.o
1446         rm -f testprogs/test_asyncnotif.gcno
1447         rm -f testprogs/test_asyncnotif.gcda
1448
1449 clean:: test_asyncnotif-clean
1450
1451 bin/test_asyncnotif:    testprogs/test_asyncnotif.o                     \
1452                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1453         @echo "Linking $@"
1454         @$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt
1455
1456 ###################
1457 # python code
1458 ###################
1459
1460 pythonscriptdir = python
1461
1462 PYTHON_MODULES = $(patsubst $(pythonscriptdir)/%,%,$(shell find  $(pythonscriptdir) -name "*.py"))
1463
1464 python-install::
1465         @echo "Installing Python modules"
1466         @$(foreach MODULE, $(PYTHON_MODULES), \
1467                 $(INSTALL) -d $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1468                 $(INSTALL) -m 0644 $(pythonscriptdir)/$(MODULE) $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1469         )
1470
1471 python-uninstall::
1472         rm -rf $(DESTDIR)$(pythondir)/openchange
1473
1474 EPYDOC_OPTIONS = --no-private --url http://www.openchange.org/ --no-sourcecode
1475
1476 epydoc::
1477         PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) epydoc $(EPYDOC_OPTIONS) openchange
1478
1479 check-python:
1480         PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) trial openchange
1481
1482 check:: check-python
1483
1484 clean-python:
1485         rm -f pymapi/*.o
1486         rm -f $(pythonscriptdir)/mapi.$(SHLIBEXT)
1487         rm -f $(pythonscriptdir)/openchange/*.pyc
1488
1489 clean:: clean-python
1490
1491 pyopenchange:   $(pythonscriptdir)/openchange/mapi.$(SHLIBEXT)                  \
1492                 $(pythonscriptdir)/openchange/mapistore.$(SHLIBEXT)             
1493 #               $(pythonscriptdir)/openchange/ocpf.$(SHLIBEXT)                  \
1494
1495 $(pythonscriptdir)/openchange/mapi.$(SHLIBEXT): pyopenchange/pymapi.c                           \
1496                                                 pyopenchange/pymapi_properties.c                \
1497                                                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1498         @echo "Linking $@"
1499         @$(CC) $(CFLAGS) $(DSOOPT) $(LDFLAGS) -o $@ $^ $(PYTHON_CFLAGS) $(PYTHON_LIBS) $(LIBS) 
1500
1501 # $(pythonscriptdir)/openchange/ocpf.$(SHLIBEXT):       pyopenchange/pyocpf.c                           \
1502 #                                               libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1503 #                                               libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1504 #       @echo "Linking $@"
1505 #       @$(CC) $(CFLAGS) $(DSOOPT) $(LDFLAGS) -o $@ $^ $(PYTHON_CFLAGS) $(PYTHON_LIBS) $(LIBS) 
1506
1507 $(pythonscriptdir)/openchange/mapistore.$(SHLIBEXT):    pyopenchange/mapistore/pymapistore.c                    \
1508                                                         pyopenchange/mapistore/mgmt.c                           \
1509                                                         pyopenchange/mapistore/context.c                        \
1510                                                         pyopenchange/mapistore/folder.c                         \
1511                                                         pyopenchange/mapistore/table.c                          \
1512                                                         mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)   \
1513                                                         mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1514         @echo "Linking $@"
1515         @$(CC) $(CFLAGS) $(DSOOPT) $(LDFLAGS) -o $@ $^ $(PYTHON_CFLAGS) $(PYTHON_LIBS) $(LIBS)
1516
1517
1518 pyopenchange/pymapi_properties.c:               \
1519         libmapi/conf/mapi-properties            \
1520         libmapi/conf/mparse.pl          
1521         @./libmapi/conf/build.sh
1522
1523 pyopenchange-clean:
1524         rm -f pyopenchange/*.o
1525         rm -f pyopenchange/*.pyc
1526 #       rm -f $(pythonscriptdir)/openchange/mapi.$(SHLIBEXT)
1527 #       rm -f $(pythonscriptdir)/openchange/ocpf.$(SHLIBEXT)
1528         rm -f $(pythonscriptdir)/openchange/mapistore.$(SHLIBEXT)
1529
1530 clean:: pyopenchange-clean
1531
1532 pyopenchange-install:
1533         $(INSTALL) -d $(DESTDIR)$(PYCDIR)/openchange
1534         $(INSTALL) -m 0755 $(pythonscriptdir)/openchange/mapi.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)/openchange
1535 #       $(INSTALL) -m 0755 $(pythonscriptdir)/openchange/ocpf.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)/openchange
1536         $(INSTALL) -m 0755 $(pythonscriptdir)/openchange/mapistore.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)/openchange
1537
1538 pyopenchange-uninstall:
1539         rm -f $(DESTDIR)$(PYCDIR)/openchange/mapi.$(SHLIBEXT)
1540         rm -f $(DESTDIR)$(PYCDIR)/openchange/ocpf.$(SHLIBEXT)
1541         rm -f $(DESTDIR)$(PYCDIR)/openchange/mapistore.$(SHLIBEXT)
1542
1543
1544 ###################
1545 # nagios plugin
1546 ###################
1547
1548 nagiosdir = $(libdir)/nagios
1549
1550 installnagios:
1551         $(INSTALL) -d $(DESTDIR)$(nagiosdir)
1552         $(INSTALL) -m 0755 script/check_exchange $(DESTDIR)$(nagiosdir)
1553
1554 ###################
1555 # libmapi examples
1556 ###################
1557 examples:
1558         cd doc/examples && make && cd ${OLD_PWD}
1559
1560 examples-clean::
1561         rm -f doc/examples/mapi_sample1
1562         rm -f doc/examples/fetchappointment
1563         rm -f doc/examples/fetchmail
1564
1565 clean:: examples-clean
1566
1567 examples-install examples-uninstall:
1568
1569 manpages = \
1570                 doc/man/man1/exchange2mbox.1                            \
1571                 doc/man/man1/mapiprofile.1                              \
1572                 doc/man/man1/openchangeclient.1                         \
1573                 doc/man/man1/openchangepfadmin.1                        \
1574                 $(wildcard apidocs/man/man3/*)
1575
1576 installman: doxygen
1577         @./script/installman.sh $(DESTDIR)$(mandir) $(manpages)
1578
1579
1580 uninstallman:
1581         @./script/uninstallman.sh $(DESTDIR)$(mandir) $(manpages)
1582
1583 doxygen:        
1584         @if test ! -d apidocs ; then                                            \
1585                 echo "Doxify API documentation: HTML and man pages";            \
1586                 mkdir -p apidocs/html;                                          \
1587                 mkdir -p apidocs/man;                                           \
1588                 $(DOXYGEN) Doxyfile;                                            \
1589                 $(DOXYGEN) libmapi/Doxyfile;                                    \
1590                 $(DOXYGEN) libmapiadmin/Doxyfile;                               \
1591                 $(DOXYGEN) libocpf/Doxyfile;                                    \
1592                 $(DOXYGEN) libmapi++/Doxyfile;                                  \
1593                 $(DOXYGEN) mapiproxy/Doxyfile;                                  \
1594                 $(DOXYGEN) utils/mapitest/Doxyfile;                             \
1595                 $(DOXYGEN) mapiproxy/libmapistore/Doxyfile;                     \
1596                 cp -f doc/doxygen/index.html apidocs/html;                      \
1597                 cp -f doc/doxygen/pictures/* apidocs/html/overview;             \
1598                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi;              \
1599                 cp -f doc/doxygen/pictures/* apidocs/html/libmapiadmin;         \
1600                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi++;            \
1601                 cp -f doc/doxygen/pictures/* apidocs/html/libocpf;              \
1602                 cp -f doc/doxygen/pictures/* apidocs/html/mapitest;             \
1603                 cp -f doc/doxygen/pictures/* apidocs/html/mapiproxy;            \
1604                 cp -f doc/doxygen/pictures/* apidocs/html/libmapistore;         \
1605                 cp -f mapiproxy/documentation/pictures/* apidocs/html/mapiproxy;\
1606                 rm -f apidocs/man/man3/todo.3;                                  \
1607                 rm -f apidocs/man/man3/bug.3;                                   \
1608                 rm -f apidocs/man/man3/*.c.3;                                   \
1609         fi                                                              
1610
1611 etags:
1612         etags `find $(srcdir) -name "*.[ch]"`
1613
1614 ctags:
1615         ctags `find $(srcdir) -name "*.[ch]"`
1616
1617 .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
1618
1619 test:: check
1620
1621 check:: libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
1622         # FIXME: Set up server
1623         ./bin/mapitest --mapi-calls 
1624
1625 ####################################
1626 # coverage tests
1627 #
1628 # this could be better integrated...
1629 ####################################
1630 coverage-init:
1631         lcov --base-directory . --directory . --capture --initial --output-file oc_cov.info
1632
1633 coverage::
1634         rm -f libmapi/\<stdout\>.gcov
1635         rm -f ./libocpf/lex.yy.gcda
1636         rm -f libocpf/\<stdout\>.gcov
1637         rm -f ./\<stdout\>.gcov
1638         lcov --base-directory .  --directory . --output-file oc_cov.info --capture
1639         genhtml -o covresults oc_cov.info
1640
1641 coverage-clean::
1642         rm -rf oc_cov.info
1643         rm -rf covresults
1644         rm -f test.gcno
1645
1646 clean:: coverage-clean
1647
1648 ####################################
1649 # Qt4 widgets
1650 ####################################
1651 openchange_qt4: qt-lib qt-demoapp
1652
1653 qt-lib: libqtmapi
1654
1655 qt-demoapp: qt/demo/demoapp.moc qt/demo/demoapp 
1656
1657 # No install yet - we need to finish this first
1658
1659 qt-clean::
1660         rm -f qt/demo/demoapp
1661         rm -f qt/demo/*.o
1662         rm -f qt/lib/*.o
1663         rm -f qt/demo/*.moc
1664         rm -f qt/lib/*.moc
1665         rm -f libqtmapi*
1666
1667 clean:: qt-clean
1668
1669 qt/demo/demoapp.moc:    qt/demo/demoapp.h
1670         @$(MOC) -i qt/demo/demoapp.h -o qt/demo/demoapp.moc
1671
1672 qt/lib/foldermodel.moc: qt/lib/foldermodel.h
1673         @$(MOC) -i qt/lib/foldermodel.h -o qt/lib/foldermodel.moc
1674
1675 qt/lib/messagesmodel.moc:       qt/lib/messagesmodel.h
1676         @$(MOC) -i qt/lib/messagesmodel.h -o qt/lib/messagesmodel.moc
1677
1678 libqtmapi: libmapi                                      \
1679         qt/lib/foldermodel.moc                          \
1680         qt/lib/messagesmodel.moc                        \
1681         libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1682
1683 LIBQTMAPI_SO_VERSION = 0
1684
1685 libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION):       \
1686         qt/lib/foldermodel.o                    \
1687         qt/lib/messagesmodel.o
1688         @echo "Linking $@"
1689         @$(CXX) $(DSOOPT) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION) -o $@ $^ $(LIBS)
1690
1691
1692 qt/demo/demoapp: qt/demo/demoapp.o                              \
1693         qt/demo/main.o                                  \
1694         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
1695         libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION)        \
1696         libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1697         @echo "Linking $@"
1698         @$(CXX) $(CXXFLAGS) -o $@ $^ $(QT4_LIBS) $(LDFLAGS) $(LIBS)
1699         # we don't yet install this...
1700         ln -sf libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libqtmapi.$(SHLIBEXT)
1701         ln -sf libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION)
1702
1703 # This should be the last line in the makefile since other distclean rules may 
1704 # need config.mk
1705 distclean::
1706         rm -f config.mk