55b36a5f30f20c97fddd8d23b8316ee90628c5be
[jelmer/openchange-proposed.git/.git] / Makefile
1 # Makefile for OpenChange
2 # Written by Jelmer Vernooij <jelmer@openchange.org>, 2005.
3
4 default: all
5
6 # Until we add proper dependencies for all the C files:
7 .NOTPARALLEL:
8
9 config.mk: config.status config.mk.in
10         ./config.status
11
12 config.status: configure
13         ./configure
14
15 configure: configure.ac
16         autoconf -f
17
18 samba:
19         ./script/installsamba4.sh all
20
21 samba-git: 
22         ./script/installsamba4.sh git-all
23
24 ifneq ($(MAKECMDGOALS), samba)
25 ifneq ($(MAKECMDGOALS), samba-git)
26 include config.mk
27 endif
28 endif
29
30 #################################################################
31 # top level compilation rules
32 #################################################################
33
34 all:            $(OC_IDL)               \
35                 $(OC_LIBS)              \
36                 $(OC_TOOLS)             \
37                 $(OC_TORTURE)           \
38                 $(OC_SERVER)            \
39                 $(SWIGDIRS-ALL)         \
40                 $(PYMAPIALL)
41
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
52
53 installlib:     $(OC_LIBS_INSTALL)
54 installpc:      $(OC_LIBS_INSTALLPC)
55 installheader:  $(OC_LIBS_INSTALLHEADERS)
56
57 uninstall::     $(OC_LIBS_UNINSTALL)    \
58                 $(OC_TOOLS_UNINSTALL)   \
59                 $(OC_SERVER_UNINSTALL)  \
60                 $(OC_TORTURE_UNINSTALL) \
61                 $(SWIGDIRS-UNINSTALL) \
62                 $(PYMAPIUNINSTALL)
63
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 utils/mapitest/Doxyfile
74         rm -f intltool-extract intltool-merge intltool-update
75         rm -rf apidocs
76         rm -rf gen_ndr
77         rm -f tags
78
79 clean::
80         rm -f *~
81         rm -f */*~
82         rm -f */*/*~
83         rm -f doc/examples/mapi_sample1
84         rm -f doc/examples/fetchappointment
85         rm -f doc/examples/fetchmail
86
87 re:: clean install
88
89 #################################################################
90 # Suffixes compilation rules
91 #################################################################
92
93 .SUFFIXES: .c .o .h .po .idl
94
95 .idl.h:
96         @echo "Generating $@"
97         @$(PIDL) --outputdir=gen_ndr --header -- $<
98
99 .c.o:
100         @echo "Compiling $<"
101         @$(CC) $(CFLAGS) -c $< -o $@
102
103 .c.po:
104         @echo "Compiling $< with -fPIC"
105         @$(CC) $(CFLAGS) -fPIC -c $< -o $@
106
107
108
109 #################################################################
110 # IDL compilation rules
111 #################################################################
112
113 idl: gen_ndr gen_ndr/ndr_exchange.h gen_ndr/ndr_property.h
114
115 exchange.idl: mapitags_enum.h mapicodes_enum.h
116
117 gen_ndr:
118         @echo "Creating the gen_ndr directory"
119         mkdir -p gen_ndr
120
121 gen_ndr/ndr_%.h gen_ndr/ndr_%.c: %.idl %.h
122         @echo "Generating $@"
123         @$(PIDL) --outputdir=gen_ndr --ndr-parser -- $<
124
125 gen_ndr/ndr_%_c.h gen_ndr/ndr_%_c.c: %.idl %.h
126         @echo "Generating $@"
127         @$(PIDL) --outputdir=gen_ndr --client -- $<
128
129 gen_ndr/ndr_%_s.c: %.idl
130         @echo "Generating $@"
131         @$(PIDL) --outputdir=gen_ndr --server -- $<
132
133
134
135 #################################################################
136 # libmapi compilation rules
137 #################################################################
138
139 LIBMAPI_SO_VERSION = 0
140
141 libmapi:        idl                                     \
142                 libmapi/version.h                       \
143                 libmapi/proto.h                         \
144                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)  
145
146 libmapi-install:        libmapi                 \
147                         libmapi-installpc       \
148                         libmapi-installlib      \
149                         libmapi-installheader   \
150                         libmapi-installscript
151
152 libmapi-uninstall:      libmapi-uninstallpc     \
153                         libmapi-uninstalllib    \
154                         libmapi-uninstallheader \
155                         libmapi-uninstallscript
156
157 libmapi-clean::
158         rm -f libmapi/*.o libmapi/*.po
159         rm -f libmapi/utf8_convert.yy.c
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         rm -f libmapi/mapicode.c libmapi/mapicode.h
165         rm -f libmapi/mapitags.c libmapi/mapitags.h
166         rm -f libmapi/mapi_nameid.h libmapi/mapi_nameid_private.h
167         rm -f libmapi/proto.h
168         rm -f libmapi/proto_private.h
169         rm -f gen_ndr/ndr_exchange*
170         rm -f gen_ndr/exchange.h
171         rm -f gen_ndr/ndr_property*
172         rm -f gen_ndr/property.h
173         rm -f ndr_mapi.o ndr_mapi.po
174         rm -f mapicodes_enum.h
175         rm -f mapitags_enum.h
176         rm -f *~
177         rm -f */*~
178         rm -f */*/*~
179         rm -f libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) \
180                   libmapi.$(SHLIBEXT)
181
182 clean:: libmapi-clean
183
184 libmapi-distclean::
185         rm -f libmapi.pc
186
187 distclean:: libmapi-distclean
188
189 libmapi-installpc:
190         @echo "[*] install: libmapi pc files"
191         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
192         $(INSTALL) -m 0644 libmapi.pc $(DESTDIR)$(libdir)/pkgconfig
193
194 libmapi-installlib:
195         @echo "[*] install: libmapi library"
196         $(INSTALL) -d $(DESTDIR)$(libdir)
197         $(INSTALL) -m 0755 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
198         ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT)
199
200 libmapi-installheader:
201         @echo "[*] install: libmapi headers"
202         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi 
203         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi/socket 
204         $(INSTALL) -d $(DESTDIR)$(includedir)/gen_ndr
205         $(INSTALL) -m 0644 libmapi/dlinklist.h $(DESTDIR)$(includedir)/libmapi/
206         $(INSTALL) -m 0644 libmapi/libmapi.h $(DESTDIR)$(includedir)/libmapi/
207         $(INSTALL) -m 0644 libmapi/proto.h $(DESTDIR)$(includedir)/libmapi/
208         $(INSTALL) -m 0644 libmapi/nspi.h $(DESTDIR)$(includedir)/libmapi/
209         $(INSTALL) -m 0644 libmapi/emsmdb.h $(DESTDIR)$(includedir)/libmapi/
210         $(INSTALL) -m 0644 libmapi/mapi_ctx.h $(DESTDIR)$(includedir)/libmapi/
211         $(INSTALL) -m 0644 libmapi/mapi_provider.h $(DESTDIR)$(includedir)/libmapi/
212         $(INSTALL) -m 0644 libmapi/mapi_id_array.h $(DESTDIR)$(includedir)/libmapi/
213         $(INSTALL) -m 0644 libmapi/mapi_notification.h $(DESTDIR)$(includedir)/libmapi/
214         $(INSTALL) -m 0644 libmapi/mapi_object.h $(DESTDIR)$(includedir)/libmapi/
215         $(INSTALL) -m 0644 libmapi/mapi_profile.h $(DESTDIR)$(includedir)/libmapi/
216         $(INSTALL) -m 0644 libmapi/mapi_nameid.h $(DESTDIR)$(includedir)/libmapi/
217         $(INSTALL) -m 0644 libmapi/mapidefs.h $(DESTDIR)$(includedir)/libmapi/
218         $(INSTALL) -m 0644 libmapi/version.h $(DESTDIR)$(includedir)/libmapi/
219         $(INSTALL) -m 0644 libmapi/mapicode.h $(DESTDIR)$(includedir)/libmapi/
220         $(INSTALL) -m 0644 libmapi/socket/netif.h $(DESTDIR)$(includedir)/libmapi/socket/
221         $(INSTALL) -m 0644 gen_ndr/exchange.h $(DESTDIR)$(includedir)/gen_ndr/
222         $(INSTALL) -m 0644 gen_ndr/property.h $(DESTDIR)$(includedir)/gen_ndr/
223
224 libmapi-installscript:
225         $(INSTALL) -d $(DESTDIR)$(datadir)/setup
226         $(INSTALL) -m 0644 setup/oc_profiles* $(DESTDIR)$(datadir)/setup/
227
228 libmapi-uninstallpc:
229         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi.pc
230
231 libmapi-uninstalllib:
232         rm -f $(DESTDIR)$(libdir)/libmapi.*
233
234 libmapi-uninstallheader:
235         rm -rf $(DESTDIR)$(includedir)/libmapi
236         rm -f $(DESTDIR)$(includedir)/gen_ndr/exchange.h
237         rm -f $(DESTDIR)$(includedir)/gen_ndr/property.h
238
239 libmapi-uninstallscript:
240         rm -f $(DESTDIR)$(datadir)/setup/oc_profiles*
241
242 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION):                 \
243         libmapi/IABContainer.po                         \
244         libmapi/IProfAdmin.po                           \
245         libmapi/IMAPIContainer.po                       \
246         libmapi/IMAPIFolder.po                          \
247         libmapi/IMAPIProp.po                            \
248         libmapi/IMAPISession.po                         \
249         libmapi/IMAPISupport.po                         \
250         libmapi/IStream.po                              \
251         libmapi/IMAPITable.po                           \
252         libmapi/IMessage.po                             \
253         libmapi/IMsgStore.po                            \
254         libmapi/IStoreFolder.po                         \
255         libmapi/IUnknown.po                             \
256         libmapi/IMSProvider.po                          \
257         libmapi/IXPLogon.po                             \
258         libmapi/FXICS.po                                \
259         libmapi/utils.po                                \
260         libmapi/property.po                             \
261         libmapi/cdo_mapi.po                             \
262         libmapi/lzfu.po                                 \
263         libmapi/mapi_object.po                          \
264         libmapi/mapi_id_array.po                        \
265         libmapi/mapitags.po                             \
266         libmapi/mapidump.po                             \
267         libmapi/mapicode.po                             \
268         libmapi/mapi_nameid.po                          \
269         libmapi/emsmdb.po                               \
270         libmapi/nspi.po                                 \
271         libmapi/simple_mapi.po                          \
272         libmapi/util/lcid.po                            \
273         libmapi/util/codepage.po                        \
274         libmapi/freebusy.po                             \
275         libmapi/x500.po                                 \
276         ndr_mapi.po                                     \
277         gen_ndr/ndr_exchange.po                         \
278         gen_ndr/ndr_exchange_c.po                       \
279         gen_ndr/ndr_property.po                         \
280         libmapi/socket/interface.po                     \
281         libmapi/socket/netif.po                         \
282         libmapi/utf8_convert.yy.po
283         @echo "Linking $@"
284         @$(CC) $(DSOOPT) -Wl,-soname,libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
285
286
287 libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
288         ln -fs $< $@
289
290 libmapi/version.h: VERSION
291         @./script/mkversion.sh  VERSION libmapi/version.h $(PACKAGE_VERSION) $(top_builddir)/
292
293 libmapi/utf8_convert.yy.c:      libmapi/utf8_convert.l
294         @echo "Generating $@"
295         @$(FLEX) -Plibmapi_utf8_convert_ -t $< > $@
296
297 # Avoid warnings:
298 libmapi/utf8_convert.yy.o: CFLAGS=
299
300 libmapi/proto.h libmapi/proto_private.h:                \
301         libmapi/nspi.c                                  \
302         libmapi/emsmdb.c                                \
303         libmapi/cdo_mapi.c                              \
304         libmapi/simple_mapi.c                           \
305         libmapi/mapitags.c                              \
306         libmapi/mapicode.c                              \
307         libmapi/mapidump.c                              \
308         libmapi/mapi_object.c                           \
309         libmapi/mapi_id_array.c                         \
310         libmapi/mapi_nameid.c                           \
311         libmapi/property.c                              \
312         libmapi/IABContainer.c                          \
313         libmapi/IProfAdmin.c                            \
314         libmapi/IMAPIContainer.c                        \
315         libmapi/IMAPIFolder.c                           \
316         libmapi/IMAPIProp.c                             \
317         libmapi/IMAPISession.c                          \
318         libmapi/IMAPISupport.c                          \
319         libmapi/IMAPITable.c                            \
320         libmapi/IMSProvider.c                           \
321         libmapi/IMessage.c                              \
322         libmapi/IMsgStore.c                             \
323         libmapi/IStoreFolder.c                          \
324         libmapi/IUnknown.c                              \
325         libmapi/IStream.c                               \
326         libmapi/IXPLogon.c                              \
327         libmapi/FXICS.c                                 \
328         libmapi/freebusy.c                              \
329         libmapi/x500.c                                  \
330         libmapi/lzfu.c                                  \
331         libmapi/utils.c                                 \
332         libmapi/util/lcid.c                             \
333         libmapi/util/codepage.c                         \
334         libmapi/socket/interface.c                      \
335         libmapi/socket/netif.c          
336         @echo "Generating $@"
337         @./script/mkproto.pl --private=libmapi/proto_private.h --public=libmapi/proto.h $^
338
339 libmapi/emsmdb.c: libmapi/emsmdb.h gen_ndr/ndr_exchange_c.h
340
341 libmapi/mapitags.c libmapi/mapicode.c mapitags_enum.h mapicodes_enum.h: \
342         libmapi/conf/mapi-properties                                    \
343         libmapi/conf/mapi-codes                                         \
344         libmapi/conf/mapi-named-properties                              \
345         libmapi/conf/mparse.pl
346         @./libmapi/conf/build.sh
347
348 #################################################################
349 # libmapi++ compilation rules
350 #################################################################
351
352 libmapixx: libmapi libmapixx-tests libmapixx-examples
353
354 libmapixx-installpc:
355
356 libmapixx-clean: libmapixx-tests-clean
357
358 libmapixx-install: libmapixx-installheader
359
360 libmapixx-uninstall: libmapixx-uninstallheader
361
362 libmapixx-installheader:
363         @echo "[*] install: libmapi++ headers"
364         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++
365         $(INSTALL) -m 0644 libmapi++/attachment.h $(DESTDIR)$(includedir)/libmapi++/
366         $(INSTALL) -m 0644 libmapi++/clibmapi.h $(DESTDIR)$(includedir)/libmapi++/
367         $(INSTALL) -m 0644 libmapi++/folder.h $(DESTDIR)$(includedir)/libmapi++/
368         $(INSTALL) -m 0644 libmapi++/libmapi++.h $(DESTDIR)$(includedir)/libmapi++/
369         $(INSTALL) -m 0644 libmapi++/mapi_exception.h $(DESTDIR)$(includedir)/libmapi++/
370         $(INSTALL) -m 0644 libmapi++/message.h $(DESTDIR)$(includedir)/libmapi++/
371         $(INSTALL) -m 0644 libmapi++/message_store.h $(DESTDIR)$(includedir)/libmapi++/
372         $(INSTALL) -m 0644 libmapi++/object.h $(DESTDIR)$(includedir)/libmapi++/
373         $(INSTALL) -m 0644 libmapi++/profile.h $(DESTDIR)$(includedir)/libmapi++/
374         $(INSTALL) -m 0644 libmapi++/property_container.h $(DESTDIR)$(includedir)/libmapi++/
375         $(INSTALL) -m 0644 libmapi++/session.h $(DESTDIR)$(includedir)/libmapi++/
376         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapi++/impl
377         $(INSTALL) -m 0644 libmapi++/impl/* $(DESTDIR)$(includedir)/libmapi++/impl/
378
379 libmapixx-uninstallheader:
380         rm -rf $(DESTDIR)$(includedir)/libmapi++
381
382
383 libmapixx-tests:        libmapixx-test          \
384                         libmapixx-attach
385
386 libmapixx-tests-clean:  libmapixx-test-clean    \
387                         libmapixx-attach-clean  
388
389 libmapixx-test: bin/libmapixx-test
390
391 libmapixx-test-clean:
392         rm -f bin/libmapixx-test
393         rm -f libmapi++/tests/*.o
394
395 bin/libmapixx-test:     libmapi++/tests/test.cpp        \
396                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
397         @echo "Linking sample application $@"
398         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
399
400 clean:: libmapixx-test-clean
401
402 libmapixx-attach: bin/libmapixx-attach
403
404 libmapixx-attach-clean:
405         rm -f bin/libmapixx-attach
406         rm -f libmapi++/tests/*.o
407
408 bin/libmapixx-attach: libmapi++/tests/attach_test.cpp   \
409                   libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
410         @echo "Linking sample application $@"
411         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
412
413 clean:: libmapixx-attach-clean
414
415
416 libmapixx-examples: libmapi++/examples/foldertree \
417                   libmapi++/examples/messages
418
419 libmapixx-foldertree-clean:
420         rm -f libmapi++/examples/foldertree
421         rm -f libmapi++/examples/*.o
422
423 libmapixx-messages-clean:
424         rm -f libmapi++/examples/messages
425         rm -f libmapi++/examples/*.o
426
427 libmapi++/examples/foldertree: libmapi++/examples/foldertree.cpp        \
428                   libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
429         @echo "Linking foldertree example application $@"
430         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
431
432 clean:: libmapixx-foldertree-clean
433
434 libmapi++/examples/messages: libmapi++/examples/messages.cpp    \
435                   libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
436         @echo "Linking messages example application $@"
437         @$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
438
439 clean:: libmapixx-messages-clean
440
441 #################################################################
442 # libmapiadmin compilation rules
443 #################################################################
444
445 LIBMAPIADMIN_SO_VERSION = 0
446
447 libmapiadmin:   libmapiadmin/proto.h                            \
448                 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
449
450 libmapiadmin-install:   libmapiadmin-installpc          \
451                         libmapiadmin-installlib         \
452                         libmapiadmin-installheader
453
454 libmapiadmin-uninstall: libmapiadmin-uninstallpc        \
455                         libmapiadmin-uninstalllib       \
456                         libmapiadmin-uninstallheader
457
458 libmapiadmin-clean::
459         rm -f libmapiadmin/*.o libmapiadmin/*.po
460         rm -f libmapiadmin/proto.h
461         rm -f libmapiadmin/proto_private.h
462         rm -f libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) \
463                   libmapiadmin.$(SHLIBEXT)
464
465 clean:: libmapiadmin-clean
466
467 libmapiadmin-distclean::
468         rm -f libmapiadmin.pc
469
470 distclean:: libmapiadmin-distclean
471
472 libmapiadmin-installpc:
473         @echo "[*] install: libmapiadmin pc files"
474         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
475         $(INSTALL) -m 0644 libmapiadmin.pc $(DESTDIR)$(libdir)/pkgconfig
476
477 libmapiadmin-installlib:
478         @echo "[*] install: libmapiadmin library"
479         $(INSTALL) -d $(DESTDIR)$(libdir)
480         $(INSTALL) -m 0755 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
481         ln -sf libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiadmin.$(SHLIBEXT)
482
483 libmapiadmin-installheader:
484         @echo "[*] install: libmapiadmin headers"
485         $(INSTALL) -d $(DESTDIR)$(includedir)/libmapiadmin 
486         $(INSTALL) -m 0644 libmapiadmin/proto.h $(DESTDIR)$(includedir)/libmapiadmin/
487         $(INSTALL) -m 0644 libmapiadmin/libmapiadmin.h $(DESTDIR)$(includedir)/libmapiadmin/
488
489 libmapiadmin-uninstallpc:
490         rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapiadmin.pc
491
492 libmapiadmin-uninstalllib:
493         rm -f $(DESTDIR)$(libdir)/libmapiadmin.*
494
495 libmapiadmin-uninstallheader:
496         rm -rf $(DESTDIR)$(includedir)/libmapiadmin
497
498 libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION):    \
499         libmapiadmin/mapiadmin_user.po          \
500         libmapiadmin/mapiadmin.po               \
501         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
502         @echo "Linking $@"
503         @$(CC) $(DSOOPT) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS) 
504
505 libmapiadmin/proto.h libmapiadmin/proto_private.h:      \
506         libmapiadmin/mapiadmin.c                        \
507         libmapiadmin/mapiadmin_user.c                   
508         @echo "Generating $@"
509         @./script/mkproto.pl -private=libmapiadmin/proto_private.h --public=libmapiadmin/proto.h $^
510
511
512
513 #################################################################
514 # libocpf compilation rules
515 #################################################################
516
517 LIBOCPF_SO_VERSION = 0
518
519 libocpf:        libocpf/proto.h                         \
520                 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
521
522 libocpf-install:        libocpf-installpc       \
523                         libocpf-installlib      \
524                         libocpf-installheader
525
526 libocpf-uninstall:      libocpf-uninstallpc     \
527                         libocpf-uninstalllib    \
528                         libocpf-uninstallheader
529
530 libocpf-clean::
531         rm -f libocpf/*.o libocpf/*.po
532         rm -f libocpf/lex.yy.c
533         rm -f libocpf/ocpf.tab.c libocpf/ocpf.tab.h
534         rm -f libocpf/proto.h
535         rm -f libocpf/proto_private.h
536         rm -f libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) \
537                   libocpf.$(SHLIBEXT)
538
539 clean:: libocpf-clean
540
541 libocpf-distclean::
542         rm -f libocpf.pc
543
544 distclean:: libocpf-distclean
545
546 libocpf-installpc:
547         @echo "[*] install: libocpf pc files"
548         $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
549         $(INSTALL) -m 0644 libocpf.pc $(DESTDIR)$(libdir)/pkgconfig
550
551 libocpf-installlib:
552         @echo "[*] install: libocpf library"
553         $(INSTALL) -d $(DESTDIR)$(libdir)
554         $(INSTALL) -m 0755 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
555         ln -sf libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libocpf.$(SHLIBEXT)
556
557 libocpf-installheader:
558         @echo "[*] install: libocpf headers"
559         $(INSTALL) -d $(DESTDIR)$(includedir)/libocpf
560         $(INSTALL) -m 0644 libocpf/ocpf.h $(DESTDIR)$(includedir)/libocpf/
561         $(INSTALL) -m 0644 libocpf/proto.h $(DESTDIR)$(includedir)/libocpf/
562
563 libocpf-uninstallpc:
564         rm -f $(DESTDIR)$(libdir)/pkgconfig/libocpf.pc
565
566 libocpf-uninstalllib:
567         rm -f $(DESTDIR)$(libdir)/libocpf.*
568
569 libocpf-uninstallheader:
570         rm -rf $(DESTDIR)$(includedir)/libocpf
571
572 libocpf.$(SHLIBEXT).$(PACKAGE_VERSION):         \
573         libocpf/ocpf.tab.po                     \
574         libocpf/lex.yy.po                       \
575         libocpf/ocpf_public.po                  \
576         libocpf/ocpf_dump.po                    \
577         libocpf/ocpf_api.po                     \
578         libocpf/ocpf_write.po                   \
579         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
580         @echo "Linking $@"
581         @$(CC) $(DSOOPT) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
582
583 libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION): libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
584         ln -fs $< $@
585
586 libocpf/proto.h:        libocpf/ocpf_public.c   \
587                         libocpf/ocpf_dump.c     \
588                         libocpf/ocpf_api.c      \
589                         libocpf/ocpf_write.c
590                         @echo "Generating $@"
591                         @./script/mkproto.pl --private=libocpf/proto_private.h \
592                         --public=libocpf/proto.h $^
593
594 libocpf/lex.yy.c:               libocpf/lex.l
595         @echo "Generating $@"
596         @$(FLEX) -t $< > $@
597
598 libocpf/ocpf.tab.c:     libocpf/ocpf.y
599         @echo "Generating $@"
600         @$(BISON) -pocpf_yy -d $< -o $@
601
602 # Avoid warnings
603 libocpf/lex.yy.o: CFLAGS=
604 libocpf/ocpf.tab.o: CFLAGS=
605
606
607
608 #################################################################
609 # torture suite compilation rules
610 #################################################################
611
612 torture:        torture/torture_proto.h         \
613                 torture/openchange.$(SHLIBEXT)
614
615 torture-install:
616         @echo "[*] install: openchange torture suite"
617         $(INSTALL) -d $(DESTDIR)$(TORTURE_MODULESDIR)
618         $(INSTALL) -m 0755 torture/openchange.$(SHLIBEXT) $(DESTDIR)$(TORTURE_MODULESDIR)
619
620 torture-uninstall:
621         rm -f $(DESTDIR)$(TORTURE_MODULESDIR)/openchange.*
622
623 torture-clean::
624         rm -f torture/*.$(SHLIBEXT)
625         rm -f torture/torture_proto.h
626         rm -f torture/*.o torture/*.po
627
628 clean:: torture-clean
629
630 torture/openchange.$(SHLIBEXT):                 \
631         torture/nspi_profile.po                 \
632         torture/nspi_resolvenames.po            \
633         torture/mapi_restrictions.po            \
634         torture/mapi_criteria.po                \
635         torture/mapi_copymail.po                \
636         torture/mapi_sorttable.po               \
637         torture/mapi_bookmark.po                \
638         torture/mapi_fetchmail.po               \
639         torture/mapi_sendmail.po                \
640         torture/mapi_sendmail_html.po           \
641         torture/mapi_deletemail.po              \
642         torture/mapi_newmail.po                 \
643         torture/mapi_sendattach.po              \
644         torture/mapi_fetchattach.po             \
645         torture/mapi_fetchappointment.po        \
646         torture/mapi_sendappointment.po         \
647         torture/mapi_fetchcontacts.po           \
648         torture/mapi_sendcontacts.po            \
649         torture/mapi_fetchtasks.po              \
650         torture/mapi_sendtasks.po               \
651         torture/mapi_common.po                  \
652         torture/mapi_permissions.po             \
653         torture/mapi_createuser.po              \
654         torture/exchange_createuser.po          \
655         torture/mapi_namedprops.po              \
656         torture/mapi_recipient.po               \
657         torture/openchange.po                   \
658         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
659         @echo "Linking $@"
660         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
661
662 torture/torture_proto.h: torture/mapi_restrictions.c    \
663         torture/mapi_criteria.c         \
664         torture/mapi_deletemail.c       \
665         torture/mapi_newmail.c          \
666         torture/mapi_fetchmail.c        \
667         torture/mapi_sendattach.c       \
668         torture/mapi_sorttable.c        \
669         torture/mapi_bookmark.c         \
670         torture/mapi_copymail.c         \
671         torture/mapi_fetchattach.c      \
672         torture/mapi_sendmail.c         \
673         torture/mapi_sendmail_html.c    \
674         torture/nspi_profile.c          \
675         torture/nspi_resolvenames.c     \
676         torture/mapi_fetchappointment.c \
677         torture/mapi_sendappointment.c  \
678         torture/mapi_fetchcontacts.c    \
679         torture/mapi_sendcontacts.c     \
680         torture/mapi_fetchtasks.c       \
681         torture/mapi_sendtasks.c        \
682         torture/mapi_common.c           \
683         torture/mapi_permissions.c      \
684         torture/mapi_namedprops.c       \
685         torture/mapi_recipient.c        \
686         torture/mapi_createuser.c       \
687         torture/exchange_createuser.c   \
688         torture/openchange.c
689         @echo "Generating $@"
690         @./script/mkproto.pl --private=torture/torture_proto.h --public=torture/torture_proto.h $^
691
692
693
694 #################################################################
695 # server and providers compilation rules
696 #################################################################
697
698 provision-install:
699         $(INSTALL) -d $(DESTDIR)$(datadir)/setup
700         $(INSTALL) -m 0644 setup/oc_provision* $(DESTDIR)$(datadir)/setup/
701
702 provision-uninstall:
703         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_configuration.ldif
704         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema.ldif
705         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema_modify.ldif
706
707
708 server:         providers/providers_proto.h server/dcesrv_proto.h       \
709                 server/dcesrv_exchange.$(SHLIBEXT)                      
710
711 server-install: python-install
712         $(INSTALL) -m 0755 server/dcesrv_exchange.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
713         $(INSTALL) -d $(DESTDIR)$(datadir)/setup
714         $(INSTALL) -m 0644 setup/oc_provision* $(DESTDIR)$(datadir)/setup/
715
716 server-uninstall: python-uninstall
717         rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_exchange.*
718         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_configuration.ldif
719         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema.ldif
720         rm -f $(DESTDIR)$(datadir)/setup/oc_provision_schema_modify.ldif
721
722 server-clean::
723         rm -f providers/*.o providers/*.po
724         rm -f server/*.o server/*.po
725         rm -f server/dcesrv_proto.h
726         rm -f providers/providers_proto.h
727         rm -f server/*.$(SHLIBEXT)
728         rm -f server/dcesrv_exchange.$(SHLIBEXT)
729
730 clean:: server-clean
731
732 server/dcesrv_exchange.$(SHLIBEXT):     providers/emsabp.po             \
733                                         server/dcesrv_exchange.po       \
734                                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
735         @echo "Linking $@"
736         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS)
737
738 server/dcesrv_exchange.c: providers/providers_proto.h gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
739
740 providers/providers_proto.h: providers/emsabp.c
741         @echo "Generating $@"
742         @./script/mkproto.pl --private=providers/providers_proto.h --public=providers/providers_proto.h $^
743
744 server/dcesrv_proto.h: server/dcesrv_exchange.c
745         @echo "Generating $@"
746         @./script/mkproto.pl --private=server/dcesrv_proto.h --public=server/dcesrv_proto.h $^
747
748
749 #################################################################
750 # mapiproxy compilation rules
751 #################################################################
752 LIBMAPIPROXY_SO_VERSION = 0
753
754 .PHONY: mapiproxy
755
756 mapiproxy:      idl                                                     \
757                 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)   \
758                 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)                  \
759                 mapiproxy-modules                                       \
760                 mapiproxy-servers
761
762 mapiproxy-install: mapiproxy mapiproxy-modules-install mapiproxy-servers-install
763         $(INSTALL) -d $(DESTDIR)$(SERVER_MODULESDIR)
764         $(INSTALL) -m 0755 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT) $(DESTDIR)$(SERVER_MODULESDIR)
765         $(INSTALL) -m 0755 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
766         ln -sf libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapiproxy.$(SHLIBEXT)
767         $(INSTALL) -m 0644 mapiproxy/libmapiproxy.h $(DESTDIR)$(includedir)/
768
769
770 mapiproxy-uninstall: mapiproxy-modules-uninstall mapiproxy-servers-uninstall
771         rm -f $(DESTDIR)$(SERVER_MODULESDIR)/dcesrv_mapiproxy.*
772         rm -f $(DESTDIR)$(libdir)/libmapiproxy.*
773         rm -f $(DESTDIR)$(includedir)/libmapiproxy.h
774
775 mapiproxy-clean:: mapiproxy-modules-clean mapiproxy-servers-clean
776         rm -f mapiproxy/*.o mapiproxy/*.po
777         rm -f mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT)
778         rm -f mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
779                   mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION)
780
781 clean:: mapiproxy-clean
782
783
784 mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT):         mapiproxy/dcesrv_mapiproxy.po           \
785                                                 mapiproxy/dcesrv_mapiproxy_nspi.po      \
786                                                 mapiproxy/dcesrv_mapiproxy_rfr.po       \
787                                                 mapiproxy/dcesrv_mapiproxy_unused.po    \
788                                                 ndr_mapi.po                             \
789                                                 gen_ndr/ndr_exchange.po                         
790
791         @echo "Linking $@"
792         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
793
794 mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
795
796 mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION):  mapiproxy/dcesrv_mapiproxy_module.po    \
797                                                         mapiproxy/dcesrv_mapiproxy_server.po    \
798                                                         mapiproxy/dcesrv_mapiproxy_session.po   
799         @$(CC) -o $@ $(DSOOPT) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS)
800
801 mapiproxy/libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION): libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
802         ln -fs $< $@
803
804
805 ####################
806 # mapiproxy modules
807 ####################
808
809 mapiproxy-modules:      mapiproxy/modules/mpm_downgrade.$(SHLIBEXT)     \
810                         mapiproxy/modules/mpm_pack.$(SHLIBEXT)          \
811                         mapiproxy/modules/mpm_cache.$(SHLIBEXT)         \
812                         mapiproxy/modules/mpm_dummy.$(SHLIBEXT)         
813
814 mapiproxy-modules-install: mapiproxy-modules
815         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
816         $(INSTALL) -m 0755 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
817         $(INSTALL) -m 0755 mapiproxy/modules/mpm_pack.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
818         $(INSTALL) -m 0755 mapiproxy/modules/mpm_cache.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
819         $(INSTALL) -m 0755 mapiproxy/modules/mpm_dummy.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy/
820
821 mapiproxy-modules-uninstall:
822         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy
823
824 mapiproxy-modules-clean::
825         rm -f mapiproxy/modules/*.o mapiproxy/modules/*.po
826         rm -f mapiproxy/modules/*.so
827
828 clean:: mapiproxy-modules-clean
829
830 mapiproxy/modules/mpm_downgrade.$(SHLIBEXT): mapiproxy/modules/mpm_downgrade.po
831         @echo "Linking $@"
832         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
833
834 mapiproxy/modules/mpm_pack.$(SHLIBEXT): mapiproxy/modules/mpm_pack.po   \
835                                         ndr_mapi.po                     \
836                                         gen_ndr/ndr_exchange.po
837         @echo "Linking $@"
838         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
839
840 mapiproxy/modules/mpm_cache.$(SHLIBEXT): mapiproxy/modules/mpm_cache.po         \
841                                          mapiproxy/modules/mpm_cache_ldb.po     \
842                                          mapiproxy/modules/mpm_cache_stream.po  \
843                                          ndr_mapi.po                            \
844                                          gen_ndr/ndr_exchange.po
845         @echo "Linking $@"
846         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
847
848 mapiproxy/modules/mpm_dummy.$(SHLIBEXT): mapiproxy/modules/mpm_dummy.po
849         @echo "Linking $@"
850         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
851
852
853 ####################
854 # mapiproxy servers
855 ####################
856
857 mapiproxy-servers:      mapiproxy/servers/exchange_nsp.$(SHLIBEXT)              \
858                         mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT)           \
859                         mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT)
860
861 mapiproxy-servers-install: mapiproxy-servers python-install provision-install
862         $(INSTALL) -d $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
863         $(INSTALL) -m 0755 mapiproxy/servers/exchange_nsp.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
864         $(INSTALL) -m 0755 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
865         $(INSTALL) -m 0755 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT) $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server/
866
867 mapiproxy-servers-uninstall: python-uninstall provision-uninstall
868         rm -rf $(DESTDIR)$(modulesdir)/dcerpc_mapiproxy_server
869
870 mapiproxy-servers-clean::
871         rm -f mapiproxy/servers/default/nspi/*.o mapiproxy/servers/default/nspi/*.po
872         rm -f mapiproxy/servers/default/emsmdb/*.o mapiproxy/servers/default/emsmdb/*.po
873         rm -f mapiproxy/servers/default/rfr/*.o mapiproxy/servers/default/rfr/*.po
874         rm -f mapiproxy/servers/*.so
875
876 clean:: mapiproxy-servers-clean
877
878 mapiproxy/servers/exchange_nsp.$(SHLIBEXT):     mapiproxy/servers/default/nspi/dcesrv_exchange_nsp.po   \
879                                                 mapiproxy/servers/default/nspi/emsabp.po
880         @echo "Linking $@"
881         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)  libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
882
883 mapiproxy/servers/exchange_emsmdb.$(SHLIBEXT):  mapiproxy/servers/default/emsmdb/dcesrv_exchange_emsmdb.po
884         @echo "Linking $@"
885         @$(CC) -o $@ $(DSOOPT) $^ -L. $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
886
887 mapiproxy/servers/exchange_ds_rfr.$(SHLIBEXT):  mapiproxy/servers/default/rfr/dcesrv_exchange_ds_rfr.po
888         @echo "Linking $@"
889         @$(CC) -o $@ $(DSOOPT) $^ -L $(LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
890
891 #################################################################
892 # Tools compilation rules
893 #################################################################
894
895 ###################
896 # openchangeclient
897 ###################
898
899 openchangeclient:       bin/openchangeclient
900
901 openchangeclient-install:       openchangeclient
902         $(INSTALL) -d $(DESTDIR)$(bindir) 
903         $(INSTALL) -m 0755 bin/openchangeclient $(DESTDIR)$(bindir)
904
905 openchangeclient-uninstall:
906         rm -f $(DESTDIR)$(bindir)/openchangeclient
907
908 openchangeclient-clean::
909         rm -f bin/openchangeclient
910         rm -f utils/openchangeclient.o
911         rm -f utils/openchange-tools.o  
912
913 clean:: openchangeclient-clean
914
915 bin/openchangeclient:   utils/openchangeclient.o                        \
916                         utils/openchange-tools.o                        \
917                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
918                         libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
919         @echo "Linking $@"
920         @$(CC) -o $@ $^ $(LIBS) -lpopt
921
922
923 ##############
924 # mapiprofile
925 ##############
926
927 mapiprofile:            bin/mapiprofile
928
929 mapiprofile-install:    mapiprofile
930         $(INSTALL) -d $(DESTDIR)$(bindir) 
931         $(INSTALL) -m 0755 bin/mapiprofile $(DESTDIR)$(bindir)
932
933 mapiprofile-uninstall:
934         rm -f $(DESTDIR)$(bindir)/mapiprofile
935
936 mapiprofile-clean::
937         rm -f bin/mapiprofile
938         rm -f utils/mapiprofile.o
939
940 clean:: mapiprofile-clean
941
942 bin/mapiprofile: utils/mapiprofile.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
943         @echo "Linking $@"
944         @$(CC) -o $@ $^ $(LIBS) -lpopt
945
946
947 ###################
948 #openchangepfadmin
949 ###################
950
951 openchangepfadmin:      bin/openchangepfadmin
952
953 openchangepfadmin-install:      openchangepfadmin
954         $(INSTALL) -d $(DESTDIR)$(bindir) 
955         $(INSTALL) -m 0755 bin/openchangepfadmin $(DESTDIR)$(bindir)
956
957 openchangepfadmin-uninstall:
958         rm -f $(DESTDIR)$(bindir)/openchangepfadmin
959
960 openchangepfadmin-clean::
961         rm -f bin/openchangepfadmin
962         rm -f utils/openchangepfadmin.o
963
964 clean:: openchangepfadmin-clean
965
966 bin/openchangepfadmin:  utils/openchangepfadmin.o                       \
967                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          \
968                         libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
969         @echo "Linking $@"
970         @$(CC) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt                     
971
972
973 ###################
974 # exchange2mbox
975 ###################
976
977 exchange2mbox:          bin/exchange2mbox
978
979 exchange2mbox-install:  exchange2mbox
980         $(INSTALL) -d $(DESTDIR)$(bindir)
981         $(INSTALL) -m 0755 bin/exchange2mbox $(DESTDIR)$(bindir)
982
983 exchange2mbox-uninstall:
984         rm -f $(DESTDIR)$(bindir)/exchange2mbox
985
986 exchange2mbox-clean::
987         rm -f bin/exchange2mbox
988         rm -f utils/exchange2mbox.o
989         rm -f utils/openchange-tools.o  
990
991 clean:: exchange2mbox-clean
992
993 bin/exchange2mbox:      utils/exchange2mbox.o                           \
994                         utils/openchange-tools.o                        \
995                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
996         @echo "Linking $@"
997         @$(CC) -o $@ $^ $(LIBS) -lpopt  $(MAGIC_LIBS)
998
999
1000 ###################
1001 # exchange2ical
1002 ###################
1003
1004 exchange2ical:          bin/exchange2ical
1005
1006 exchange2ical-install:  exchange2ical
1007         $(INSTALL) -d $(DESTDIR)$(bindir)
1008         $(INSTALL) -m 0755 bin/exchange2ical $(DESTDIR)$(bindir)
1009
1010 exchange2ical-uninstall:
1011         rm -f $(DESTDIR)$(bindir)/exchange2ical
1012
1013 exchange2ical-clean::
1014         rm -f bin/exchange2ical
1015         rm -f utils/exchange2ical/exchange2ical.o
1016         rm -f utils/exchange2ical/exchange2ical_utils.o
1017         rm -f utils/exchange2ical/exchange2ical_component.o
1018         rm -f utils/exchange2ical/exchange2ical_property.o
1019         rm -f utils/openchange-tools.o  
1020
1021 clean:: exchange2ical-clean
1022
1023 bin/exchange2ical:      utils/exchange2ical/exchange2ical.o             \
1024                         utils/exchange2ical/exchange2ical_component.o   \
1025                         utils/exchange2ical/exchange2ical_property.o    \
1026                         utils/exchange2ical/exchange2ical_utils.o       \
1027                         utils/openchange-tools.o                        \
1028                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1029         @echo "Linking $@"
1030         @$(CC) -o $@ $^ $(LIBS) -lpopt
1031
1032
1033 ###################
1034 # mapitest
1035 ###################
1036
1037 mapitest:       libmapi                 \
1038                 utils/mapitest/proto.h  \
1039                 bin/mapitest
1040
1041 mapitest-install:       mapitest
1042         $(INSTALL) -d $(DESTDIR)$(bindir)
1043         $(INSTALL) -m 0755 bin/mapitest $(DESTDIR)$(bindir)
1044
1045 mapitest-uninstall:
1046         rm -f $(DESTDIR)$(bindir)/mapitest
1047
1048 mapitest-clean:
1049         rm -f bin/mapitest
1050         rm -f utils/mapitest/*.o
1051         rm -f utils/mapitest/modules/*.o
1052         rm -f utils/mapitest/proto.h
1053         rm -f utils/mapitest/mapitest_proto.h
1054
1055 clean:: mapitest-clean
1056
1057 bin/mapitest:   utils/mapitest/mapitest.o                       \
1058                 utils/mapitest/mapitest_suite.o                 \
1059                 utils/mapitest/mapitest_print.o                 \
1060                 utils/mapitest/mapitest_stat.o                  \
1061                 utils/mapitest/mapitest_common.o                \
1062                 utils/mapitest/module.o                         \
1063                 utils/mapitest/modules/module_oxcstor.o         \
1064                 utils/mapitest/modules/module_oxcfold.o         \
1065                 utils/mapitest/modules/module_oxomsg.o          \
1066                 utils/mapitest/modules/module_oxcmsg.o          \
1067                 utils/mapitest/modules/module_oxcprpt.o         \
1068                 utils/mapitest/modules/module_oxctable.o        \
1069                 utils/mapitest/modules/module_oxorule.o         \
1070                 utils/mapitest/modules/module_oxcfxics.o        \
1071                 utils/mapitest/modules/module_nspi.o            \
1072                 utils/mapitest/modules/module_noserver.o        \
1073                 utils/mapitest/modules/module_errorchecks.o     \
1074                 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)          
1075         @echo "Linking $@"
1076         @$(CC) -o $@ $^ $(LIBS) -lpopt
1077
1078 utils/mapitest/proto.h:                                 \
1079         utils/mapitest/mapitest_suite.c                 \
1080         utils/mapitest/mapitest_print.c                 \
1081         utils/mapitest/mapitest_stat.c                  \
1082         utils/mapitest/mapitest_common.c                \
1083         utils/mapitest/module.c                         \
1084         utils/mapitest/modules/module_oxcstor.c         \
1085         utils/mapitest/modules/module_oxcfold.c         \
1086         utils/mapitest/modules/module_oxomsg.c          \
1087         utils/mapitest/modules/module_oxcmsg.c          \
1088         utils/mapitest/modules/module_oxcprpt.c         \
1089         utils/mapitest/modules/module_oxctable.c        \
1090         utils/mapitest/modules/module_oxorule.c         \
1091         utils/mapitest/modules/module_oxcfxics.c        \
1092         utils/mapitest/modules/module_nspi.c            \
1093         utils/mapitest/modules/module_noserver.c        \
1094         utils/mapitest/modules/module_errorchecks.c
1095         @echo "Generating $@"
1096         @./script/mkproto.pl --private=utils/mapitest/mapitest_proto.h --public=utils/mapitest/proto.h $^
1097
1098 #####################
1099 # openchangemapidump
1100 #####################
1101
1102 openchangemapidump:             bin/openchangemapidump
1103
1104 openchangemapidump-install:     openchangemapidump
1105         $(INSTALL) -d $(DESTDIR)$(bindir)
1106         $(INSTALL) -m 0755 bin/openchangemapidump $(DESTDIR)$(bindir)
1107
1108 openchangemapidump-uninstall:
1109         rm -f bin/openchangemapidump
1110         rm -f $(DESTDIR)$(bindir)/openchangemapidump
1111
1112 openchangemapidump-clean::
1113         rm -f bin/openchangemapidump
1114         rm -f utils/backup/openchangemapidump.o
1115         rm -f utils/backup/openchangebackup.o
1116
1117 clean:: openchangemapidump-clean
1118
1119 bin/openchangemapidump: utils/backup/openchangemapidump.o               \
1120                         utils/backup/openchangebackup.o                 \
1121                         libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1122         @echo "Linking $@"
1123         @$(CC) -o $@ $^ $(LIBS) -lpopt
1124
1125
1126 ###############
1127 # schemaIDGUID
1128 ###############
1129
1130 schemaIDGUID:           bin/schemaIDGUID
1131
1132 schemaIDGUID-install:   schemaIDGUID
1133         $(INSTALL) -m 0755 bin/schemaIDGUID $(DESTDIR)$(bindir)
1134
1135 schemaIDGUID-uninstall:
1136         rm -f $(DESTDIR)$(bindir)/schemaIDGUID
1137
1138 schemaIDGUID-clean::
1139         rm -f bin/schemaIDGUID
1140         rm -f utils/schemaIDGUID.o
1141
1142 clean:: schemaIDGUID-clean
1143
1144 bin/schemaIDGUID: utils/schemaIDGUID.o
1145         @echo "Linking $@"
1146         @$(CC) -o $@ $^ $(LIBS)
1147
1148
1149 ##################
1150 # locale_codepage
1151 ##################
1152
1153 locale_codepage:        bin/locale_codepage
1154
1155 locale_codepage-install:        locale_codepage
1156         $(INSTALL) -m 0755 bin/locale_codepage $(DESTDIR)$(bindir)
1157
1158 locale_codepage-uninstall:
1159         rm -f bin/locale_codepage
1160         rm -f $(DESTDIR)$(bindir)/locale_codepage
1161
1162 locale_codepage-clean::
1163         rm -f bin/locale_codepage
1164         rm -f libmapi/tests/locale_codepage.o
1165
1166 clean:: locale_codepage-clean
1167
1168 bin/locale_codepage: libmapi/tests/locale_codepage.o libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1169         @echo "Linking $@"
1170         @$(CC) -o $@ $^ $(LIBS) -lpopt
1171
1172 ###################
1173 # python code
1174 ###################
1175
1176 pythonscriptdir = python
1177
1178 pymapi: $(pythonscriptdir)/mapi.$(SHLIBEXT)
1179
1180 pymapi/%: CFLAGS+=`$(PYTHON_CONFIG) --cflags` -fPIC
1181
1182 $(pythonscriptdir)/mapi.$(SHLIBEXT): $(patsubst %.c,%.o,$(wildcard pymapi/*.c)) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
1183         $(CC) -o $@ $^ `$(PYTHON_CONFIG) --libs` $(DSOOPT)
1184
1185 pymapi-install::
1186         $(INSTALL) -d $(DESTDIR)$(PYCDIR)
1187         $(INSTALL) -m 0755 $(pythonscriptdir)/mapi.$(SHLIBEXT) $(DESTDIR)$(PYCDIR)
1188
1189 pymapi-uninstall::
1190         rm -f $(DESTDIR)$(PYCDIR)/mapi.$(SHLIBEXT)
1191
1192 PYTHON_MODULES = $(patsubst $(pythonscriptdir)/%,%,$(shell find  $(pythonscriptdir) -name "*.py"))
1193
1194 python-install::
1195         @echo "Installing Python modules"
1196         @$(foreach MODULE, $(PYTHON_MODULES), \
1197                 $(INSTALL) -d $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1198                 $(INSTALL) -m 0644 $(pythonscriptdir)/$(MODULE) $(DESTDIR)$(pythondir)/$(dir $(MODULE)); \
1199         )
1200
1201 python-uninstall::
1202         rm -rf $(DESTDIR)$(pythondir)/openchange
1203
1204 EPYDOC_OPTIONS = --no-private --url http://www.openchange.org/ --no-sourcecode
1205
1206 epydoc::
1207         PYTHONPATH=$(pythonscriptdir) epydoc $(EPYDOC_OPTIONS) openchange
1208
1209 ###################
1210 # nagios plugin
1211 ###################
1212
1213 nagiosdir = $(libdir)/nagios
1214
1215 installnagios:
1216         $(INSTALL) -d $(DESTDIR)$(nagiosdir)
1217         $(INSTALL) -m 0755 script/check_exchange $(DESTDIR)$(nagiosdir)
1218
1219 ###################
1220 # libmapi examples
1221 ###################
1222 examples:
1223         cd doc/examples && make && cd ${OLD_PWD}
1224
1225 examples-clean::
1226         rm -f doc/examples/mapi_sample1
1227         rm -f doc/examples/fetchappointment
1228         rm -f doc/examples/fetchmail
1229
1230 clean:: examples-clean
1231
1232 examples-install examples-uninstall:
1233
1234 manpages = \
1235                 doc/man/man1/exchange2mbox.1                            \
1236                 doc/man/man1/mapiprofile.1                              \
1237                 doc/man/man1/openchangeclient.1                         \
1238                 doc/man/man1/openchangepfadmin.1                        \
1239                 $(wildcard apidocs/man/man3/*)
1240
1241 installman: doxygen
1242         @./script/installman.sh $(DESTDIR)$(mandir) $(manpages)
1243
1244
1245 uninstallman:
1246         @./script/uninstallman.sh $(DESTDIR)$(mandir) $(manpages)
1247
1248 doxygen:        
1249         @if test ! -d apidocs ; then                                            \
1250                 echo "Doxify API documentation: HTML and man pages";            \
1251                 mkdir -p apidocs/html;                                          \
1252                 mkdir -p apidocs/man;                                           \
1253                 $(DOXYGEN) Doxyfile;                                            \
1254                 $(DOXYGEN) libmapi/Doxyfile;                                    \
1255                 $(DOXYGEN) libmapiadmin/Doxyfile;                               \
1256                 $(DOXYGEN) libocpf/Doxyfile;                                    \
1257                 $(DOXYGEN) libmapi++/Doxyfile;                                  \
1258                 $(DOXYGEN) mapiproxy/Doxyfile;                                  \
1259                 $(DOXYGEN) utils/mapitest/Doxyfile;                             \
1260                 cp -f doc/doxygen/index.html apidocs/html;                      \
1261                 cp -f doc/doxygen/pictures/* apidocs/html/overview;             \
1262                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi;              \
1263                 cp -f doc/doxygen/pictures/* apidocs/html/libmapiadmin;         \
1264                 cp -f doc/doxygen/pictures/* apidocs/html/libmapi++;            \
1265                 cp -f doc/doxygen/pictures/* apidocs/html/libocpf;              \
1266                 cp -f doc/doxygen/pictures/* apidocs/html/mapitest;             \
1267                 cp -f doc/doxygen/pictures/* apidocs/html/mapiproxy;            \
1268                 cp -f mapiproxy/documentation/pictures/* apidocs/html/mapiproxy;\
1269                 rm -f apidocs/man/man3/todo.3;                                  \
1270                 rm -f apidocs/man/man3/bug.3;                                   \
1271                 rm -f apidocs/man/man3/*.c.3;                                   \
1272         fi                                                              
1273
1274 etags:
1275         etags `find $(srcdir) -name "*.[ch]"`
1276
1277 ctags:
1278         ctags `find $(srcdir) -name "*.[ch]"`
1279
1280 swigperl-all:
1281         @echo "Creating Perl bindings ..."
1282         @$(MAKE) -C swig/perl all
1283
1284 swigperl-install:
1285         @echo "Install Perl bindings ..."
1286         @$(MAKE) -C swig/perl install
1287
1288 swigperl-uninstall:
1289         @echo "Uninstall Perl bindings ..."
1290         @$(MAKE) -C swig/perl uninstall
1291
1292 distclean::
1293         @$(MAKE) -C swig/perl distclean
1294
1295 clean::
1296         @echo "Cleaning Perl bindings ..."
1297         @$(MAKE) -C swig/perl clean
1298
1299 .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
1300
1301 test:: check
1302
1303 check:: torture/openchange.$(SHLIBEXT) libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
1304         # FIXME: Set up server
1305         LD_LIBRARY_PATH=`pwd` $(SMBTORTURE) --load-module torture/openchange.$(SHLIBEXT) ncalrpc: OPENCHANGE
1306         ./bin/mapitest --mapi-calls 
1307
1308 # This should be the last line in the makefile since other distclean rules may 
1309 # need config.mk
1310 distclean::
1311         rm -f config.mk