2 AC_INIT([spice-vdagent], [0.15.0])
3 AC_CONFIG_SRCDIR([configure.ac])
5 AM_CONFIG_HEADER([src/config.h])
7 AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip subdir-objects])
8 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
16 AC_DEFINE(_GNU_SOURCE, [1], [Enable GNU extensions])
19 AC_ARG_WITH([session-info],
20 [AS_HELP_STRING([--with-session-info=@<:@auto/console-kit/systemd/none@:>@],
21 [Session-info source to use @<:@default=auto@:>@])],
22 [case "$with_session_info" in
23 auto|console-kit|systemd|none) ;;
24 *) AC_MSG_ERROR([invalid session-info type specified]) ;;
26 [with_session_info="auto"])
28 dnl based on libvirt configure --init-script
29 AC_MSG_CHECKING([for init script flavor])
30 AC_ARG_WITH([init-script],
32 [--with-init-script=@<:@redhat/systemd/systemd+redhat/check@:>@],
33 [Style of init script to install @<:@default=check@:>@])],
34 [],[with_init_script=check])
37 case "$with_init_script" in
52 if test "$cross_compiling" != yes && test -f /etc/redhat-release; then
54 with_init_script=redhat
58 AC_MSG_ERROR([Unknown initscript flavour $with_init_script])
61 AM_CONDITIONAL([INIT_SCRIPT_RED_HAT], test "$init_redhat" = "yes")
62 AM_CONDITIONAL([INIT_SCRIPT_SYSTEMD], test "$init_systemd" = "yes")
63 AC_MSG_RESULT($with_init_script)
65 if test "x$init_systemd" = "xyes"; then
66 SYSTEMDSYSTEMUNITDIR=`${PKG_CONFIG} systemd --variable=systemdsystemunitdir`
67 AC_SUBST(SYSTEMDSYSTEMUNITDIR)
70 AC_ARG_ENABLE([pciaccess],
71 [AS_HELP_STRING([--enable-pciaccess], [Enable libpciaccess use for auto generation of Xinerama xorg.conf (default: yes)])],
72 [enable_pciaccess="$enableval"],
73 [enable_pciaccess="yes"])
75 AC_ARG_ENABLE([static-uinput],
76 [AS_HELP_STRING([--enable-statis-uinput], [Enable use of a fixed, static uinput device for X-servers without hotplug support (default: no)])],
77 [enable_static_uinput="$enableval"],
78 [enable_static_uinput="no"])
80 PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.12])
81 PKG_CHECK_MODULES(X, [xfixes xrandr >= 1.3 xinerama x11])
82 PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.12.5])
83 PKG_CHECK_MODULES(ALSA, [alsa >= 1.0.22])
85 if test "$with_session_info" = "auto" || test "$with_session_info" = "systemd"; then
86 PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],
87 [libsystemd-login >= 42],
88 [have_libsystemd_login="yes"],
89 [have_libsystemd_login="no"])
90 if test x"$have_libsystemd_login" = "xno" && test "$with_session_info" = "systemd"; then
91 AC_MSG_ERROR([libsystemd-login support explicitly requested, but some required packages are not available])
93 if test x"$have_libsystemd_login" = "xyes"; then
94 AC_DEFINE(HAVE_LIBSYSTEMD_LOGIN, [1], [If defined, vdagentd will be compiled with libsystemd-login support])
95 with_session_info="systemd"
98 have_libsystemd_login="no"
100 AM_CONDITIONAL(HAVE_LIBSYSTEMD_LOGIN, test x"$have_libsystemd_login" = "xyes")
102 if test "$with_session_info" = "auto" || test "$with_session_info" = "console-kit"; then
103 PKG_CHECK_MODULES([DBUS],
105 [have_console_kit="yes"],
106 [have_console_kit="no"])
107 if test x"$have_console_kit" = "xno" && test "$with_session_info" = "console-kit"; then
108 AC_MSG_ERROR([console-kit support explicitly requested, but some required packages are not available])
110 if test x"$have_console_kit" = "xyes"; then
111 AC_DEFINE([HAVE_CONSOLE_KIT], [1], [If defined, vdagentd will be compiled with ConsoleKit support])
112 with_session_info="console-kit"
114 with_session_info="none"
117 have_console_kit="no"
119 AM_CONDITIONAL(HAVE_CONSOLE_KIT, test x"$have_console_kit" = "xyes")
121 if test x"$enable_pciaccess" = "xyes" ; then
122 PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
123 AC_DEFINE([HAVE_PCIACCESS], [1], [If defined, vdagentd will be compiled with pciaccess support] )
125 AM_CONDITIONAL(HAVE_PCIACCESS, test x"$enable_pciaccess" = "xyes")
127 if test x"$enable_static_uinput" = "xyes" ; then
128 AC_DEFINE([WITH_STATIC_UINPUT], [1], [If defined, vdagentd will use a static uinput device] )
131 # If no CFLAGS are set, set some sane default CFLAGS
132 if test "$ac_test_CFLAGS" != set; then
133 DEFAULT_CFLAGS="-Wall -Werror -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4"
134 for F in $DEFAULT_CFLAGS; do
135 AC_MSG_CHECKING([whether $CC supports $F])
136 save_CFLAGS="$CFLAGS"
138 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [cc_flag=yes], [cc_flag=no])
139 if test "x$cc_flag" != "xyes"; then
140 CFLAGS="$save_CFLAGS"
142 AC_MSG_RESULT([$cc_flag])
147 AS_HELP_STRING([--enable-pie=@<:@auto/yes/no@:>@],
148 [Enable position-independent-executable support (for spice-vdagentd)@<:@default=auto@:>@]),
152 if test "x$enable_pie" != "xno"; then
153 save_CFLAGS="$CFLAGS"
154 save_LDFLAGS="$LDFLAGS"
155 CFLAGS="$CFLAGS -fPIE"
156 LDFLAGS="$LDFLAGS -pie -Wl,-z,relro -Wl,-z,now"
157 AC_MSG_CHECKING([for PIE support])
158 AC_LINK_IFELSE([AC_LANG_SOURCE([int main () { return 0; }])],
161 AC_MSG_RESULT([$have_pie])
162 if test "x$have_pie" = "xno" && test "x$enable_pie" = "xyes"; then
163 AC_MSG_ERROR([pie support explicitly requested, but your toolchain does not support it])
165 if test "x$have_pie" = "xyes"; then
167 PIE_LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now"
169 AC_SUBST(PIE_LDFLAGS)
171 CFLAGS="$save_CFLAGS"
172 LDFLAGS="$save_LDFLAGS"
180 data/spice-vdagentd.1
184 dnl ==========================================================================
187 spice-vdagent $VERSION
193 session-info: ${with_session_info}
194 pciaccess: ${enable_pciaccess}
195 static uinput: ${enable_static_uinput}
196 vdagentd pie + relro: ${have_pie}
198 install RH initscript: ${init_redhat}
199 install systemd service: ${init_systemd}
201 Now type 'make' to build $PACKAGE