]> arthur.barton.de Git - netatalk.git/blob - macros/cnid-backend.m4
Last commit message mentionend the wrong CNID backends!
[netatalk.git] / macros / cnid-backend.m4
1 AC_DEFUN([AC_NETATALK_CNID], [
2     dnl Don't use BDB unless it's needed
3     bdb_required=no
4     compiled_backends=""
5
6     dnl Determine whether or not to use Database Daemon CNID backend
7     AC_MSG_CHECKING([whether or not to use Database Daemon CNID backend])
8     AC_ARG_WITH(cnid-dbd-backend,
9     [  --with-cnid-dbd-backend       build CNID with Database Daemon Data Store],
10     [   if test x"$withval" = x"no"; then
11             AC_MSG_RESULT([no])
12             use_dbd_backend=no
13         else
14             use_dbd_backend=yes
15             AC_MSG_RESULT([yes])
16         fi
17     ],[
18         use_dbd_backend=yes
19         AC_MSG_RESULT([yes])
20     ])
21
22     if test $use_dbd_backend = yes; then
23         compiled_backends="$compiled_backends dbd"
24         AC_DEFINE(CNID_BACKEND_DBD, 1, [Define if CNID Database Daemon backend should be compiled.])
25         if test x"$DEFAULT_CNID_SCHEME" = x; then
26             DEFAULT_CNID_SCHEME=dbd
27         fi
28         bdb_required=yes
29     fi
30     AM_CONDITIONAL(BUILD_DBD_DAEMON, test x"$use_dbd_backend" = x"yes")
31
32     dnl Determine whether or not to use BDB Concurrent Data Store
33     AC_MSG_CHECKING([whether or not to use BDB Concurrent Data Store])
34     AC_ARG_WITH(cnid-cdb-backend,
35         [  --with-cnid-cdb-backend      build CNID with Concurrent BDB Data Store],[
36             if test x"$withval" = x"no"; then
37                 use_cdb_backend=no
38         else
39             use_cdb_backend=yes
40         fi
41     ],[use_cdb_backend=no]
42     )
43
44     if test $use_cdb_backend = yes; then
45         AC_MSG_RESULT([yes])
46         AC_DEFINE(CNID_BACKEND_CDB, 1, [Define if CNID Concurrent BDB backend should be compiled.])         
47         if test x"$DEFAULT_CNID_SCHEME" = x; then
48             DEFAULT_CNID_SCHEME=cdb
49         fi
50         bdb_required=yes
51         compiled_backends="$compiled_backends cdb"
52     else
53         AC_MSG_RESULT([no])
54     fi
55     AM_CONDITIONAL(USE_CDB_BACKEND, test x"$use_cdb_backend" = x"yes")
56
57     dnl Determine whether or not to use LAST DID scheme
58     AC_MSG_CHECKING([whether or not to use LAST DID scheme])
59     AC_ARG_WITH(cnid-last-backend,
60         [  --with-cnid-last-backend     build LAST CNID scheme],
61         [
62         if test x"$withval" = x"no"; then
63             use_last_backend=no
64         else
65             use_last_backend=yes
66         fi
67     ],[
68         use_last_backend=yes
69     ])
70
71     if test $use_last_backend = yes; then
72         AC_MSG_RESULT([yes])
73         AC_DEFINE(CNID_BACKEND_LAST, 1, [Define if CNID LAST scheme backend should be compiled.])
74         if test x"$DEFAULT_CNID_SCHEME" = x; then
75             DEFAULT_CNID_SCHEME=last
76         fi
77         compiled_backends="$compiled_backends last"
78     else
79         AC_MSG_RESULT([no])
80     fi
81     AM_CONDITIONAL(USE_LAST_BACKEND, test x"$use_last_backend" = x"yes")
82
83     dnl Determine whether or not to use TDB DID scheme
84     AC_MSG_CHECKING([whether or not to use TDB DID scheme])
85     AC_ARG_WITH(cnid-tdb-backend,
86         [  --with-cnid-tdb-backend      build DID CNID scheme],
87     [
88         if test x"$withval" = x"no"; then
89             use_tdb_backend=no
90         else
91             use_tdb_backend=yes
92         fi
93     ],[
94         use_tdb_backend=no
95     ])
96
97     if test $use_tdb_backend = yes; then
98         AC_MSG_RESULT([yes])
99         AC_DEFINE(CNID_BACKEND_TDB, 1, [Define if CNID TDB scheme backend should be compiled.])
100         if test x"$DEFAULT_TDB_SCHEME" = x; then
101             DEFAULT_CNID_SCHEME=tdb
102         fi
103         compiled_backends="$compiled_backends tdb"
104     else
105         AC_MSG_RESULT([no])
106     fi
107     AM_CONDITIONAL(USE_TDB_BACKEND, test x"$use_tdb_backend" = x"yes")
108
109     dnl Determine whether or not to use MTAB DID scheme
110     AC_MSG_CHECKING([whether or not to use MTAB DID scheme])
111     AC_ARG_WITH(cnid-mtab-backend,
112         [  --with-cnid-mtab-backend     build MTAB CNID scheme],
113     [
114         if test x"$withval" = x"no"; then
115             use_mtab_backend=no
116         else
117             use_mtab_backend=yes
118         fi
119     ],[
120         use_mtab_backend=no
121     ])
122
123     if test $use_mtab_backend = yes; then
124         AC_MSG_RESULT([yes])
125         AC_DEFINE(CNID_BACKEND_MTAB, 1, [Define if CNID MTAB scheme backend should be compiled.])
126         if test x"$DEFAULT_CNID_SCHEME" = x; then
127             DEFAULT_CNID_SCHEME=mtab
128         fi
129         compiled_backends="$compiled_backends mtab"
130     else                
131         AC_MSG_RESULT([no])
132     fi
133     AM_CONDITIONAL(USE_MTAB_BACKEND, test x"$use_mtab_backend" = x"yes")
134
135     dnl Set default DID scheme
136     AC_MSG_CHECKING([default DID scheme])
137     AC_ARG_WITH(cnid-default-backend,
138         [  --with-cnid-default-backend=val      set default DID scheme],
139     [
140         if test x"$withval" = x; then
141             AC_MSG_RESULT([ignored])
142         else
143             DEFAULT_CNID_SCHEME=$withval
144             AC_MSG_RESULT($DEFAULT_CNID_SCHEME)
145         fi
146     ],[
147         AC_MSG_RESULT($DEFAULT_CNID_SCHEME)
148     ])
149
150     if test x"$DEFAULT_CNID_SCHEME" = x; then
151         AC_MSG_ERROR([No DID schemes compiled in ])
152     fi
153
154     AC_MSG_CHECKING([whether default CNID scheme has been activated])
155     found_scheme=no
156     for scheme in $compiled_backends ; do
157         if test x"$scheme" = x"$DEFAULT_CNID_SCHEME"; then      
158             found_scheme=yes
159         fi
160     done
161     if test x"$found_scheme" = x"no"; then
162         AC_MSG_RESULT([no])
163         AC_MSG_ERROR([Specified default CNID scheme $DEFAULT_CNID_SCHEME was not selected for compilation])
164     else
165         AC_MSG_RESULT([yes])
166     fi
167
168     AC_DEFINE_UNQUOTED(DEFAULT_CNID_SCHEME, "$DEFAULT_CNID_SCHEME", [Default CNID scheme to be used])
169     AC_SUBST(DEFAULT_CNID_SCHEME)
170     AC_SUBST(compiled_backends)
171
172     if test "x$bdb_required" = "xyes"; then
173         ifelse([$1], , :, [$1])
174     else
175         ifelse([$2], , :, [$2])     
176     fi
177 ])