1
# Makefile for OpenChange
2
# Written by Jelmer Vernooij <jelmer@samba.org>, 2005.
6
# Until we add proper dependencies for all the C files:
9
config.mk: config.status config.mk.in
12
config.status: configure
15
configure: configure.ac
19
./script/installsamba4.sh all
22
./script/installsamba4.sh git-all
24
ifneq ($(MAKECMDGOALS), samba)
25
ifneq ($(MAKECMDGOALS), samba-git)
30
#################################################################
31
# top level compilation rules
32
#################################################################
46
$(OC_SERVER_INSTALL) \
47
$(OC_TORTURE_INSTALL) \
51
installlib: $(OC_LIBS_INSTALL)
52
installpc: $(OC_LIBS_INSTALLPC)
53
installheader: $(OC_LIBS_INSTALLHEADERS)
55
uninstall:: $(OC_LIBS_UNINSTALL) \
56
$(OC_TOOLS_UNINSTALL) \
57
$(OC_SERVER_UNINSTALL) \
58
$(OC_TORTURE_UNINSTALL) \
64
rm -f libmapi/Doxyfile
65
rm -f libocpf/Doxyfile
66
rm -f mapiproxy/Doxyfile
67
rm -f config.status config.log
68
rm -f utils/mapitest/Doxyfile
69
rm -f intltool-extract intltool-merge intltool-update
78
rm -f doc/examples/mapi_sample1
79
rm -f doc/examples/fetchappointment
80
rm -f doc/examples/fetchmail
84
#################################################################
85
# Suffixes compilation rules
86
#################################################################
88
.SUFFIXES: .c .o .h .po .idl
92
@$(PIDL) --outputdir=gen_ndr --header -- $<
96
@$(CC) $(CFLAGS) -c $< -o $@
99
@echo "Compiling $< with -fPIC"
100
@$(CC) $(CFLAGS) -fPIC -c $< -o $@
104
#################################################################
105
# IDL compilation rules
106
#################################################################
108
idl: gen_ndr gen_ndr/ndr_exchange.h
110
exchange.idl: mapitags_enum.h mapicodes_enum.h
113
@echo "Creating the gen_ndr directory"
116
gen_ndr/ndr_%.h gen_ndr/ndr_%.c: %.idl %.h
117
@echo "Generating $@"
118
@$(PIDL) --outputdir=gen_ndr --ndr-parser -- $<
120
gen_ndr/ndr_%_c.h gen_ndr/ndr_%_c.c: %.idl %.h
121
@echo "Generating $@"
122
@$(PIDL) --outputdir=gen_ndr --client -- $<
124
gen_ndr/ndr_%_s.c: %.idl
125
@echo "Generating $@"
126
@$(PIDL) --outputdir=gen_ndr --server -- $<
130
#################################################################
131
# libmapi compilation rules
132
#################################################################
134
LIBMAPI_SO_VERSION = 0
139
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
141
libmapi-install: libmapi-installpc \
143
libmapi-installheader \
144
libmapi-installscript
146
libmapi-uninstall: libmapi-uninstallpc \
147
libmapi-uninstalllib \
148
libmapi-uninstallheader \
149
libmapi-uninstallscript
152
rm -f libmapi/*.o libmapi/*.po
153
rm -f libmapi/utf8_convert.yy.c
154
rm -f libmapi/tests/*.o, libmapi/tests/*.po
155
rm -f libmapi/socket/*.o libmapi/socket/*.po
156
rm -f libmapi/util/*.o, libmapi/util/*.po
157
rm -f libmapi/version.h
158
rm -f libmapi/mapicode.c libmapi/mapicode.h
159
rm -f libmapi/mapitags.c libmapi/mapitags.h
160
rm -f libmapi/mapi_nameid_private.h
161
rm -f libmapi/proto.h
162
rm -f libmapi/proto_private.h
163
rm -f gen_ndr/ndr_exchange*
164
rm -f gen_ndr/exchange.h
165
rm -f ndr_mapi.o ndr_mapi.po
166
rm -f mapicodes_enum.h
167
rm -f mapitags_enum.h
171
rm -f libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) \
174
clean:: libmapi-clean
179
distclean:: libmapi-distclean
182
@echo "[*] install: libmapi pc files"
183
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
184
$(INSTALL) -m 0644 libmapi.pc $(DESTDIR)$(libdir)/pkgconfig
187
@echo "[*] install: libmapi library"
188
$(INSTALL) -d $(DESTDIR)$(libdir)
189
$(INSTALL) -m 0755 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
190
ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT)
192
libmapi-installheader:
193
@echo "[*] install: libmapi headers"
194
$(INSTALL) -d $(DESTDIR)$(includedir)/libmapi
195
$(INSTALL) -d $(DESTDIR)$(includedir)/libmapi/socket
196
$(INSTALL) -d $(DESTDIR)$(includedir)/gen_ndr
197
$(INSTALL) -m 0644 libmapi/dlinklist.h $(DESTDIR)$(includedir)/libmapi/
198
$(INSTALL) -m 0644 libmapi/libmapi.h $(DESTDIR)$(includedir)/libmapi/
199
$(INSTALL) -m 0644 libmapi/proto.h $(DESTDIR)$(includedir)/libmapi/
200
$(INSTALL) -m 0644 libmapi/nspi.h $(DESTDIR)$(includedir)/libmapi/
201
$(INSTALL) -m 0644 libmapi/emsmdb.h $(DESTDIR)$(includedir)/libmapi/
202
$(INSTALL) -m 0644 libmapi/mapi_ctx.h $(DESTDIR)$(includedir)/libmapi/
203
$(INSTALL) -m 0644 libmapi/mapi_provider.h $(DESTDIR)$(includedir)/libmapi/
204
$(INSTALL) -m 0644 libmapi/mapi_id_array.h $(DESTDIR)$(includedir)/libmapi/
205
$(INSTALL) -m 0644 libmapi/mapi_notification.h $(DESTDIR)$(includedir)/libmapi/
206
$(INSTALL) -m 0644 libmapi/mapi_object.h $(DESTDIR)$(includedir)/libmapi/
207
$(INSTALL) -m 0644 libmapi/mapi_profile.h $(DESTDIR)$(includedir)/libmapi/
208
$(INSTALL) -m 0644 libmapi/mapi_nameid.h $(DESTDIR)$(includedir)/libmapi/
209
$(INSTALL) -m 0644 libmapi/mapidefs.h $(DESTDIR)$(includedir)/libmapi/
210
$(INSTALL) -m 0644 libmapi/version.h $(DESTDIR)$(includedir)/libmapi/
211
$(INSTALL) -m 0644 libmapi/mapicode.h $(DESTDIR)$(includedir)/libmapi/
212
$(INSTALL) -m 0644 libmapi/socket/netif.h $(DESTDIR)$(includedir)/libmapi/socket/
213
$(INSTALL) -m 0644 gen_ndr/exchange.h $(DESTDIR)$(includedir)/gen_ndr/
215
libmapi-installscript:
216
$(INSTALL) -d $(DESTDIR)$(datadir)/js
217
$(INSTALL) -m 0644 scripting/libjs/oc_profiles.js $(DESTDIR)$(datadir)/js/
218
$(INSTALL) -d $(DESTDIR)$(datadir)/setup
219
$(INSTALL) -m 0644 setup/oc_profiles* $(DESTDIR)$(datadir)/setup/
222
rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi.pc
224
libmapi-uninstalllib:
225
rm -f $(DESTDIR)$(libdir)/libmapi.*
227
libmapi-uninstallheader:
228
rm -rf $(DESTDIR)$(includedir)/libmapi
229
rm -f $(DESTDIR)$(includedir)/gen_ndr/exchange.h
231
libmapi-uninstallscript:
232
rm -f $(DESTDIR)$(datadir)/js/oc_profiles.js
233
rm -f $(DESTDIR)$(datadir)/setup/oc_profiles*
235
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION): \
236
libmapi/IABContainer.po \
237
libmapi/IProfAdmin.po \
238
libmapi/IMAPIContainer.po \
239
libmapi/IMAPIFolder.po \
240
libmapi/IMAPIProp.po \
241
libmapi/IMAPISession.po \
242
libmapi/IMAPISupport.po \
244
libmapi/IMAPITable.po \
245
libmapi/IMessage.po \
246
libmapi/IMsgStore.po \
247
libmapi/IStoreFolder.po \
248
libmapi/IUnknown.po \
249
libmapi/IMSProvider.po \
250
libmapi/IXPLogon.po \
253
libmapi/property.po \
254
libmapi/cdo_mapi.po \
256
libmapi/mapi_object.po \
257
libmapi/mapi_id_array.po \
258
libmapi/mapitags.po \
259
libmapi/mapidump.po \
260
libmapi/mapicode.po \
261
libmapi/mapi_nameid.po \
264
libmapi/simple_mapi.po \
265
libmapi/util/lcid.po \
266
libmapi/util/codepage.po \
269
gen_ndr/ndr_exchange.po \
270
gen_ndr/ndr_exchange_c.po \
271
libmapi/socket/interface.po \
272
libmapi/socket/netif.po \
273
libmapi/utf8_convert.yy.po
275
@$(CC) $(DSOOPT) -Wl,-soname,libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
278
libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
281
libmapi/version.h: VERSION
282
@./script/mkversion.sh VERSION libmapi/version.h $(PACKAGE_VERSION) $(top_builddir)/
284
libmapi/utf8_convert.yy.c: libmapi/utf8_convert.l
285
@echo "Generating $@"
289
libmapi/utf8_convert.yy.o: CFLAGS=
291
libmapi/proto.h libmapi/proto_private.h: \
295
libmapi/simple_mapi.c \
299
libmapi/mapi_object.c \
300
libmapi/mapi_id_array.c \
301
libmapi/mapi_nameid.c \
303
libmapi/IABContainer.c \
304
libmapi/IProfAdmin.c \
305
libmapi/IMAPIContainer.c \
306
libmapi/IMAPIFolder.c \
307
libmapi/IMAPIProp.c \
308
libmapi/IMAPISession.c \
309
libmapi/IMAPISupport.c \
310
libmapi/IMAPITable.c \
311
libmapi/IMSProvider.c \
313
libmapi/IMsgStore.c \
314
libmapi/IStoreFolder.c \
322
libmapi/util/lcid.c \
323
libmapi/util/codepage.c \
324
libmapi/socket/interface.c \
325
libmapi/socket/netif.c
326
@echo "Generating $@"
327
@./script/mkproto.pl --private=libmapi/proto_private.h --public=libmapi/proto.h $^
329
libmapi/emsmdb.c: libmapi/emsmdb.h gen_ndr/ndr_exchange_c.h
331
libmapi/mapitags.c libmapi/mapicode.c mapitags_enum.h mapicodes_enum.h: \
332
libmapi/conf/mapi-properties \
333
libmapi/conf/mapi-codes \
334
libmapi/conf/mapi-named-properties \
335
libmapi/conf/mparse.pl
336
@./libmapi/conf/build.sh
338
#################################################################
339
# libmapi++ compilation rules
340
#################################################################
342
libmapixx: libmapi libmapixx-tests
346
libmapixx-clean: libmapixx-tests-clean
348
libmapixx-install: libmapixx-installheader
350
libmapixx-uninstall: libmapixx-uninstallheader
352
libmapixx-installheader:
353
@echo "[*] install: libmapi++ headers"
354
$(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++
355
$(INSTALL) -m 0644 libmapi++/attachment.h $(DESTDIR)$(includedir)/libmapi++/
356
$(INSTALL) -m 0644 libmapi++/clibmapi.h $(DESTDIR)$(includedir)/libmapi++/
357
$(INSTALL) -m 0644 libmapi++/folder.h $(DESTDIR)$(includedir)/libmapi++/
358
$(INSTALL) -m 0644 libmapi++/libmapi++.h $(DESTDIR)$(includedir)/libmapi++/
359
$(INSTALL) -m 0644 libmapi++/mapi_exception.h $(DESTDIR)$(includedir)/libmapi++/
360
$(INSTALL) -m 0644 libmapi++/message.h $(DESTDIR)$(includedir)/libmapi++/
361
$(INSTALL) -m 0644 libmapi++/message_store.h $(DESTDIR)$(includedir)/libmapi++/
362
$(INSTALL) -m 0644 libmapi++/object.h $(DESTDIR)$(includedir)/libmapi++/
363
$(INSTALL) -m 0644 libmapi++/profile.h $(DESTDIR)$(includedir)/libmapi++/
364
$(INSTALL) -m 0644 libmapi++/property_container.h $(DESTDIR)$(includedir)/libmapi++/
365
$(INSTALL) -m 0644 libmapi++/session.h $(DESTDIR)$(includedir)/libmapi++/
366
$(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++/impl
367
$(INSTALL) -m 0644 libmapi++/impl/* $(DESTDIR)$(includedir)/libmapi++/impl/
369
libmapixx-uninstallheader:
370
rm -rf $(DESTDIR)$(includedir)/libmapi++
373
libmapixx-tests: libmapixx-test \
376
libmapixx-tests-clean: libmapixx-test-clean \
377
libmapixx-attach-clean
379
libmapixx-test: bin/libmapixx-test
381
libmapixx-test-clean:
382
rm -f bin/libmapixx-test
383
rm -f libmapi++/tests/*.o
385
bin/libmapixx-test: libmapi++/tests/test.cpp \
386
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
387
@echo "Linking sample application $@"
388
@$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
390
clean:: libmapixx-test-clean
392
libmapixx-attach: bin/libmapixx-attach
394
libmapixx-attach-clean:
395
rm -f bin/libmapixx-attach
396
rm -f libmapi++/tests/*.o
398
bin/libmapixx-attach: libmapi++/tests/attach_test.cpp \
399
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
400
@echo "Linking sample application $@"
401
@$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
403
clean:: libmapixx-attach-clean
405
#################################################################
406
# libmapiadmin compilation rules
407
#################################################################
409
LIBMAPIADMIN_SO_VERSION = 0
411
libmapiadmin: libmapiadmin/proto.h \
412
libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
414
libmapiadmin-install: libmapiadmin-installpc \
415
libmapiadmin-installlib \
416
libmapiadmin-installheader
418
libmapiadmin-uninstall: libmapiadmin-uninstallpc \
419
libmapiadmin-uninstalllib \
420
libmapiadmin-uninstallheader
423
rm -f libmapiadmin/*.o libmapiadmin/*.po
424
rm -f libmapiadmin/proto.h
425
rm -f libmapiadmin/proto_private.h
426
rm -f libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) \
427
libmapiadmin.$(SHLIBEXT)
429
clean:: libmapiadmin-clean
431
libmapiadmin-distclean::
432
rm -f libmapiadmin.pc
434
distclean:: libmapiadmin-distclean
436
libmapiadmin-installpc:
437
@echo "[*] install: libmapiadmin pc files"
438
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
439
$(INSTALL) -m 0644 libmapiadmin.pc $(DESTDIR)$(libdir)/pkgconfig
441
libmapiadmin-installlib:
442
@echo "[*] install: libmapiadmin library"
443
$(INSTALL) -d $(DESTDIR)$(libdir)
444
$(INSTALL) -m 0755 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
445
ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT)
447
libmapiadmin-installheader:
448
@echo "[*] install: libmapiadmin headers"
449
$(INSTALL) -d $(DESTDIR)$(includedir)/libmapiadmin
450
$(INSTALL) -m 0644 libmapiadmin/proto.h $(DESTDIR)$(includedir)/libmapiadmin/
451
$(INSTALL) -m 0644 libmapiadmin/libmapiadmin.h $(DESTDIR)$(includedir)/libmapiadmin/
453
libmapiadmin-uninstallpc:
454
rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiadmin.pc
456
libmapiadmin-uninstalllib:
457
rm -f $(DESTDIR)$(libdir)/libmapiadmin.*
459
libmapiadmin-uninstallheader:
460
rm -rf $(DESTDIR)$(includedir)/libmapiadmin
462
libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION): \
463
libmapiadmin/mapiadmin_user.po \
464
libmapiadmin/mapiadmin.po \
465
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
467
@$(CC) $(DSOOPT) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS)
469
libmapiadmin/proto.h libmapiadmin/proto_private.h: \
470
libmapiadmin/mapiadmin.c \
471
libmapiadmin/mapiadmin_user.c
472
@echo "Generating $@"
473
@./script/mkproto.pl -private=libmapiadmin/proto_private.h --public=libmapiadmin/proto.h $^
477
#################################################################
478
# libocpf compilation rules
479
#################################################################
481
LIBOCPF_SO_VERSION = 0
483
libocpf: libocpf/proto.h \
484
libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
486
libocpf-install: libocpf-installpc \
488
libocpf-installheader
490
libocpf-uninstall: libocpf-uninstallpc \
491
libocpf-uninstalllib \
492
libocpf-uninstallheader
495
rm -f libocpf/*.o libocpf/*.po
496
rm -f libocpf/lex.yy.c
497
rm -f libocpf/ocpf.tab.c libocpf/ocpf.tab.h
498
rm -f libocpf/proto.h
499
rm -f libocpf/proto_private.h
500
rm -f libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) \
503
clean:: libocpf-clean
508
distclean:: libocpf-distclean
511
@echo "[*] install: libocpf pc files"
512
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
513
$(INSTALL) -m 0644 libocpf.pc $(DESTDIR)$(libdir)/pkgconfig
516
@echo "[*] install: libocpf library"
517
$(INSTALL) -d $(DESTDIR)$(libdir)
518
$(INSTALL) -m 0755 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
519
ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT)
521
libocpf-installheader:
522
@echo "[*] install: libocpf headers"
523
$(INSTALL) -d $(DESTDIR)$(includedir)/libocpf
524
$(INSTALL) -m 0644 libocpf/ocpf.h $(DESTDIR)$(includedir)/libocpf/
525
$(INSTALL) -m 0644 libocpf/proto.h $(DESTDIR)$(includedir)/libocpf/
528
rm -f $(DESTDIR)$(libdir)/pkgconfig/libocpf.pc
530
libocpf-uninstalllib:
531
rm -f $(DESTDIR)$(libdir)/libocpf.*
533
libocpf-uninstallheader:
534
rm -rf $(DESTDIR)$(includedir)/libocpf
536
libocpf.$(SHLIBEXT).$(PACKAGE_VERSION): \
537
libocpf/ocpf.tab.po \
539
libocpf/ocpf_public.po \
540
libocpf/ocpf_dump.po \
541
libocpf/ocpf_api.po \
542
libocpf/ocpf_write.po \
543
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
545
@$(CC) $(DSOOPT) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
547
libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION): libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
550
libocpf/proto.h: libocpf/ocpf_public.c \
551
libocpf/ocpf_dump.c \
554
@echo "Generating $@"
555
@./script/mkproto.pl --private=libocpf/proto_private.h \
556
--public=libocpf/proto.h $^
558
libocpf/lex.yy.c: libocpf/lex.l
559
@echo "Generating $@"
562
libocpf/ocpf.tab.c: libocpf/ocpf.y
563
@echo "Generating $@"
564
@$(BISON) -pocpf_yy -d $< -o $@
567
libocpf/lex.yy.o: CFLAGS=
568
libocpf/ocpf.tab.o: CFLAGS=
572
#################################################################
573
# torture suite compilation rules
574
#################################################################
576
torture: torture/torture_proto.h \
577
torture/openchange.$(SHLIBEXT)
580
@echo "[*] install: openchange torture suite"
581
$(INSTALL) -d $(DESTDIR)$(TORTURE_MODULESDIR)
582
$(INSTALL) -m 0755 torture/openchange.$(SHLIBEXT) $(DESTDIR)$(TORTURE_MODULESDIR)
585
rm -f $(DESTDIR)$(TORTURE_MODULESDIR)/openchange.*
588
rm -f torture/*.$(SHLIBEXT)
589
rm -f torture/torture_proto.h
590
rm -f torture/*.o torture/*.po
592
clean:: torture-clean
594
torture/openchange.$(SHLIBEXT): \
595
torture/nspi_profile.po \
596
torture/nspi_resolvenames.po \
597
torture/mapi_restrictions.po \
598
torture/mapi_criteria.po \
599
torture/mapi_copymail.po \
600
torture/mapi_sorttable.po \
601
torture/mapi_bookmark.po \
602
torture/mapi_fetchmail.po \
603
torture/mapi_sendmail.po \
604
torture/mapi_sendmail_html.po \
605
torture/mapi_deletemail.po \
606
torture/mapi_newmail.po \
607
torture/mapi_sendattach.po \
608
torture/mapi_fetchattach.po \
609
torture/mapi_fetchappointment.po \
610
torture/mapi_sendappointment.po \
611
torture/mapi_fetchcontacts.po \
612
torture/mapi_sendcontacts.po \
613
torture/mapi_fetchtasks.po \
614
torture/mapi_sendtasks.po \
615
torture/mapi_common.po \
616
torture/mapi_permissions.po \
617
torture/mapi_createuser.po \
618
torture/exchange_createuser.po \
619
torture/mapi_namedprops.po \
620
torture/mapi_recipient.po \
621
torture/openchange.po \
622
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
624
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
626
torture/torture_proto.h: torture/mapi_restrictions.c \
627
torture/mapi_criteria.c \
628
torture/mapi_deletemail.c \
629
torture/mapi_newmail.c \
630
torture/mapi_fetchmail.c \
631
torture/mapi_sendattach.c \
632
torture/mapi_sorttable.c \
633
torture/mapi_bookmark.c \
634
torture/mapi_copymail.c \
635
torture/mapi_fetchattach.c \
636
torture/mapi_sendmail.c \
637
torture/mapi_sendmail_html.c \
638
torture/nspi_profile.c \
639
torture/nspi_resolvenames.c \
640
torture/mapi_fetchappointment.c \
641
torture/mapi_sendappointment.c \
642
torture/mapi_fetchcontacts.c \
643
torture/mapi_sendcontacts.c \
644
torture/mapi_fetchtasks.c \
645
torture/mapi_sendtasks.c \
646
torture/mapi_common.c \
647
torture/mapi_permissions.c \
648
torture/mapi_namedprops.c \
649
torture/mapi_recipient.c \
650
torture/mapi_createuser.c \
651
torture/exchange_createuser.c \
653
@echo "Generating $@"
654
@./script/mkproto.pl --private=torture/torture_proto.h --public=torture/torture_proto.h $^
658
#################################################################
659
# server and providers compilation rules
660
#################################################################
662
server: providers/providers_proto.h server/dcesrv_proto.h \
663
server/dcesrv_exchange.$(SHLIBEXT)
666
$(INSTALL) -m 0755 server/dcesrv_exchange.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
667
$(INSTALL) -d $(DESTDIR)$(datadir)/js
668
$(INSTALL) -m 0644 scripting/libjs/oc_provision.js $(DESTDIR)$(datadir)/js/
669
$(INSTALL) -d $(DESTDIR)$(datadir)/setup
670
$(INSTALL) -m 0644 setup/oc_provision* $(DESTDIR)$(datadir)/setup/
673
rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_exchange.*
674
rm -f $(DESTDIR)$(datadir)/js/oc_provision.js
675
rm -f $(DESTDIR)$(datadir)/setup/oc_provision_configuration.ldif
676
rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema.ldif
677
rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema_modify.ldif
680
rm -f providers/*.o providers/*.po
681
rm -f server/*.o server/*.po
682
rm -f server/dcesrv_proto.h
683
rm -f providers/providers_proto.h
684
rm -f server/*.$(SHLIBEXT)
685
rm -f server/dcesrv_exchange.$(SHLIBEXT)
689
server/dcesrv_exchange.$(SHLIBEXT): providers/emsabp.po \
690
server/dcesrv_exchange.po \
691
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
693
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
695
server/dcesrv_exchange.c: providers/providers_proto.h gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
697
providers/providers_proto.h: providers/emsabp.c
698
@echo "Generating $@"
699
@./script/mkproto.pl --private=providers/providers_proto.h --public=providers/providers_proto.h $^
701
server/dcesrv_proto.h: server/dcesrv_exchange.c
702
@echo "Generating $@"
703
@./script/mkproto.pl --private=server/dcesrv_proto.h --public=server/dcesrv_proto.h $^
706
#################################################################
707
# mapiproxy compilation rules
708
#################################################################
709
LIBMAPIPROXY_SO_VERSION = 0
714
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
715
mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) \
718
mapiproxy-install: mapiproxy mapiproxy-modules-install
719
$(INSTALL) -d $(DESTDIR)$(SERVER_MODULESDIR)
720
$(INSTALL) -m 0755 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
721
$(INSTALL) -m 0755 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
722
ln -sf libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiproxy.$(SHLIBEXT)
723
$(INSTALL) -m 0644 mapiproxy/libmapiproxy.h $(DESTDIR)$(includedir)/
726
mapiproxy-uninstall: mapiproxy-modules-uninstall
727
rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_mapiproxy.*
728
rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
729
rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
731
mapiproxy-clean:: mapiproxy-modules-clean
732
rm -f mapiproxy/*.o mapiproxy/*.po
733
rm -f mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)
734
rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
735
mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION)
737
clean:: mapiproxy-clean
740
mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT): mapiproxy/dcesrv_mapiproxy.po \
741
mapiproxy/dcesrv_mapiproxy_nspi.po \
742
mapiproxy/dcesrv_mapiproxy_unused.po \
744
gen_ndr/ndr_exchange.po
747
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
749
mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
751
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION): mapiproxy/dcesrv_mapiproxy_module.po
752
@$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS)
754
mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION): libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
762
mapiproxy-modules: mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) \
763
mapiproxy/modules/mpm_pack.$(SHLIBEXT) \
764
mapiproxy/modules/mpm_cache.$(SHLIBEXT) \
765
mapiproxy/modules/mpm_dummy.$(SHLIBEXT)
767
mapiproxy-modules-install: mapiproxy-modules
768
$(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
769
$(INSTALL) -m 0755 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
770
$(INSTALL) -m 0755 mapiproxy/modules/mpm_pack.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
771
$(INSTALL) -m 0755 mapiproxy/modules/mpm_cache.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
772
$(INSTALL) -m 0755 mapiproxy/modules/mpm_dummy.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
774
mapiproxy-modules-uninstall:
775
rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy
777
mapiproxy-modules-clean::
778
rm -f mapiproxy/modules/*.o mapiproxy/modules/*.po
779
rm -f mapiproxy/modules/*.so
781
clean:: mapiproxy-modules-clean
783
mapiproxy/modules/mpm_downgrade.$(SHLIBEXT): mapiproxy/modules/mpm_downgrade.po
785
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
787
mapiproxy/modules/mpm_pack.$(SHLIBEXT): mapiproxy/modules/mpm_pack.po \
789
gen_ndr/ndr_exchange.po
791
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
793
mapiproxy/modules/mpm_cache.$(SHLIBEXT): mapiproxy/modules/mpm_cache.po \
794
mapiproxy/modules/mpm_cache_ldb.po \
795
mapiproxy/modules/mpm_cache_stream.po \
797
gen_ndr/ndr_exchange.po
799
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
801
mapiproxy/modules/mpm_dummy.$(SHLIBEXT): mapiproxy/modules/mpm_dummy.po
803
@$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
805
#################################################################
806
# Tools compilation rules
807
#################################################################
813
openchangeclient: bin/openchangeclient
815
openchangeclient-install:
816
$(INSTALL) -d $(DESTDIR)$(bindir)
817
$(INSTALL) -m 0755 bin/openchangeclient $(DESTDIR)$(bindir)
819
openchangeclient-uninstall:
820
rm -f $(DESTDIR)$(bindir)/openchangeclient
822
openchangeclient-clean::
823
rm -f bin/openchangeclient
824
rm -f utils/openchangeclient.o
825
rm -f utils/openchange-tools.o
827
clean:: openchangeclient-clean
829
bin/openchangeclient: utils/openchangeclient.o \
830
utils/openchange-tools.o \
831
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
832
libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
834
@$(CC) -o $@ $^ $(LIBS) -lpopt
841
mapiprofile: bin/mapiprofile
844
$(INSTALL) -d $(DESTDIR)$(bindir)
845
$(INSTALL) -m 0755 bin/mapiprofile $(DESTDIR)$(bindir)
847
mapiprofile-uninstall:
848
rm -f $(DESTDIR)$(bindir)/mapiprofile
851
rm -f bin/mapiprofile
852
rm -f utils/mapiprofile.o
854
clean:: mapiprofile-clean
856
bin/mapiprofile: utils/mapiprofile.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
858
@$(CC) -o $@ $^ $(LIBS) -lpopt
865
openchangepfadmin: bin/openchangepfadmin
867
openchangepfadmin-install:
868
$(INSTALL) -d $(DESTDIR)$(bindir)
869
$(INSTALL) -m 0755 bin/openchangepfadmin $(DESTDIR)$(bindir)
871
openchangepfadmin-uninstall:
872
rm -f $(DESTDIR)$(bindir)/openchangepfadmin
874
openchangepfadmin-clean::
875
rm -f bin/openchangepfadmin
876
rm -f utils/openchangepfadmin.o
878
clean:: openchangepfadmin-clean
880
bin/openchangepfadmin: utils/openchangepfadmin.o \
881
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
882
libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
884
@$(CC) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt
891
exchange2mbox: bin/exchange2mbox
893
exchange2mbox-install:
894
$(INSTALL) -d $(DESTDIR)$(bindir)
895
$(INSTALL) -m 0755 bin/exchange2mbox $(DESTDIR)$(bindir)
897
exchange2mbox-uninstall:
898
rm -f $(DESTDIR)$(bindir)/exchange2mbox
900
exchange2mbox-clean::
901
rm -f bin/exchange2mbox
902
rm -f utils/exchange2mbox.o
903
rm -f utils/openchange-tools.o
905
clean:: exchange2mbox-clean
907
bin/exchange2mbox: utils/exchange2mbox.o \
908
utils/openchange-tools.o \
909
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
911
@$(CC) -o $@ $^ $(LIBS) -lpopt $(MAGIC_LIBS)
919
utils/mapitest/proto.h \
923
$(INSTALL) -d $(DESTDIR)$(bindir)
924
$(INSTALL) -m 0755 bin/mapitest $(DESTDIR)$(bindir)
927
rm -f $(DESTDIR)$(bindir)/mapitest
931
rm -f utils/mapitest/*.o
932
rm -f utils/mapitest/modules/*.o
933
rm -f utils/mapitest/proto.h
934
rm -f utils/mapitest/mapitest_proto.h
936
clean:: mapitest-clean
938
bin/mapitest: utils/mapitest/mapitest.o \
939
utils/mapitest/mapitest_suite.o \
940
utils/mapitest/mapitest_print.o \
941
utils/mapitest/mapitest_stat.o \
942
utils/mapitest/mapitest_common.o \
943
utils/mapitest/module.o \
944
utils/mapitest/modules/module_oxcstor.o \
945
utils/mapitest/modules/module_oxcfold.o \
946
utils/mapitest/modules/module_oxomsg.o \
947
utils/mapitest/modules/module_oxcmsg.o \
948
utils/mapitest/modules/module_oxcprpt.o \
949
utils/mapitest/modules/module_oxctable.o \
950
utils/mapitest/modules/module_oxorule.o \
951
utils/mapitest/modules/module_oxcfxics.o \
952
utils/mapitest/modules/module_noserver.o \
953
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
955
@$(CC) -o $@ $^ $(LIBS) -lpopt
957
utils/mapitest/proto.h: \
958
utils/mapitest/mapitest_suite.c \
959
utils/mapitest/mapitest_print.c \
960
utils/mapitest/mapitest_stat.c \
961
utils/mapitest/mapitest_common.c \
962
utils/mapitest/module.c \
963
utils/mapitest/modules/module_oxcstor.c \
964
utils/mapitest/modules/module_oxcfold.c \
965
utils/mapitest/modules/module_oxomsg.c \
966
utils/mapitest/modules/module_oxcmsg.c \
967
utils/mapitest/modules/module_oxcprpt.c \
968
utils/mapitest/modules/module_oxctable.c \
969
utils/mapitest/modules/module_oxorule.c \
970
utils/mapitest/modules/module_oxcfxics.c \
971
utils/mapitest/modules/module_noserver.c
972
@echo "Generating $@"
973
@./script/mkproto.pl --private=utils/mapitest/mapitest_proto.h --public=utils/mapitest/proto.h $^
975
#####################
977
#####################
979
openchangemapidump: bin/openchangemapidump
981
openchangemapidump-install:
982
$(INSTALL) -d $(DESTDIR)$(bindir)
983
$(INSTALL) -m 0755 bin/openchangemapidump $(DESTDIR)$(bindir)
985
openchangemapidump-uninstall:
986
rm -f bin/openchangemapidump
987
rm -f $(DESTDIR)$(bindir)/openchangemapidump
989
openchangemapidump-clean::
990
rm -f bin/openchangemapidump
991
rm -f utils/backup/openchangemapidump.o
992
rm -f utils/backup/openchangebackup.o
994
clean:: openchangemapidump-clean
996
bin/openchangemapidump: utils/backup/openchangemapidump.o \
997
utils/backup/openchangebackup.o \
998
libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1000
@$(CC) -o $@ $^ $(LIBS) -lpopt
1007
schemaIDGUID: bin/schemaIDGUID
1009
schemaIDGUID-install:
1010
$(INSTALL) -m 0755 bin/schemaIDGUID $(DESTDIR)$(bindir)
1012
schemaIDGUID-uninstall:
1013
rm -f $(DESTDIR)$(bindir)/schemaIDGUID
1015
schemaIDGUID-clean::
1016
rm -f bin/schemaIDGUID
1017
rm -f utils/schemaIDGUID.o
1019
clean:: schemaIDGUID-clean
1021
bin/schemaIDGUID: utils/schemaIDGUID.o
1023
@$(CC) -o $@ $^ $(LIBS)
1030
locale_codepage: bin/locale_codepage
1032
locale_codepage-install:
1033
$(INSTALL) -m 0755 bin/locale_codepage $(DESTDIR)$(bindir)
1035
locale_codepage-uninstall:
1036
rm -f bin/locale_codepage
1037
rm -f $(DESTDIR)$(bindir)/locale_codepage
1039
locale_codepage-clean::
1040
rm -f bin/locale_codepage
1041
rm -f libmapi/tests/locale_codepage.o
1043
clean:: locale_codepage-clean
1045
bin/locale_codepage: libmapi/tests/locale_codepage.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1047
@$(CC) -o $@ $^ $(LIBS) -lpopt
1053
nagiosdir = $(libdir)/nagios
1056
$(INSTALL) -d $(DESTDIR)$(nagiosdir)
1057
$(INSTALL) -m 0755 script/check_exchange $(DESTDIR)$(nagiosdir)
1063
cd doc/examples && make && cd ${OLD_PWD}
1066
rm -f doc/examples/mapi_sample1
1067
rm -f doc/examples/fetchappointment
1068
rm -f doc/examples/fetchmail
1070
clean:: examples-clean
1072
examples-install examples-uninstall:
1075
doc/man/man1/exchange2mbox.1 \
1076
doc/man/man1/mapiprofile.1 \
1077
doc/man/man1/openchangeclient.1 \
1078
doc/man/man1/openchangepfadmin.1
1081
@./script/installman.sh $(DESTDIR)$(mandir) $(manpages)
1082
@./script/installman.sh $(DESTDIR)$(mandir) `ls apidocs/man/man3/*`
1086
@./script/uninstallman.sh $(DESTDIR)$(mandir) $(manpages)
1087
@./script/uninstallman.sh $(DESTDIR)$(mandir) `ls apidocs/man/man3/*`
1090
@if test ! -d apidocs ; then \
1091
echo "Doxify API documentation: HTML and man pages"; \
1092
mkdir -p apidocs/html; \
1093
mkdir -p apidocs/man; \
1094
$(DOXYGEN) Doxyfile; \
1095
$(DOXYGEN) libmapi/Doxyfile; \
1096
$(DOXYGEN) libocpf/Doxyfile; \
1097
$(DOXYGEN) mapiproxy/Doxyfile; \
1098
$(DOXYGEN) utils/mapitest/Doxyfile; \
1099
cp -f doc/doxygen/index.html apidocs/html; \
1100
cp -f doc/doxygen/pictures/* apidocs/html/overview; \
1101
cp -f doc/doxygen/pictures/* apidocs/html/libmapi; \
1102
cp -f doc/doxygen/pictures/* apidocs/html/libocpf; \
1103
cp -f doc/doxygen/pictures/* apidocs/html/mapitest; \
1104
cp -f doc/doxygen/pictures/* apidocs/html/mapiproxy; \
1105
cp -f mapiproxy/documentation/pictures/* apidocs/html/mapiproxy;\
1109
etags `find $(srcdir) -name "*.[ch]"`
1112
ctags `find $(srcdir) -name "*.[ch]"`
1115
@echo "Creating Perl bindings ..."
1116
@$(MAKE) -C swig/perl all
1119
@echo "Install Perl bindings ..."
1120
@$(MAKE) -C swig/perl install
1123
@echo "Uninstall Perl bindings ..."
1124
@$(MAKE) -C swig/perl uninstall
1127
@$(MAKE) -C swig/perl distclean
1130
@echo "Cleaning Perl bindings ..."
1131
@$(MAKE) -C swig/perl clean
1133
.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
1137
check:: torture/openchange.$(SHLIBEXT) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
1138
# FIXME: Set up server
1139
LD_LIBRARY_PATH=`pwd` $(SMBTORTURE) --load-module torture/openchange.$(SHLIBEXT) ncalrpc: OPENCHANGE
1141
# This should be the last line in the makefile since other distclean rules may