2 # Process this file with autoconf to produce a configure script.
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])
11 AM_INIT_AUTOMAKE([1.11 nostdinc silent-rules subdir-objects tar-pax -Wno-portability])
13 # Checks for programs.
17 if test "x$ifGNUmake" = "x#" ; then
18 AC_MSG_ERROR("GNUmake is required")
23 LT_INIT([disable-static])
25 # Checks for libraries.
26 PKG_CHECK_MODULES([GLIB],
33 AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
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.])
43 PKG_CHECK_MODULES([CHECK], [check >= 0.9.4], [have_check=yes], [have_check=no])
44 AC_SUBST(CHECK_CFLAGS)
47 AC_CHECK_HEADERS([string.h])
48 AC_CHECK_HEADERS([sys/xattr.h attr/xattr.h],[break])
49 AC_CHECK_FUNCS(llistxattr lgetxattr lsetxattr)
51 PKG_CHECK_MODULES(TZ_PLATFORM_CONFIG, libtzplatform-config)
52 AC_SUBST(TZ_PLATFORM_CONFIG_CFLAGS)
53 AC_SUBST(TZ_PLATFORM_CONFIG_LIBS)
56 AC_SEARCH_LIBS([crypt],[crypt], CRYPT_LIB="-l$ac_lib", CRYPT_LIB="")
58 if test "x$CRYPT_LIB" = "x" ; then
59 AC_MSG_ERROR("CRYPT Library is required")
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"
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])
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])
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"
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"
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"
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"
116 AC_SUBST(MESSAGE_BUS_USER, ["User=root"])
118 AC_SUBST(DBUS_SERVICES_DIR)
119 AC_SUBST(DBUS_INTERFACES_DIR)
120 AC_SUBST(DBUS_CONF_DIR)
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])
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])
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
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])
146 AM_CONDITIONAL(HAVE_TESTS, [test x$enable_tests = xyes])
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
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])
161 AM_CONDITIONAL(HAVE_DEBUG, [test x$enable_debug = xyes])
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])
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])
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])
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])
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])
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"],
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])
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])
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])
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
254 GTK_DOC_CHECK([1.18],[--flavour no-tmpl])
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"
262 GUM_CFLAGS="$GUM_CFLAGS -DENABLE_DEBUG"
267 GUM_INCLUDES='-I$(top_builddir) -I$(top_srcdir)'
268 AC_SUBST(GUM_INCLUDES)
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)
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)
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'
291 GUMD_INCLUDES='$(GUM_COMMON_INCLUDES)'
292 AC_SUBST(GUMD_INCLUDES)
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)
306 src/common/dbus/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
314 src/lib/libgum-uninstalled.pc
326 if test "x$enable_tests" = "xyes" ; then
328 test/data/test-gumd-dbus.conf
331 if test x$enable_dbus_type != xp2p; then
333 test/data/services/org.O1.SecurityAccounts.gUserManagement.service