Merge "Revert "API: add gum_user_type_to_prefix ()"" into tizen
[platform/upstream/gumd.git] / configure.ac
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ([2.60])
5 AC_INIT([gumd], [1.0.8],[],[],[https://github.com/01org/gumd])
6 AC_CONFIG_SRCDIR([src/daemon/main.c])
7 AC_CONFIG_HEADERS([config.h])
8 AC_CONFIG_AUX_DIR([build-aux])
9 AC_CONFIG_MACRO_DIR([m4])
10
11 AM_INIT_AUTOMAKE([1.11 nostdinc silent-rules subdir-objects tar-pax -Wno-portability])
12
13 # Checks for programs.
14 AC_PROG_CC
15 AM_PROG_AR
16 AX_CHECK_GNU_MAKE
17 if test "x$ifGNUmake" = "x#" ; then
18         AC_MSG_ERROR("GNUmake is required")
19 fi
20
21 #libtool
22 LT_PREREQ([2.2])
23 LT_INIT([disable-static])
24
25 # Checks for libraries.
26 PKG_CHECK_MODULES([GLIB], 
27                   [glib-2.0 >= 2.30
28                    gio-2.0
29                    gio-unix-2.0
30                    gmodule-2.0])
31 AC_SUBST(GLIB_CFLAGS)
32 AC_SUBST(GLIB_LIBS)
33 AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
34
35 # Checks for libtlm-nfc
36 PKG_CHECK_MODULES([LIBTLM_NFC], [libtlm-nfc], [have_libtlm_nfc=yes], [have_libtlm_nfc=no])
37 AM_CONDITIONAL(HAVE_LIBTLM_NFC, [test x$have_libtlm_nfc = xyes])
38 if test "x$have_libtlm_nfc" = xyes; then
39     AC_DEFINE(HAVE_LIBTLM_NFC, [1], [Define if libtlm-nfc exists.])
40 fi
41
42 # Check library.
43 PKG_CHECK_MODULES([CHECK], [check >= 0.9.4], [have_check=yes], [have_check=no])
44 AC_SUBST(CHECK_CFLAGS)
45 AC_SUBST(CHECK_LIBS)
46
47 AC_CHECK_HEADERS([string.h])
48 AC_CHECK_HEADERS([sys/xattr.h attr/xattr.h],[break])
49 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr)
50
51 PKG_CHECK_MODULES(TZ_PLATFORM_CONFIG, libtzplatform-config)
52 AC_SUBST(TZ_PLATFORM_CONFIG_CFLAGS)
53 AC_SUBST(TZ_PLATFORM_CONFIG_LIBS)
54
55 # Crypt library.
56 AC_SEARCH_LIBS([crypt],[crypt], CRYPT_LIB="-l$ac_lib", CRYPT_LIB="")
57 AC_SUBST(CRYPT_LIB)
58 if test "x$CRYPT_LIB" = "x" ; then
59     AC_MSG_ERROR("CRYPT Library is required")
60 fi
61
62 # Enable cov
63 AC_ARG_ENABLE(cov, [  --enable-cov build to be used for coverage analysis ],
64           [enable_cov=yes], [enable_cov=no])
65 if test "x$enable_cov" = "xyes" ; then
66     GCOV_CFLAGS="-ftest-coverage -fprofile-arcs"
67     GCOV_LIBS="-lgcov"
68 fi
69 AC_SUBST(GCOV_CFLAGS)
70 AC_SUBST(GCOV_LIBS)
71
72 # Enable Distcheck
73 AC_ARG_ENABLE(distcheck, [  --enable-distcheck build for distcheck target],
74               [enable_distcheck=yes], [enable_distcheck=no])
75 echo "--------------------------------"
76 echo "Distcheck : '$enable_distcheck'"
77 AM_CONDITIONAL(SET_PERMISSIONS, [test x$enable_distcheck != xyes])
78
79 # Enable Dbus type
80 AC_ARG_ENABLE(dbus-type,
81           [  --enable-dbus-type=dbus-type specify daemon dbus type:
82            p2p: uses peer to peer dbus
83            session: uses session message bus
84            system(default): uses system message bus],
85           [enable_dbus_type=$enableval], [enable_dbus_type=system])
86           
87 echo "--------------------------------"
88 echo "Dbus Type : '$enable_dbus_type'"
89 echo "--------------------------------"
90 if test "x$enable_dbus_type" = "xp2p" ; then
91     AC_DEFINE(GUM_BUS_TYPE_P2P, [1], [Use peer to peer dbus])
92 elif test "x$enable_dbus_type" = "xsession" ; then
93         PKG_CHECK_MODULES([DBus], [dbus-1])
94     AC_DEFINE(GUM_BUS_TYPE, [G_BUS_TYPE_SESSION], [Use session bus])
95     if test "x$enable_distcheck" = "xyes" ; then
96         DBUS_SERVICES_DIR="${datadir}/dbus-1/services"
97         DBUS_INTERFACES_DIR="${datadir}/dbus-1/interfaces"
98         DBUS_CONF_DIR="${datadir}/dbus-1/session.d"
99     else
100         DBUS_SERVICES_DIR="`pkg-config --variable session_bus_services_dir dbus-1`"
101         DBUS_INTERFACES_DIR="`pkg-config --variable interfaces_dir dbus-1`"
102         DBUS_CONF_DIR="`pkg-config --variable sysconfdir dbus-1`/dbus-1/session.d"
103     fi
104 elif test "x$enable_dbus_type" = "xsystem" ; then
105     PKG_CHECK_MODULES([DBus], [dbus-1])
106     AC_DEFINE(GUM_BUS_TYPE, [G_BUS_TYPE_SYSTEM], [Use system bus])
107     if test "x$enable_distcheck" = "xyes" ; then
108         DBUS_SERVICES_DIR="${datadir}/dbus-1/system-services"
109         DBUS_INTERFACES_DIR="${datadir}/dbus-1/interfaces"
110         DBUS_CONF_DIR="${datadir}/dbus-1/system.d"
111     else
112         DBUS_SERVICES_DIR="`pkg-config --variable system_bus_services_dir dbus-1`"
113         DBUS_INTERFACES_DIR="`pkg-config --variable interfaces_dir dbus-1`"
114         DBUS_CONF_DIR="`pkg-config --variable sysconfdir dbus-1`/dbus-1/system.d"
115     fi
116     AC_SUBST(MESSAGE_BUS_USER, ["User=root"])
117 fi
118 AC_SUBST(DBUS_SERVICES_DIR)
119 AC_SUBST(DBUS_INTERFACES_DIR)
120 AC_SUBST(DBUS_CONF_DIR)
121
122 AC_SUBST(MESSAGE_BUS_TYPE, [$enable_dbus_type])
123 AM_CONDITIONAL(HAVE_SYSTEM_BUS, [test x$enable_dbus_type = xsystem])
124 AM_CONDITIONAL(USE_DBUS_SERVICE, [test x$enable_dbus_type != xp2p])
125
126 # Check for systemd
127 VAR_SYSTEMD="`pkg-config --variable systemdsystemunitdir systemd`"
128 if test "x$VAR_SYSTEMD" != "x" ; then
129     AC_DEFINE(USE_SYSTEMD, [1], [Use systemd-login dbus APIs])
130 elif test "x$VAR_SYSTEMD" = "x" ; then
131     AC_DEFINE(USE_SYSTEMD, [0], [Use systemd-login dbus APIs])
132 fi
133
134 # Enable tests
135 AC_ARG_ENABLE(tests, [  --enable-tests  enable tests features],
136           [enable_tests=yes], [enable_tests=no])
137 if test "x$enable_cov" = "xyes" ; then
138     # Enable tests automatically when code coverage is enabled
139     enable_tests="yes"
140 fi
141 echo "--------------------------------"
142 echo "Enable tests features: '$enable_tests'"
143 if test "x$enable_tests" = "xyes" ; then
144     AC_DEFINE(ENABLE_TESTS, [1], [Enable tests features])
145 fi
146 AM_CONDITIONAL(HAVE_TESTS, [test x$enable_tests = xyes])
147
148 # Enable Debug
149 AC_ARG_ENABLE(debug, [  --enable-debug  enable debug features],
150               [enable_debug=yes], [enable_debug=no])
151 if test "x$enable_tests" = "xyes" ; then
152     # Enable debug automatically when tests are enabled
153     enable_debug="yes"
154 fi
155 echo "--------------------------------"
156 echo "Enable Debug Feature: '$enable_debug'"
157 echo "--------------------------------"
158 if test "x$enable_debug" = "xyes" ; then
159     AC_DEFINE(ENABLE_DEBUG, [1], [Enable debug features])
160 fi
161 AM_CONDITIONAL(HAVE_DEBUG, [test x$enable_debug = xyes])
162
163 # passwd file
164 AC_ARG_ENABLE(passwdfile,
165               [  --enable-passwdfile=path  enable passwd file at location "path"
166                instead of default "/etc/passwd"], 
167               [enable_passwdfile=$enableval],
168               [enable_passwdfile="/etc/passwd"])
169 AC_DEFINE_UNQUOTED(GUM_PASSWD_FILE, ["$enable_passwdfile"],
170                  [Path for passwd file])
171
172 # shadow file
173 AC_ARG_ENABLE(shadowfile,
174               [  --enable-shadowfile=path  enable shadow file at location "path"
175                instead of default "/etc/shadow"], 
176               [enable_shadowfile=$enableval],
177               [enable_shadowfile="/etc/shadow"])
178 AC_DEFINE_UNQUOTED(GUM_SHADOW_FILE, ["$enable_shadowfile"],
179                  [Path for shadow file])
180
181 # group file
182 AC_ARG_ENABLE(groupfile,
183               [  --enable-groupfile=path  enable group file at location "path"
184                instead of default "/etc/group"], 
185               [enable_groupfile=$enableval],
186               [enable_groupfile="/etc/group"])
187 AC_DEFINE_UNQUOTED(GUM_GROUP_FILE, ["$enable_groupfile"],
188                  [Path for group file])
189
190 # gshadow file
191 AC_ARG_ENABLE(gshadowfile,
192               [  --enable-gshadowfile=path  enable gshadow file at location "path"
193                instead of default "/etc/gshadow"], 
194               [enable_gshadowfile=$enableval],
195               [enable_gshadowfile="/etc/gshadow"])
196 AC_DEFINE_UNQUOTED(GUM_GSHADOW_FILE, ["$enable_gshadowfile"],
197                  [Path for gshadow file])
198
199 # home dir prefix
200 AC_ARG_ENABLE(homedirpref,
201               [  --enable-homedirpref=path  enable home directory prefix at "path"
202                instead of default "/home"], 
203               [enable_homedirpref=$enableval],
204               [enable_homedirpref="/home"])
205 AC_DEFINE_UNQUOTED(GUM_HOME_DIR_PREFIX, ["$enable_homedirpref"],
206                  [Path for home dir prefix])
207
208 # shell path
209 AC_ARG_ENABLE(shell,
210               [  --enable-shell=path  enable shell at location "path"
211                instead of default "/bin/bash"], 
212               [enable_shell=$enableval],
213               [enable_shell="/bin/bash"])
214 AC_DEFINE_UNQUOTED(GUM_SHELL, ["$enable_shell"],
215                  [Path for shell])
216
217 # defult user groups
218 AC_ARG_ENABLE(defusergroups,
219               [  --enable-defusergroups=groups  enable default user groups by
220                "groups" instead of default ""],
221               [enable_defusergroups=$enableval],
222               [enable_defusergroups=""])
223 AC_DEFINE_UNQUOTED(GUM_DEF_GROUPS, ["$enable_defusergroups"],
224                  [Default user groups to be assigned to user on creation])
225
226 # defult admin groups
227 AC_ARG_ENABLE(defadmingroups,
228               [  --enable-defadmingroups=groups  enable default groups for admin
229                user by "groups" instead of default ""],
230               [enable_defadmingroups=$enableval],
231               [enable_defadmingroups=""])
232 AC_DEFINE_UNQUOTED(GUM_DEF_ADMIN_GROUPS, ["$enable_defadmingroups"],
233                  [Default groups to be assigned to the admin user on creation])
234                  
235 # skeldir
236 AC_ARG_ENABLE(skeldir,
237               [  --enable-skeldir=path  enable skel dir at location "path" instead
238                of default "/etc/skel"], 
239               [enable_skeldir=$enableval],
240               [enable_skeldir="/etc/skel"])
241 AC_DEFINE_UNQUOTED(GUM_SKEL_DIR, ["$enable_skeldir"], [Path for skel directory])
242
243 # encryption algorithm
244 AC_ARG_ENABLE(encryptalgo,
245               [  --enable-encryptalgo=algo  enable encrypt algorithm as specified
246               by "algo" instead of default "SHA512". Other supported algorithms are
247               'MD5', 'SHA256', 'DES'], 
248               [enable_encryptalgo=$enableval],
249               [enable_encryptalgo="SHA512"])
250 AC_DEFINE_UNQUOTED(GUM_ENCRYPT_METHOD, ["$enable_encryptalgo"], [Encrypt
251                  algorithm])
252
253 # Gtk-doc
254 GTK_DOC_CHECK([1.18],[--flavour no-tmpl])
255
256 # Checks for typedefs, structures, and compiler characteristics.
257 GUM_CFLAGS='$(GLIB_CFLAGS) -D_POSIX_C_SOURCE=\"200809L\" -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE'
258 GUM_CFLAGS="$GUM_CFLAGS -Wall $GCOV_CFLAGS"
259 if test "x$enable_debug" = "xno" ; then
260     GUM_CFLAGS="$GUM_CFLAGS -Werror"
261 else
262     GUM_CFLAGS="$GUM_CFLAGS -DENABLE_DEBUG"
263 fi
264
265
266 AC_SUBST(GUM_CFLAGS)
267 GUM_INCLUDES='-I$(top_builddir) -I$(top_srcdir)'
268 AC_SUBST(GUM_INCLUDES)
269
270 # Gum common library cflags, libs, includes
271 GUM_COMMON_CFLAGS='$(GUM_CFLAGS) -DG_LOG_DOMAIN=\"gum-common\"'
272 AC_SUBST(GUM_COMMON_CFLAGS)
273 GUM_COMMON_LIBS='$(GLIB_LIBS) $(CRYPT_LIB) $(GCOV_LIBS)'
274 AC_SUBST(GUM_COMMON_LIBS)
275 GUM_COMMON_INCLUDES='$(GUM_INCLUDES) -I$(top_srcdir)/include/gum'
276 AC_SUBST(GUM_COMMON_INCLUDES)
277
278 # Gumd core lib cflags, libs, includes
279 GUMD_CORE_CFLAGS='$(GUM_CFLAGS) -DG_LOG_DOMAIN=\"gumd-core\"'
280 AC_SUBST(GUMD_CORE_CFLAGS)
281 GUMD_CORE_LIBS='$(GLIB_LIBS) $(GCOV_LIBS)'
282 AC_SUBST(GUMD_CORE_LIBS)
283 GUMD_CORE_INCLUDES='$(GUM_COMMON_INCLUDES)'
284 AC_SUBST(GUMD_CORE_INCLUDES)
285
286 # Gum daemon cflags, libs, includes
287 GUMD_CFLAGS='$(GUM_CFLAGS) -fPIE -DG_LOG_DOMAIN=\"gumd\"'
288 AC_SUBST(GUMD_CFLAGS)
289 GUMD_LIBS='$(GLIB_LIBS) $(GCOV_LIBS) -pie'
290 AC_SUBST(GUMD_LIBS)
291 GUMD_INCLUDES='$(GUM_COMMON_INCLUDES)'
292 AC_SUBST(GUMD_INCLUDES)
293
294 # Gum client library cflags, libs, includes
295 LIBGUM_CFLAGS='$(GUM_CFLAGS) -DG_LOG_DOMAIN=\"gum\"'
296 AC_SUBST(LIBGUM_CFLAGS)
297 LIBGUM_LIBS='$(GLIB_LIBS) $(GCOV_LIBS)'
298 AC_SUBST(LIBGUM_LIBS)
299 LIBGUM_INCLUDES='$(GUM_COMMON_INCLUDES)'
300 AC_SUBST(LIBGUM_INCLUDES)
301
302 AC_CONFIG_FILES([
303 Makefile
304 src/Makefile
305 src/common/Makefile
306 src/common/dbus/Makefile
307 src/daemon/Makefile
308 src/daemon/core/Makefile
309 src/daemon/dbus/Makefile
310 src/daemon/dbus/services/org.O1.SecurityAccounts.gUserManagement.service
311 src/daemon/dbus/gumd-dbus.conf
312 src/lib/Makefile
313 src/lib/libgum.pc
314 src/lib/libgum-uninstalled.pc
315 src/utils/Makefile
316 data/Makefile
317 data/gumd.conf
318 docs/Makefile
319 docs/version.xml
320 test/Makefile
321 test/common/Makefile
322 test/daemon/Makefile
323 test/lib/Makefile
324 ])
325
326 if test "x$enable_tests" = "xyes" ; then
327     AC_CONFIG_FILES([
328     test/data/test-gumd-dbus.conf
329     ])
330     
331     if test x$enable_dbus_type != xp2p; then
332         AC_CONFIG_FILES([
333         test/data/services/org.O1.SecurityAccounts.gUserManagement.service
334         ])
335     fi
336 fi
337
338 AC_OUTPUT