Daily ChangeLog Update
[OpenChange-git-clone.git] / Makefile
blobe536f63dd2f7a8d6a25b1f79518d6ea245209555
1 # Makefile for OpenChange
2 # Written by Jelmer Vernooij <jelmer@openchange.org>, 2005.
4 default: all
6 # Until we add proper dependencies for all the C files:
7 .NOTPARALLEL:
9 config.mk: config.status config.mk.in
10 ./config.status
12 config.status: configure
13 ./configure
15 configure: configure.ac
16 ./autogen.sh
18 samba:
19 ./script/installsamba4.sh all
21 samba-git:
22 ./script/installsamba4.sh git-all
24 ifneq ($(MAKECMDGOALS), samba)
25 ifneq ($(MAKECMDGOALS), samba-git)
26 include config.mk
27 endif
28 endif
30 #################################################################
31 # top level compilation rules
32 #################################################################
34 all: $(OC_IDL) \
35 $(OC_LIBS) \
36 $(OC_TOOLS) \
37 $(OC_TORTURE) \
38 $(OC_SERVER) \
39 $(SWIGDIRS-ALL) \
40 $(PYMAPIALL)
42 install: all \
43 installlib \
44 installpc \
45 installheader \
46 $(OC_TOOLS_INSTALL) \
47 $(OC_SERVER_INSTALL) \
48 $(OC_TORTURE_INSTALL) \
49 $(SWIGDIRS-INSTALL) \
50 $(PYMAPIINSTALL) \
51 installnagios
53 installlib: $(OC_LIBS_INSTALL)
54 installpc: $(OC_LIBS_INSTALLPC)
55 installheader: $(OC_LIBS_INSTALLHEADERS)
57 uninstall:: $(OC_LIBS_UNINSTALL) \
58 $(OC_TOOLS_UNINSTALL) \
59 $(OC_SERVER_UNINSTALL) \
60 $(OC_TORTURE_UNINSTALL) \
61 $(SWIGDIRS-UNINSTALL) \
62 $(PYMAPIUNINSTALL)
64 distclean:: clean
65 rm -rf autom4te.cache
66 rm -f Doxyfile
67 rm -f libmapi/Doxyfile
68 rm -f libmapiadmin/Doxyfile
69 rm -f libocpf/Doxyfile
70 rm -f libmapi++/Doxyfile
71 rm -f mapiproxy/Doxyfile
72 rm -f config.status config.log
73 rm -f stamp-h1
74 rm -f utils/mapitest/Doxyfile
75 rm -f intltool-extract intltool-merge intltool-update
76 rm -rf apidocs
77 rm -rf gen_ndr
78 rm -f tags
80 clean::
81 rm -f *~
82 rm -f */*~
83 rm -f */*/*~
84 rm -f doc/examples/mapi_sample1
85 rm -f doc/examples/fetchappointment
86 rm -f doc/examples/fetchmail
88 re:: clean install
90 #################################################################
91 # Suffixes compilation rules
92 #################################################################
94 .SUFFIXES: .c .o .h .po .idl
96 .idl.h:
97 @echo "Generating $@"
98 @$(PIDL) --outputdir=gen_ndr --header -- $<
100 .c.o:
101 @echo "Compiling $<"
102 @$(CC) $(CFLAGS) -c $< -o $@
104 .c.po:
105 @echo "Compiling $< with -fPIC"
106 @$(CC) $(CFLAGS) -fPIC -c $< -o $@
110 #################################################################
111 # IDL compilation rules
112 #################################################################
114 idl: gen_ndr gen_ndr/ndr_exchange.h gen_ndr/ndr_property.h
116 exchange.idl: mapitags_enum.h mapicodes_enum.h
118 gen_ndr:
119 @echo "Creating the gen_ndr directory"
120 mkdir -p gen_ndr
122 gen_ndr/ndr_%.h gen_ndr/ndr_%.c: %.idl %.h
123 @echo "Generating $@"
124 @$(PIDL) --outputdir=gen_ndr --ndr-parser -- $<
126 gen_ndr/ndr_%_c.h gen_ndr/ndr_%_c.c: %.idl %.h
127 @echo "Generating $@"
128 @$(PIDL) --outputdir=gen_ndr --client -- $<
130 gen_ndr/ndr_%_s.c: %.idl
131 @echo "Generating $@"
132 @$(PIDL) --outputdir=gen_ndr --server -- $<
136 #################################################################
137 # libmapi compilation rules
138 #################################################################
140 LIBMAPI_SO_VERSION = 0
142 libmapi: idl \
143 libmapi/version.h \
144 libmapi/proto.h \
145 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
147 libmapi-install: libmapi \
148 libmapi-installpc \
149 libmapi-installlib \
150 libmapi-installheader \
151 libmapi-installscript
153 libmapi-uninstall: libmapi-uninstallpc \
154 libmapi-uninstalllib \
155 libmapi-uninstallheader \
156 libmapi-uninstallscript
158 libmapi-clean::
159 rm -f libmapi/*.o libmapi/*.po
160 rm -f libmapi/tests/*.o, libmapi/tests/*.po
161 rm -f libmapi/socket/*.o libmapi/socket/*.po
162 rm -f libmapi/util/*.o, libmapi/util/*.po
163 rm -f libmapi/version.h
164 ifneq ($(SNAPSHOT), no)
165 rm -f libmapi/utf8_convert.yy.c
166 rm -f libmapi/mapicode.c libmapi/mapicode.h
167 rm -f libmapi/mapitags.c libmapi/mapitags.h
168 rm -f libmapi/mapi_nameid.h libmapi/mapi_nameid_private.h
169 rm -f libmapi/proto.h
170 rm -f libmapi/proto_private.h
171 rm -f mapicodes_enum.h
172 rm -f mapitags_enum.h
173 endif
174 rm -f gen_ndr/ndr_exchange*
175 rm -f gen_ndr/exchange.h
176 rm -f gen_ndr/ndr_property*
177 rm -f gen_ndr/property.h
178 rm -f ndr_mapi.o ndr_mapi.po
179 rm -f *~
180 rm -f */*~
181 rm -f */*/*~
182 rm -f libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) \
183 libmapi.$(SHLIBEXT)
185 clean:: libmapi-clean
187 libmapi-distclean::
188 rm -f libmapi.pc
190 distclean:: libmapi-distclean
192 libmapi-installpc:
193 @echo "[*] install: libmapi pc files"
194 $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
195 $(INSTALL) -m 0644 libmapi.pc $(DESTDIR)$(libdir)/pkgconfig
197 libmapi-installlib:
198 @echo "[*] install: libmapi library"
199 $(INSTALL) -d $(DESTDIR)$(libdir)
200 $(INSTALL) -m 0755 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
201 ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT)
203 libmapi-installheader:
204 @echo "[*] install: libmapi headers"
205 $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi
206 $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi/socket
207 $(INSTALL) -d $(DESTDIR)$(includedir)/gen_ndr
208 $(INSTALL) -m 0644 libmapi/dlinklist.h $(DESTDIR)$(includedir)/libmapi/
209 $(INSTALL) -m 0644 libmapi/libmapi.h $(DESTDIR)$(includedir)/libmapi/
210 $(INSTALL) -m 0644 libmapi/proto.h $(DESTDIR)$(includedir)/libmapi/
211 $(INSTALL) -m 0644 libmapi/nspi.h $(DESTDIR)$(includedir)/libmapi/
212 $(INSTALL) -m 0644 libmapi/emsmdb.h $(DESTDIR)$(includedir)/libmapi/
213 $(INSTALL) -m 0644 libmapi/mapi_ctx.h $(DESTDIR)$(includedir)/libmapi/
214 $(INSTALL) -m 0644 libmapi/mapi_provider.h $(DESTDIR)$(includedir)/libmapi/
215 $(INSTALL) -m 0644 libmapi/mapi_id_array.h $(DESTDIR)$(includedir)/libmapi/
216 $(INSTALL) -m 0644 libmapi/mapi_notification.h $(DESTDIR)$(includedir)/libmapi/
217 $(INSTALL) -m 0644 libmapi/mapi_object.h $(DESTDIR)$(includedir)/libmapi/
218 $(INSTALL) -m 0644 libmapi/mapi_profile.h $(DESTDIR)$(includedir)/libmapi/
219 $(INSTALL) -m 0644 libmapi/mapi_nameid.h $(DESTDIR)$(includedir)/libmapi/
220 $(INSTALL) -m 0644 libmapi/mapidefs.h $(DESTDIR)$(includedir)/libmapi/
221 $(INSTALL) -m 0644 libmapi/version.h $(DESTDIR)$(includedir)/libmapi/
222 $(INSTALL) -m 0644 libmapi/mapicode.h $(DESTDIR)$(includedir)/libmapi/
223 $(INSTALL) -m 0644 libmapi/socket/netif.h $(DESTDIR)$(includedir)/libmapi/socket/
224 $(INSTALL) -m 0644 gen_ndr/exchange.h $(DESTDIR)$(includedir)/gen_ndr/
225 $(INSTALL) -m 0644 gen_ndr/property.h $(DESTDIR)$(includedir)/gen_ndr/
227 libmapi-installscript:
228 $(INSTALL) -d $(DESTDIR)$(datadir)/setup/profiles
229 $(INSTALL) -m 0644 setup/profiles/oc_profiles* $(DESTDIR)$(datadir)/setup/profiles/
231 libmapi-uninstallpc:
232 rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi.pc
234 libmapi-uninstalllib:
235 rm -f $(DESTDIR)$(libdir)/libmapi.*
237 libmapi-uninstallheader:
238 rm -rf $(DESTDIR)$(includedir)/libmapi
239 rm -f $(DESTDIR)$(includedir)/gen_ndr/exchange.h
240 rm -f $(DESTDIR)$(includedir)/gen_ndr/property.h
242 libmapi-uninstallscript:
243 rm -f $(DESTDIR)$(datadir)/setup/profiles/oc_profiles*
244 rm -rf $(DESTDIR)$(datadir)/setup/profiles
246 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION): \
247 libmapi/IABContainer.po \
248 libmapi/IProfAdmin.po \
249 libmapi/IMAPIContainer.po \
250 libmapi/IMAPIFolder.po \
251 libmapi/IMAPIProp.po \
252 libmapi/IMAPISession.po \
253 libmapi/IMAPISupport.po \
254 libmapi/IStream.po \
255 libmapi/IMAPITable.po \
256 libmapi/IMessage.po \
257 libmapi/IMsgStore.po \
258 libmapi/IStoreFolder.po \
259 libmapi/IUnknown.po \
260 libmapi/IMSProvider.po \
261 libmapi/IXPLogon.po \
262 libmapi/FXICS.po \
263 libmapi/utils.po \
264 libmapi/property.po \
265 libmapi/cdo_mapi.po \
266 libmapi/lzfu.po \
267 libmapi/mapi_object.po \
268 libmapi/mapi_id_array.po \
269 libmapi/mapitags.po \
270 libmapi/mapidump.po \
271 libmapi/mapicode.po \
272 libmapi/mapi_nameid.po \
273 libmapi/emsmdb.po \
274 libmapi/nspi.po \
275 libmapi/simple_mapi.po \
276 libmapi/util/lcid.po \
277 libmapi/util/codepage.po \
278 libmapi/freebusy.po \
279 libmapi/x500.po \
280 ndr_mapi.po \
281 gen_ndr/ndr_exchange.po \
282 gen_ndr/ndr_exchange_c.po \
283 gen_ndr/ndr_property.po \
284 libmapi/socket/interface.po \
285 libmapi/socket/netif.po \
286 libmapi/utf8_convert.yy.po
287 @echo "Linking $@"
288 @$(CC) $(DSOOPT) -Wl,-soname,libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
291 libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
292 ln -fs $< $@
294 libmapi/version.h: VERSION
295 @./script/mkversion.sh VERSION libmapi/version.h $(PACKAGE_VERSION) $(top_builddir)/
297 libmapi/utf8_convert.yy.c: libmapi/utf8_convert.l
298 @echo "Generating $@"
299 @$(FLEX) -Plibmapi_utf8_convert_ -t $< > $@
301 # Avoid warnings:
302 libmapi/utf8_convert.yy.o: CFLAGS=
304 libmapi/proto.h libmapi/proto_private.h: \
305 libmapi/nspi.c \
306 libmapi/emsmdb.c \
307 libmapi/cdo_mapi.c \
308 libmapi/simple_mapi.c \
309 libmapi/mapitags.c \
310 libmapi/mapicode.c \
311 libmapi/mapidump.c \
312 libmapi/mapi_object.c \
313 libmapi/mapi_id_array.c \
314 libmapi/mapi_nameid.c \
315 libmapi/property.c \
316 libmapi/IABContainer.c \
317 libmapi/IProfAdmin.c \
318 libmapi/IMAPIContainer.c \
319 libmapi/IMAPIFolder.c \
320 libmapi/IMAPIProp.c \
321 libmapi/IMAPISession.c \
322 libmapi/IMAPISupport.c \
323 libmapi/IMAPITable.c \
324 libmapi/IMSProvider.c \
325 libmapi/IMessage.c \
326 libmapi/IMsgStore.c \
327 libmapi/IStoreFolder.c \
328 libmapi/IUnknown.c \
329 libmapi/IStream.c \
330 libmapi/IXPLogon.c \
331 libmapi/FXICS.c \
332 libmapi/freebusy.c \
333 libmapi/x500.c \
334 libmapi/lzfu.c \
335 libmapi/utils.c \
336 libmapi/util/lcid.c \
337 libmapi/util/codepage.c \
338 libmapi/socket/interface.c \
339 libmapi/socket/netif.c
340 @echo "Generating $@"
341 @./script/mkproto.pl --private=libmapi/proto_private.h --public=libmapi/proto.h $^
343 libmapi/emsmdb.c: libmapi/emsmdb.h gen_ndr/ndr_exchange_c.h
345 libmapi/mapitags.c libmapi/mapicode.c mapitags_enum.h mapicodes_enum.h: \
346 libmapi/conf/mapi-properties \
347 libmapi/conf/mapi-codes \
348 libmapi/conf/mapi-named-properties \
349 libmapi/conf/mparse.pl
350 @./libmapi/conf/build.sh
352 #################################################################
353 # libmapi++ compilation rules
354 #################################################################
356 libmapixx: libmapi libmapixx-tests libmapixx-examples
358 libmapixx-installpc:
360 libmapixx-clean: libmapixx-tests-clean
362 libmapixx-install: libmapixx-installheader
364 libmapixx-uninstall: libmapixx-uninstallheader
366 libmapixx-installheader:
367 @echo "[*] install: libmapi++ headers"
368 $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++
369 $(INSTALL) -m 0644 libmapi++/attachment.h $(DESTDIR)$(includedir)/libmapi++/
370 $(INSTALL) -m 0644 libmapi++/clibmapi.h $(DESTDIR)$(includedir)/libmapi++/
371 $(INSTALL) -m 0644 libmapi++/folder.h $(DESTDIR)$(includedir)/libmapi++/
372 $(INSTALL) -m 0644 libmapi++/libmapi++.h $(DESTDIR)$(includedir)/libmapi++/
373 $(INSTALL) -m 0644 libmapi++/mapi_exception.h $(DESTDIR)$(includedir)/libmapi++/
374 $(INSTALL) -m 0644 libmapi++/message.h $(DESTDIR)$(includedir)/libmapi++/
375 $(INSTALL) -m 0644 libmapi++/message_store.h $(DESTDIR)$(includedir)/libmapi++/
376 $(INSTALL) -m 0644 libmapi++/object.h $(DESTDIR)$(includedir)/libmapi++/
377 $(INSTALL) -m 0644 libmapi++/profile.h $(DESTDIR)$(includedir)/libmapi++/
378 $(INSTALL) -m 0644 libmapi++/property_container.h $(DESTDIR)$(includedir)/libmapi++/
379 $(INSTALL) -m 0644 libmapi++/session.h $(DESTDIR)$(includedir)/libmapi++/
380 $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++/impl
381 $(INSTALL) -m 0644 libmapi++/impl/* $(DESTDIR)$(includedir)/libmapi++/impl/
383 libmapixx-uninstallheader:
384 rm -rf $(DESTDIR)$(includedir)/libmapi++
387 libmapixx-tests: libmapixx-test \
388 libmapixx-attach
390 libmapixx-tests-clean: libmapixx-test-clean \
391 libmapixx-attach-clean
393 libmapixx-test: bin/libmapixx-test
395 libmapixx-test-clean:
396 rm -f bin/libmapixx-test
397 rm -f libmapi++/tests/*.o
399 clean:: libmapixx-tests-clean
401 bin/libmapixx-test: libmapi++/tests/test.cpp \
402 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
403 @echo "Linking sample application $@"
404 @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
406 clean:: libmapixx-test-clean
408 libmapixx-attach: bin/libmapixx-attach
410 libmapixx-attach-clean:
411 rm -f bin/libmapixx-attach
412 rm -f libmapi++/tests/*.o
414 bin/libmapixx-attach: libmapi++/tests/attach_test.cpp \
415 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
416 @echo "Linking sample application $@"
417 @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
419 clean:: libmapixx-attach-clean
422 libmapixx-examples: libmapi++/examples/foldertree \
423 libmapi++/examples/messages
425 libmapixx-foldertree-clean:
426 rm -f libmapi++/examples/foldertree
427 rm -f libmapi++/examples/*.o
429 libmapixx-messages-clean:
430 rm -f libmapi++/examples/messages
431 rm -f libmapi++/examples/*.o
433 libmapi++/examples/foldertree: libmapi++/examples/foldertree.cpp \
434 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
435 @echo "Linking foldertree example application $@"
436 @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
438 clean:: libmapixx-foldertree-clean
440 libmapi++/examples/messages: libmapi++/examples/messages.cpp \
441 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
442 @echo "Linking messages example application $@"
443 @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
445 clean:: libmapixx-messages-clean
447 #################################################################
448 # libmapiadmin compilation rules
449 #################################################################
451 LIBMAPIADMIN_SO_VERSION = 0
453 libmapiadmin: libmapiadmin/proto.h \
454 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
456 libmapiadmin-install: libmapiadmin-installpc \
457 libmapiadmin-installlib \
458 libmapiadmin-installheader
460 libmapiadmin-uninstall: libmapiadmin-uninstallpc \
461 libmapiadmin-uninstalllib \
462 libmapiadmin-uninstallheader
464 libmapiadmin-clean::
465 rm -f libmapiadmin/*.o libmapiadmin/*.po
466 ifneq ($(SNAPSHOT), no)
467 rm -f libmapiadmin/proto.h
468 rm -f libmapiadmin/proto_private.h
469 endif
470 rm -f libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) \
471 libmapiadmin.$(SHLIBEXT)
473 clean:: libmapiadmin-clean
475 libmapiadmin-distclean::
476 rm -f libmapiadmin.pc
478 distclean:: libmapiadmin-distclean
480 libmapiadmin-installpc:
481 @echo "[*] install: libmapiadmin pc files"
482 $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
483 $(INSTALL) -m 0644 libmapiadmin.pc $(DESTDIR)$(libdir)/pkgconfig
485 libmapiadmin-installlib:
486 @echo "[*] install: libmapiadmin library"
487 $(INSTALL) -d $(DESTDIR)$(libdir)
488 $(INSTALL) -m 0755 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
489 ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT)
491 libmapiadmin-installheader:
492 @echo "[*] install: libmapiadmin headers"
493 $(INSTALL) -d $(DESTDIR)$(includedir)/libmapiadmin
494 $(INSTALL) -m 0644 libmapiadmin/proto.h $(DESTDIR)$(includedir)/libmapiadmin/
495 $(INSTALL) -m 0644 libmapiadmin/libmapiadmin.h $(DESTDIR)$(includedir)/libmapiadmin/
497 libmapiadmin-uninstallpc:
498 rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiadmin.pc
500 libmapiadmin-uninstalllib:
501 rm -f $(DESTDIR)$(libdir)/libmapiadmin.*
503 libmapiadmin-uninstallheader:
504 rm -rf $(DESTDIR)$(includedir)/libmapiadmin
506 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION): \
507 libmapiadmin/mapiadmin_user.po \
508 libmapiadmin/mapiadmin.po \
509 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
510 @echo "Linking $@"
511 @$(CC) $(DSOOPT) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS)
513 libmapiadmin/proto.h libmapiadmin/proto_private.h: \
514 libmapiadmin/mapiadmin.c \
515 libmapiadmin/mapiadmin_user.c
516 @echo "Generating $@"
517 @./script/mkproto.pl -private=libmapiadmin/proto_private.h --public=libmapiadmin/proto.h $^
521 #################################################################
522 # libocpf compilation rules
523 #################################################################
525 LIBOCPF_SO_VERSION = 0
527 libocpf: libocpf/proto.h \
528 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
530 libocpf-install: libocpf-installpc \
531 libocpf-installlib \
532 libocpf-installheader
534 libocpf-uninstall: libocpf-uninstallpc \
535 libocpf-uninstalllib \
536 libocpf-uninstallheader
538 libocpf-clean::
539 rm -f libocpf/*.o libocpf/*.po
540 ifneq ($(SNAPSHOT), no)
541 rm -f libocpf/lex.yy.c
542 rm -f libocpf/ocpf.tab.c libocpf/ocpf.tab.h
543 rm -f libocpf/proto.h
544 rm -f libocpf/proto_private.h
545 endif
546 rm -f libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) \
547 libocpf.$(SHLIBEXT)
549 clean:: libocpf-clean
551 libocpf-distclean::
552 rm -f libocpf.pc
554 distclean:: libocpf-distclean
556 libocpf-installpc:
557 @echo "[*] install: libocpf pc files"
558 $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
559 $(INSTALL) -m 0644 libocpf.pc $(DESTDIR)$(libdir)/pkgconfig
561 libocpf-installlib:
562 @echo "[*] install: libocpf library"
563 $(INSTALL) -d $(DESTDIR)$(libdir)
564 $(INSTALL) -m 0755 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
565 ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT)
567 libocpf-installheader:
568 @echo "[*] install: libocpf headers"
569 $(INSTALL) -d $(DESTDIR)$(includedir)/libocpf
570 $(INSTALL) -m 0644 libocpf/ocpf.h $(DESTDIR)$(includedir)/libocpf/
571 $(INSTALL) -m 0644 libocpf/proto.h $(DESTDIR)$(includedir)/libocpf/
573 libocpf-uninstallpc:
574 rm -f $(DESTDIR)$(libdir)/pkgconfig/libocpf.pc
576 libocpf-uninstalllib:
577 rm -f $(DESTDIR)$(libdir)/libocpf.*
579 libocpf-uninstallheader:
580 rm -rf $(DESTDIR)$(includedir)/libocpf
582 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION): \
583 libocpf/ocpf.tab.po \
584 libocpf/lex.yy.po \
585 libocpf/ocpf_public.po \
586 libocpf/ocpf_dump.po \
587 libocpf/ocpf_api.po \
588 libocpf/ocpf_write.po \
589 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
590 @echo "Linking $@"
591 @$(CC) $(DSOOPT) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
593 libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION): libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
594 ln -fs $< $@
596 libocpf/proto.h: libocpf/ocpf_public.c \
597 libocpf/ocpf_dump.c \
598 libocpf/ocpf_api.c \
599 libocpf/ocpf_write.c
600 @echo "Generating $@"
601 @./script/mkproto.pl --private=libocpf/proto_private.h \
602 --public=libocpf/proto.h $^
604 libocpf/lex.yy.c: libocpf/lex.l
605 @echo "Generating $@"
606 @$(FLEX) -t $< > $@
608 libocpf/ocpf.tab.c: libocpf/ocpf.y
609 @echo "Generating $@"
610 @$(BISON) -pocpf_yy -d $< -o $@
612 # Avoid warnings
613 libocpf/lex.yy.o: CFLAGS=
614 libocpf/ocpf.tab.o: CFLAGS=
618 #################################################################
619 # torture suite compilation rules
620 #################################################################
622 torture: torture/torture_proto.h \
623 torture/openchange.$(SHLIBEXT)
625 torture-install:
626 @echo "[*] install: openchange torture suite"
627 $(INSTALL) -d $(DESTDIR)$(TORTURE_MODULESDIR)
628 $(INSTALL) -m 0755 torture/openchange.$(SHLIBEXT) $(DESTDIR)$(TORTURE_MODULESDIR)
630 torture-uninstall:
631 rm -f $(DESTDIR)$(TORTURE_MODULESDIR)/openchange.*
633 torture-clean::
634 rm -f torture/*.$(SHLIBEXT)
635 ifneq ($(SNAPSHOT), no)
636 rm -f torture/torture_proto.h
637 endif
638 rm -f torture/*.o torture/*.po
640 clean:: torture-clean
642 torture/openchange.$(SHLIBEXT): \
643 torture/nspi_profile.po \
644 torture/nspi_resolvenames.po \
645 torture/mapi_restrictions.po \
646 torture/mapi_criteria.po \
647 torture/mapi_copymail.po \
648 torture/mapi_sorttable.po \
649 torture/mapi_bookmark.po \
650 torture/mapi_fetchmail.po \
651 torture/mapi_sendmail.po \
652 torture/mapi_sendmail_html.po \
653 torture/mapi_deletemail.po \
654 torture/mapi_newmail.po \
655 torture/mapi_sendattach.po \
656 torture/mapi_fetchattach.po \
657 torture/mapi_fetchappointment.po \
658 torture/mapi_sendappointment.po \
659 torture/mapi_fetchcontacts.po \
660 torture/mapi_sendcontacts.po \
661 torture/mapi_fetchtasks.po \
662 torture/mapi_sendtasks.po \
663 torture/mapi_common.po \
664 torture/mapi_permissions.po \
665 torture/mapi_createuser.po \
666 torture/exchange_createuser.po \
667 torture/mapi_namedprops.po \
668 torture/mapi_recipient.po \
669 torture/openchange.po \
670 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
671 @echo "Linking $@"
672 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
674 torture/torture_proto.h: torture/mapi_restrictions.c \
675 torture/mapi_criteria.c \
676 torture/mapi_deletemail.c \
677 torture/mapi_newmail.c \
678 torture/mapi_fetchmail.c \
679 torture/mapi_sendattach.c \
680 torture/mapi_sorttable.c \
681 torture/mapi_bookmark.c \
682 torture/mapi_copymail.c \
683 torture/mapi_fetchattach.c \
684 torture/mapi_sendmail.c \
685 torture/mapi_sendmail_html.c \
686 torture/nspi_profile.c \
687 torture/nspi_resolvenames.c \
688 torture/mapi_fetchappointment.c \
689 torture/mapi_sendappointment.c \
690 torture/mapi_fetchcontacts.c \
691 torture/mapi_sendcontacts.c \
692 torture/mapi_fetchtasks.c \
693 torture/mapi_sendtasks.c \
694 torture/mapi_common.c \
695 torture/mapi_permissions.c \
696 torture/mapi_namedprops.c \
697 torture/mapi_recipient.c \
698 torture/mapi_createuser.c \
699 torture/exchange_createuser.c \
700 torture/openchange.c
701 @echo "Generating $@"
702 @./script/mkproto.pl --private=torture/torture_proto.h --public=torture/torture_proto.h $^
704 #################################################################
705 # mapiproxy compilation rules
706 #################################################################
707 LIBMAPIPROXY_SO_VERSION = 0
708 LIBMAPISERVER_SO_VERSION = 0
710 .PHONY: mapiproxy
712 mapiproxy: idl \
713 libmapiproxy \
714 libmapiserver \
715 libmapistore \
716 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) \
717 mapiproxy-modules \
718 mapiproxy-servers
720 mapiproxy-install: mapiproxy \
721 mapiproxy-modules-install \
722 mapiproxy-servers-install \
723 libmapiproxy-install \
724 libmapiserver-install \
725 libmapistore-install
726 $(INSTALL) -d $(DESTDIR)$(SERVER_MODULESDIR)
727 $(INSTALL) -m 0755 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
729 mapiproxy-uninstall: mapiproxy-modules-uninstall \
730 mapiproxy-servers-uninstall \
731 libmapiproxy-uninstall \
732 libmapiserver-uninstall \
733 libmapistore-uninstall
734 rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_mapiproxy.*
735 rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
736 rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
738 mapiproxy-clean:: mapiproxy-modules-clean \
739 mapiproxy-servers-clean \
740 libmapiproxy-clean \
741 libmapiserver-clean \
742 libmapistore-clean
743 rm -f mapiproxy/*.o mapiproxy/*.po
744 rm -f mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)
746 clean:: mapiproxy-clean
749 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT): mapiproxy/dcesrv_mapiproxy.po \
750 mapiproxy/dcesrv_mapiproxy_nspi.po \
751 mapiproxy/dcesrv_mapiproxy_rfr.po \
752 mapiproxy/dcesrv_mapiproxy_unused.po \
753 ndr_mapi.po \
754 gen_ndr/ndr_exchange.po
756 @echo "Linking $@"
757 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
759 mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
762 ###############
763 # libmapiproxy
764 ###############
766 libmapiproxy: mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
768 libmapiproxy-install:
769 $(INSTALL) -m 0755 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
770 ln -sf libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiproxy.$(SHLIBEXT)
771 $(INSTALL) -m 0644 mapiproxy/libmapiproxy/libmapiproxy.h $(DESTDIR)$(includedir)/
772 $(INSTALL) -m 0644 mapiproxy/libmapiproxy.pc $(DESTDIR)$(libdir)/pkgconfig
774 libmapiproxy-clean:
775 rm -f mapiproxy/libmapiproxy/*.po mapiproxy/libmapiproxy/*.o
776 ifneq ($(SNAPSHOT), no)
777 rm -f mapiproxy/libmapiproxy/openchangedb_property.c
778 endif
779 rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
780 rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION)
782 libmapiproxy-uninstall:
783 rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
784 rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
785 rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiproxy.pc
787 libmapiproxy-distclean:
788 rm -f mapiproxy/libmapiproxy.pc
790 distclean::libmapiproxy-distclean
792 mapiproxy/libmapiproxy/openchangedb_property.c: libmapi/conf/mapi-properties libmapi/conf/mparse.pl
793 @./libmapi/conf/mparse.pl --parser=openchangedb_property --outputdir=mapiproxy/libmapiproxy/ \
794 libmapi/conf/mapi-properties
796 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/libmapiproxy/dcesrv_mapiproxy_module.po \
797 mapiproxy/libmapiproxy/dcesrv_mapiproxy_server.po \
798 mapiproxy/libmapiproxy/dcesrv_mapiproxy_session.po \
799 mapiproxy/libmapiproxy/openchangedb.po \
800 mapiproxy/libmapiproxy/openchangedb_property.po \
801 mapiproxy/libmapiproxy/mapi_handles.po \
802 mapiproxy/libmapiproxy/entryid.po \
803 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
804 @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS)
806 mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION): libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
807 ln -fs $< $@
810 #################
811 # libmapiserver
812 #################
814 libmapiserver: mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
816 libmapiserver-install:
817 $(INSTALL) -m 0755 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
818 ln -sf libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiserver.$(SHLIBEXT)
819 $(INSTALL) -m 0644 mapiproxy/libmapiserver/libmapiserver.h $(DESTDIR)$(includedir)/
820 $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
822 libmapiserver-clean:
823 rm -f mapiproxy/libmapiserver/*.po mapiproxy/libmapiserver/*.o
824 rm -f mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
825 rm -f mapiproxy/libmapiserver.$(SHLIBEXT).$(LIBMAPISERVER_SO_VERSION)
827 libmapiserver-uninstall:
828 rm -f $(DESTDIR)$(libdir)/libmapiserver.*
829 rm -f $(DESTDIR)$(includedir)/libmapiserver.h
830 rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiserver.pc
832 libmapiserver-distclean:
833 rm -f mapiproxy/libmapiserver.pc
835 distclean:: libmapiserver-distclean
837 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/libmapiserver/libmapiserver_oxcstor.po \
838 mapiproxy/libmapiserver/libmapiserver_oxcprpt.po \
839 mapiproxy/libmapiserver/libmapiserver_oxcfold.po \
840 mapiproxy/libmapiserver/libmapiserver_oxctabl.po \
841 mapiproxy/libmapiserver/libmapiserver_oxcmsg.po \
842 mapiproxy/libmapiserver/libmapiserver_oxcnotif.po \
843 mapiproxy/libmapiserver/libmapiserver_oxorule.po
844 @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiserver.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^
846 mapiproxy/libmapiserver.$(SHLIBEXT).$(LIBMAPISERVER_SO_VERSION): libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION)
847 ln -fs $< $@
850 ################
851 # libmapistore
852 ################
854 libmapistore: mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) \
855 $(OC_MAPISTORE) \
856 mapistore_test
858 libmapistore-install: $(OC_MAPISTORE_INSTALL)
859 $(INSTALL) -m 0755 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
860 ln -sf libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapistore.$(SHLIBEXT)
861 $(INSTALL) -d $(DESTDIR)$(includedir)/mapistore
862 $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore.h $(DESTDIR)$(includedir)/mapistore/
863 $(INSTALL) -m 0644 mapiproxy/libmapistore/mapistore_errors.h $(DESTDIR)$(includedir)/mapistore/
864 $(INSTALL) -m 0644 mapiproxy/libmapiserver.pc $(DESTDIR)$(libdir)/pkgconfig
866 libmapistore-clean: $(OC_MAPISTORE_CLEAN)
867 rm -f mapiproxy/libmapistore/*.po mapiproxy/libmapistore/*.o
868 rm -f mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
869 rm -f mapiproxy/libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION)
871 libmapistore-uninstall: $(OC_MAPISTORE_UNINSTALL)
872 rm -f $(DESTDIR)$(libdir)/libmapistore.*
873 rm -rf $(DESTDIR)$(includedir)/mapistore
874 rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapistore.pc
876 libmapistore-distclean: libmapistore-clean
877 rm -f mapiproxy/libmapistore.pc
879 distclean:: libmapistore-distclean
881 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/libmapistore/mapistore_interface.po \
882 mapiproxy/libmapistore/mapistore_processing.po \
883 mapiproxy/libmapistore/mapistore_backend.po \
884 mapiproxy/libmapistore/mapistore_tdb_wrap.po
885 @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION) $^ -L. $(LIBS)
887 mapiproxy/libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION): libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
889 #####################
890 # mapistore backends
891 #####################
893 mapistore_sqlite3: mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT)
895 mapistore_sqlite3-install:
896 $(INSTALL) -d $(DESTDIR)$(libdir)/mapistore_backends
897 $(INSTALL) -m 0755 mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT) $(DESTDIR)$(libdir)/mapistore_backends/
899 mapistore_sqlite3-uninstall:
900 rm -rf $(DESTDIR)$(libdir)/mapistore_backends
902 mapistore_sqlite3-clean:
903 rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.o
904 rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.po
906 clean:: mapistore_sqlite3-clean
908 mapistore_sqlite3-distclean: mapistore_sqlite3-clean
909 rm -f mapiproxy/libmapistore/backends/mapistore_sqlite3.so
911 distclean:: mapistore_sqlite3-distclean
913 mapiproxy/libmapistore/backends/mapistore_sqlite3.$(SHLIBEXT): mapiproxy/libmapistore/backends/mapistore_sqlite3.po
914 @echo "Linking mapistore module $@"
915 @$(CC) $(SQLITE_CFLAGS) -o $@ $(DSOOPT) $^ -L. $(LIBS) $(SQLITE_LIBS) \
916 -Lmapiproxy mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
918 #######################
919 # mapistore test tools
920 #######################
922 mapistore_test: bin/mapistore_test
924 bin/mapistore_test: mapiproxy/libmapistore/tests/mapistore_test.o \
925 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
926 @echo "Linking $@"
927 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
929 mapistore_clean:
930 rm -f mapiproxy/libmapistore/tests/*.o
931 rm -f bin/mapistore_test
933 clean:: mapistore_clean
935 ####################
936 # mapiproxy modules
937 ####################
939 mapiproxy-modules: mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) \
940 mapiproxy/modules/mpm_pack.$(SHLIBEXT) \
941 mapiproxy/modules/mpm_cache.$(SHLIBEXT) \
942 mapiproxy/modules/mpm_dummy.$(SHLIBEXT)
944 mapiproxy-modules-install: mapiproxy-modules
945 $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
946 $(INSTALL) -m 0755 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
947 $(INSTALL) -m 0755 mapiproxy/modules/mpm_pack.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
948 $(INSTALL) -m 0755 mapiproxy/modules/mpm_cache.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
949 $(INSTALL) -m 0755 mapiproxy/modules/mpm_dummy.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
951 mapiproxy-modules-uninstall:
952 rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy
954 mapiproxy-modules-clean::
955 rm -f mapiproxy/modules/*.o mapiproxy/modules/*.po
956 rm -f mapiproxy/modules/*.so
958 clean:: mapiproxy-modules-clean
960 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT): mapiproxy/modules/mpm_downgrade.po
961 @echo "Linking $@"
962 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
964 mapiproxy/modules/mpm_pack.$(SHLIBEXT): mapiproxy/modules/mpm_pack.po \
965 ndr_mapi.po \
966 gen_ndr/ndr_exchange.po
967 @echo "Linking $@"
968 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
970 mapiproxy/modules/mpm_cache.$(SHLIBEXT): mapiproxy/modules/mpm_cache.po \
971 mapiproxy/modules/mpm_cache_ldb.po \
972 mapiproxy/modules/mpm_cache_stream.po \
973 ndr_mapi.po \
974 gen_ndr/ndr_exchange.po
975 @echo "Linking $@"
976 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
978 mapiproxy/modules/mpm_dummy.$(SHLIBEXT): mapiproxy/modules/mpm_dummy.po
979 @echo "Linking $@"
980 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
983 ####################
984 # mapiproxy servers
985 ####################
986 provision-install: python-install
987 $(INSTALL) -d $(DESTDIR)$(datadir)/setup/AD
988 $(INSTALL) -m 0644 setup/AD/oc_provision* $(DESTDIR)$(datadir)/setup/AD/
989 $(INSTALL) -m 0644 setup/AD/prefixMap.txt $(DESTDIR)$(datadir)/setup/AD/
990 $(INSTALL) -d $(DESTDIR)$(datadir)/setup/openchangedb
991 $(INSTALL) -m 0644 setup/openchangedb/oc_provision* $(DESTDIR)$(datadir)/setup/openchangedb/
993 provision-uninstall: python-uninstall
994 rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_configuration.ldif
995 rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema.ldif
996 rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_modify.ldif
997 rm -f $(DESTDIR)$(datadir)/setup/AD/oc_provision_schema_ADSC.ldif
998 rm -f $(DESTDIR)$(datadir)/setup/AD/prefixMap.txt
999 rm -rf $(DESTDIR)$(datadir)/setup/AD
1000 rm -rf $(DESTDIR)$(datadir)/setup/openchangedb
1002 mapiproxy-servers: mapiproxy/servers/exchange_nsp.$(SHLIBEXT) \
1003 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT) \
1004 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT)
1006 mapiproxy-servers-install: mapiproxy-servers provision-install
1007 $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1008 $(INSTALL) -m 0755 mapiproxy/servers/exchange_nsp.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1009 $(INSTALL) -m 0755 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1010 $(INSTALL) -m 0755 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
1012 mapiproxy-servers-uninstall: provision-uninstall
1013 rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server
1015 mapiproxy-servers-clean::
1016 rm -f mapiproxy/servers/default/nspi/*.o mapiproxy/servers/default/nspi/*.po
1017 rm -f mapiproxy/servers/default/emsmdb/*.o mapiproxy/servers/default/emsmdb/*.po
1018 rm -f mapiproxy/servers/default/rfr/*.o mapiproxy/servers/default/rfr/*.po
1019 rm -f mapiproxy/servers/*.so
1021 clean:: mapiproxy-servers-clean
1023 mapiproxy/servers/exchange_nsp.$(SHLIBEXT): mapiproxy/servers/default/nspi/dcesrv_exchange_nsp.po \
1024 mapiproxy/servers/default/nspi/emsabp.po \
1025 mapiproxy/servers/default/nspi/emsabp_tdb.po \
1026 mapiproxy/servers/default/nspi/emsabp_property.po
1027 @echo "Linking $@"
1028 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1030 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT): mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.po \
1031 mapiproxy/servers/default/emsmdb/emsmdbp.po \
1032 mapiproxy/servers/default/emsmdb/emsmdbp_object.po \
1033 mapiproxy/servers/default/emsmdb/oxcstor.po \
1034 mapiproxy/servers/default/emsmdb/oxcprpt.po \
1035 mapiproxy/servers/default/emsmdb/oxcfold.po \
1036 mapiproxy/servers/default/emsmdb/oxctabl.po \
1037 mapiproxy/servers/default/emsmdb/oxcmsg.po \
1038 mapiproxy/servers/default/emsmdb/oxcnotif.po \
1039 mapiproxy/servers/default/emsmdb/oxorule.po
1040 @echo "Linking $@"
1041 @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
1042 mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) \
1043 mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION)
1045 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT): mapiproxy/servers/default/rfr/dcesrv_exchange_ds_rfr.po
1046 @echo "Linking $@"
1047 @$(CC) -o $@ $(DSOOPT) $^ -L $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
1049 #################################################################
1050 # Tools compilation rules
1051 #################################################################
1053 ###################
1054 # openchangeclient
1055 ###################
1057 openchangeclient: bin/openchangeclient
1059 openchangeclient-install: openchangeclient
1060 $(INSTALL) -d $(DESTDIR)$(bindir)
1061 $(INSTALL) -m 0755 bin/openchangeclient $(DESTDIR)$(bindir)
1063 openchangeclient-uninstall:
1064 rm -f $(DESTDIR)$(bindir)/openchangeclient
1066 openchangeclient-clean::
1067 rm -f bin/openchangeclient
1068 rm -f utils/openchangeclient.o
1069 rm -f utils/openchange-tools.o
1071 clean:: openchangeclient-clean
1073 bin/openchangeclient: utils/openchangeclient.o \
1074 utils/openchange-tools.o \
1075 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
1076 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
1077 @echo "Linking $@"
1078 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1081 ##############
1082 # mapiprofile
1083 ##############
1085 mapiprofile: bin/mapiprofile
1087 mapiprofile-install: mapiprofile
1088 $(INSTALL) -d $(DESTDIR)$(bindir)
1089 $(INSTALL) -m 0755 bin/mapiprofile $(DESTDIR)$(bindir)
1091 mapiprofile-uninstall:
1092 rm -f $(DESTDIR)$(bindir)/mapiprofile
1094 mapiprofile-clean::
1095 rm -f bin/mapiprofile
1096 rm -f utils/mapiprofile.o
1098 clean:: mapiprofile-clean
1100 bin/mapiprofile: utils/mapiprofile.o \
1101 utils/openchange-tools.o \
1102 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1103 @echo "Linking $@"
1104 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1107 ###################
1108 #openchangepfadmin
1109 ###################
1111 openchangepfadmin: bin/openchangepfadmin
1113 openchangepfadmin-install: openchangepfadmin
1114 $(INSTALL) -d $(DESTDIR)$(bindir)
1115 $(INSTALL) -m 0755 bin/openchangepfadmin $(DESTDIR)$(bindir)
1117 openchangepfadmin-uninstall:
1118 rm -f $(DESTDIR)$(bindir)/openchangepfadmin
1120 openchangepfadmin-clean::
1121 rm -f bin/openchangepfadmin
1122 rm -f utils/openchangepfadmin.o
1124 clean:: openchangepfadmin-clean
1126 bin/openchangepfadmin: utils/openchangepfadmin.o \
1127 utils/openchange-tools.o \
1128 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
1129 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
1130 @echo "Linking $@"
1131 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt
1134 ###################
1135 # exchange2mbox
1136 ###################
1138 exchange2mbox: bin/exchange2mbox
1140 exchange2mbox-install: exchange2mbox
1141 $(INSTALL) -d $(DESTDIR)$(bindir)
1142 $(INSTALL) -m 0755 bin/exchange2mbox $(DESTDIR)$(bindir)
1144 exchange2mbox-uninstall:
1145 rm -f $(DESTDIR)$(bindir)/exchange2mbox
1147 exchange2mbox-clean::
1148 rm -f bin/exchange2mbox
1149 rm -f utils/exchange2mbox.o
1150 rm -f utils/openchange-tools.o
1152 clean:: exchange2mbox-clean
1154 bin/exchange2mbox: utils/exchange2mbox.o \
1155 utils/openchange-tools.o \
1156 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1157 @echo "Linking $@"
1158 @$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt $(MAGIC_LIBS)
1161 ###################
1162 # exchange2ical
1163 ###################
1165 exchange2ical: bin/exchange2ical
1167 exchange2ical-install: exchange2ical
1168 $(INSTALL) -d $(DESTDIR)$(bindir)
1169 $(INSTALL) -m 0755 bin/exchange2ical $(DESTDIR)$(bindir)
1171 exchange2ical-uninstall:
1172 rm -f $(DESTDIR)$(bindir)/exchange2ical
1174 exchange2ical-clean::
1175 rm -f bin/exchange2ical
1176 rm -f utils/exchange2ical/exchange2ical.o
1177 rm -f utils/exchange2ical/exchange2ical_utils.o
1178 rm -f utils/exchange2ical/exchange2ical_component.o
1179 rm -f utils/exchange2ical/exchange2ical_property.o
1180 rm -f utils/openchange-tools.o
1182 clean:: exchange2ical-clean
1184 bin/exchange2ical: utils/exchange2ical/exchange2ical.o \
1185 utils/exchange2ical/exchange2ical_component.o \
1186 utils/exchange2ical/exchange2ical_property.o \
1187 utils/exchange2ical/exchange2ical_utils.o \
1188 utils/openchange-tools.o \
1189 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1190 @echo "Linking $@"
1191 @$(CC) -o $@ $^ $(LIBS) $(ICAL_LIBS) -lpopt
1194 ###################
1195 # mapitest
1196 ###################
1198 mapitest: libmapi \
1199 utils/mapitest/proto.h \
1200 bin/mapitest
1202 mapitest-install: mapitest
1203 $(INSTALL) -d $(DESTDIR)$(bindir)
1204 $(INSTALL) -m 0755 bin/mapitest $(DESTDIR)$(bindir)
1206 mapitest-uninstall:
1207 rm -f $(DESTDIR)$(bindir)/mapitest
1209 mapitest-clean:
1210 rm -f bin/mapitest
1211 rm -f utils/mapitest/*.o
1212 rm -f utils/mapitest/modules/*.o
1213 ifneq ($(SNAPSHOT), no)
1214 rm -f utils/mapitest/proto.h
1215 rm -f utils/mapitest/mapitest_proto.h
1216 endif
1218 clean:: mapitest-clean
1220 bin/mapitest: utils/mapitest/mapitest.o \
1221 utils/openchange-tools.o \
1222 utils/mapitest/mapitest_suite.o \
1223 utils/mapitest/mapitest_print.o \
1224 utils/mapitest/mapitest_stat.o \
1225 utils/mapitest/mapitest_common.o \
1226 utils/mapitest/module.o \
1227 utils/mapitest/modules/module_oxcstor.o \
1228 utils/mapitest/modules/module_oxcfold.o \
1229 utils/mapitest/modules/module_oxomsg.o \
1230 utils/mapitest/modules/module_oxcmsg.o \
1231 utils/mapitest/modules/module_oxcprpt.o \
1232 utils/mapitest/modules/module_oxctable.o \
1233 utils/mapitest/modules/module_oxorule.o \
1234 utils/mapitest/modules/module_oxcnotif.o \
1235 utils/mapitest/modules/module_oxcfxics.o \
1236 utils/mapitest/modules/module_nspi.o \
1237 utils/mapitest/modules/module_noserver.o \
1238 utils/mapitest/modules/module_errorchecks.o \
1239 utils/mapitest/modules/module_lcid.o \
1240 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1241 @echo "Linking $@"
1242 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1244 utils/mapitest/proto.h: \
1245 utils/mapitest/mapitest_suite.c \
1246 utils/mapitest/mapitest_print.c \
1247 utils/mapitest/mapitest_stat.c \
1248 utils/mapitest/mapitest_common.c \
1249 utils/mapitest/module.c \
1250 utils/mapitest/modules/module_oxcstor.c \
1251 utils/mapitest/modules/module_oxcfold.c \
1252 utils/mapitest/modules/module_oxomsg.c \
1253 utils/mapitest/modules/module_oxcmsg.c \
1254 utils/mapitest/modules/module_oxcprpt.c \
1255 utils/mapitest/modules/module_oxctable.c \
1256 utils/mapitest/modules/module_oxorule.c \
1257 utils/mapitest/modules/module_oxcnotif.c \
1258 utils/mapitest/modules/module_oxcfxics.c \
1259 utils/mapitest/modules/module_nspi.c \
1260 utils/mapitest/modules/module_noserver.c \
1261 utils/mapitest/modules/module_errorchecks.c \
1262 utils/mapitest/modules/module_lcid.c
1263 @echo "Generating $@"
1264 @./script/mkproto.pl --private=utils/mapitest/mapitest_proto.h --public=utils/mapitest/proto.h $^
1266 #####################
1267 # openchangemapidump
1268 #####################
1270 openchangemapidump: bin/openchangemapidump
1272 openchangemapidump-install: openchangemapidump
1273 $(INSTALL) -d $(DESTDIR)$(bindir)
1274 $(INSTALL) -m 0755 bin/openchangemapidump $(DESTDIR)$(bindir)
1276 openchangemapidump-uninstall:
1277 rm -f bin/openchangemapidump
1278 rm -f $(DESTDIR)$(bindir)/openchangemapidump
1280 openchangemapidump-clean::
1281 rm -f bin/openchangemapidump
1282 rm -f utils/backup/openchangemapidump.o
1283 rm -f utils/backup/openchangebackup.o
1285 clean:: openchangemapidump-clean
1287 bin/openchangemapidump: utils/backup/openchangemapidump.o \
1288 utils/backup/openchangebackup.o \
1289 utils/openchange-tools.o \
1290 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1291 @echo "Linking $@"
1292 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1295 ###############
1296 # schemaIDGUID
1297 ###############
1299 schemaIDGUID: bin/schemaIDGUID
1301 schemaIDGUID-install: schemaIDGUID
1302 $(INSTALL) -m 0755 bin/schemaIDGUID $(DESTDIR)$(bindir)
1304 schemaIDGUID-uninstall:
1305 rm -f $(DESTDIR)$(bindir)/schemaIDGUID
1307 schemaIDGUID-clean::
1308 rm -f bin/schemaIDGUID
1309 rm -f utils/schemaIDGUID.o
1311 clean:: schemaIDGUID-clean
1313 bin/schemaIDGUID: utils/schemaIDGUID.o
1314 @echo "Linking $@"
1315 @$(CC) -o $@ $^ $(LIBS)
1318 ##################
1319 # locale_codepage
1320 ##################
1322 locale_codepage: bin/locale_codepage
1324 locale_codepage-install: locale_codepage
1325 $(INSTALL) -m 0755 bin/locale_codepage $(DESTDIR)$(bindir)
1327 locale_codepage-uninstall:
1328 rm -f bin/locale_codepage
1329 rm -f $(DESTDIR)$(bindir)/locale_codepage
1331 locale_codepage-clean::
1332 rm -f bin/locale_codepage
1333 rm -f libmapi/tests/locale_codepage.o
1335 clean:: locale_codepage-clean
1337 bin/locale_codepage: libmapi/tests/locale_codepage.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1338 @echo "Linking $@"
1339 @$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
1341 ###################
1342 # python code
1343 ###################
1345 pythonscriptdir = python
1347 pymapi: $(pythonscriptdir)/mapi.$(SHLIBEXT)
1349 pymapi/%: CFLAGS+=`$(PYTHON_CONFIG) --cflags` -fPIC
1351 $(pythonscriptdir)/mapi.$(SHLIBEXT): $(patsubst %.c,%.o,$(wildcard pymapi/*.c)) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1352 $(CC) -o $@ $^ `$(PYTHON_CONFIG) --libs` $(DSOOPT)
1354 pymapi-install::
1355 $(INSTALL) -d $(DESTDIR)$(PYCDIR)
1356 $(INSTALL) -m 0755 $(pythonscriptdir)/mapi.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)
1358 pymapi-uninstall::
1359 rm -f $(DESTDIR)$(PYCDIR)/mapi.$(SHLIBEXT)
1361 PYTHON_MODULES = $(patsubst $(pythonscriptdir)/%,%,$(shell find $(pythonscriptdir) -name "*.py"))
1363 python-install::
1364 @echo "Installing Python modules"
1365 @$(foreach MODULE, $(PYTHON_MODULES), \
1366 $(INSTALL) -d $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1367 $(INSTALL) -m 0644 $(pythonscriptdir)/$(MODULE) $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1370 python-uninstall::
1371 rm -rf $(DESTDIR)$(pythondir)/openchange
1373 EPYDOC_OPTIONS = --no-private --url http://www.openchange.org/ --no-sourcecode
1375 epydoc::
1376 PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) epydoc $(EPYDOC_OPTIONS) openchange
1378 check-python:
1379 PYTHONPATH=$(pythonscriptdir):$(PYTHONPATH) trial openchange
1381 check:: check-python
1383 ###################
1384 # nagios plugin
1385 ###################
1387 nagiosdir = $(libdir)/nagios
1389 installnagios:
1390 $(INSTALL) -d $(DESTDIR)$(nagiosdir)
1391 $(INSTALL) -m 0755 script/check_exchange $(DESTDIR)$(nagiosdir)
1393 ###################
1394 # libmapi examples
1395 ###################
1396 examples:
1397 cd doc/examples && make && cd ${OLD_PWD}
1399 examples-clean::
1400 rm -f doc/examples/mapi_sample1
1401 rm -f doc/examples/fetchappointment
1402 rm -f doc/examples/fetchmail
1404 clean:: examples-clean
1406 examples-install examples-uninstall:
1408 manpages = \
1409 doc/man/man1/exchange2mbox.1 \
1410 doc/man/man1/mapiprofile.1 \
1411 doc/man/man1/openchangeclient.1 \
1412 doc/man/man1/openchangepfadmin.1 \
1413 $(wildcard apidocs/man/man3/*)
1415 installman: doxygen
1416 @./script/installman.sh $(DESTDIR)$(mandir) $(manpages)
1419 uninstallman:
1420 @./script/uninstallman.sh $(DESTDIR)$(mandir) $(manpages)
1422 doxygen:
1423 @if test ! -d apidocs ; then \
1424 echo "Doxify API documentation: HTML and man pages"; \
1425 mkdir -p apidocs/html; \
1426 mkdir -p apidocs/man; \
1427 $(DOXYGEN) Doxyfile; \
1428 $(DOXYGEN) libmapi/Doxyfile; \
1429 $(DOXYGEN) libmapiadmin/Doxyfile; \
1430 $(DOXYGEN) libocpf/Doxyfile; \
1431 $(DOXYGEN) libmapi++/Doxyfile; \
1432 $(DOXYGEN) mapiproxy/Doxyfile; \
1433 $(DOXYGEN) utils/mapitest/Doxyfile; \
1434 cp -f doc/doxygen/index.html apidocs/html; \
1435 cp -f doc/doxygen/pictures/* apidocs/html/overview; \
1436 cp -f doc/doxygen/pictures/* apidocs/html/libmapi; \
1437 cp -f doc/doxygen/pictures/* apidocs/html/libmapiadmin; \
1438 cp -f doc/doxygen/pictures/* apidocs/html/libmapi++; \
1439 cp -f doc/doxygen/pictures/* apidocs/html/libocpf; \
1440 cp -f doc/doxygen/pictures/* apidocs/html/mapitest; \
1441 cp -f doc/doxygen/pictures/* apidocs/html/mapiproxy; \
1442 cp -f mapiproxy/documentation/pictures/* apidocs/html/mapiproxy;\
1443 rm -f apidocs/man/man3/todo.3; \
1444 rm -f apidocs/man/man3/bug.3; \
1445 rm -f apidocs/man/man3/*.c.3; \
1448 etags:
1449 etags `find $(srcdir) -name "*.[ch]"`
1451 ctags:
1452 ctags `find $(srcdir) -name "*.[ch]"`
1454 swigperl-all:
1455 @echo "Creating Perl bindings ..."
1456 @$(MAKE) -C swig/perl all
1458 swigperl-install:
1459 @echo "Install Perl bindings ..."
1460 @$(MAKE) -C swig/perl install
1462 swigperl-uninstall:
1463 @echo "Uninstall Perl bindings ..."
1464 @$(MAKE) -C swig/perl uninstall
1466 distclean::
1467 @$(MAKE) -C swig/perl distclean
1469 clean::
1470 @echo "Cleaning Perl bindings ..."
1471 @$(MAKE) -C swig/perl clean
1473 .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
1475 test:: check
1477 check:: torture/openchange.$(SHLIBEXT) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
1478 # FIXME: Set up server
1479 LD_LIBRARY_PATH=`pwd` $(SMBTORTURE) --load-module torture/openchange.$(SHLIBEXT) ncalrpc: OPENCHANGE
1480 ./bin/mapitest --mapi-calls
1482 # This should be the last line in the makefile since other distclean rules may
1483 # need config.mk
1484 distclean::
1485 rm -f config.mk