1d514b0f3Smrg#  Copyright 2008 Red Hat, Inc.
2d514b0f3Smrg#
3d514b0f3Smrg#  Permission is hereby granted, free of charge, to any person obtaining a
4d514b0f3Smrg#  copy of this software and associated documentation files (the "Software"),
5d514b0f3Smrg#  to deal in the Software without restriction, including without limitation
6d514b0f3Smrg#  on the rights to use, copy, modify, merge, publish, distribute, sub
7d514b0f3Smrg#  license, and/or sell copies of the Software, and to permit persons to whom
8d514b0f3Smrg#  the Software is furnished to do so, subject to the following conditions:
9d514b0f3Smrg#
10d514b0f3Smrg#  The above copyright notice and this permission notice (including the next
11d514b0f3Smrg#  paragraph) shall be included in all copies or substantial portions of the
12d514b0f3Smrg#  Software.
13d514b0f3Smrg#
14d514b0f3Smrg#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15d514b0f3Smrg#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16d514b0f3Smrg#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
17d514b0f3Smrg#  THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18d514b0f3Smrg#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19d514b0f3Smrg#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20d514b0f3Smrg#
21d514b0f3Smrg# Process this file with autoconf to produce a configure script
22d514b0f3Smrg
23d514b0f3Smrg# Initialize Autoconf
24d514b0f3SmrgAC_PREREQ([2.60])
25d514b0f3SmrgAC_INIT([xf86-video-qxl],
26d514b0f3Smrg        [0.1.6],
27d514b0f3Smrg        [https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/issues],
28d514b0f3Smrg        [xf86-video-qxl])
29d514b0f3SmrgAC_CONFIG_SRCDIR([Makefile.am])
30d514b0f3SmrgAC_CANONICAL_HOST
31d514b0f3Smrg
32d514b0f3Smrg# Initialize Automake
33d514b0f3SmrgAM_INIT_AUTOMAKE([foreign dist-xz])
34d514b0f3SmrgAM_MAINTAINER_MODE
35d514b0f3SmrgAC_CONFIG_HEADERS([config.h])
36d514b0f3SmrgAC_SYS_LARGEFILE
37d514b0f3Smrg
38d514b0f3Smrg# Require xorg-macros: XORG_DEFAULT_OPTIONS
39d514b0f3Smrgm4_ifndef([XORG_MACROS_VERSION],
40d514b0f3Smrg          [m4_fatal([you must install X.Org util-macros 1.4 or later (or the corresponding package from your distribution) before running autoconf/autogen])])
41d514b0f3SmrgXORG_MACROS_VERSION(1.4)
42d514b0f3SmrgXORG_DEFAULT_OPTIONS
43d514b0f3Smrg
44d514b0f3Smrg# Initialize libtool
45d514b0f3SmrgAC_DISABLE_STATIC
46d514b0f3SmrgAC_PROG_INSTALL
47d514b0f3SmrgAC_PROG_LIBTOOL
48d514b0f3Smrg
49d514b0f3SmrgAH_TOP([#include "xorg-server.h"])
50d514b0f3Smrg
51d514b0f3Smrg# Define a configure option for an alternate module directory
52d514b0f3SmrgAC_ARG_WITH(xorg-module-dir, [  --with-xorg-module-dir=DIR ],
53d514b0f3Smrg                             [ moduledir="$withval" ],
54d514b0f3Smrg                             [ moduledir="$libdir/xorg/modules" ])
55d514b0f3SmrgAC_SUBST(moduledir)
56d514b0f3Smrg
57d514b0f3Smrg# Store the list of server defined optional extensions in REQUIRED_MODULES
58d514b0f3SmrgXORG_DRIVER_CHECK_EXT(RANDR, randrproto)
59d514b0f3SmrgXORG_DRIVER_CHECK_EXT(RENDER, renderproto)
60d514b0f3SmrgXORG_DRIVER_CHECK_EXT(XV, videoproto)
61d514b0f3SmrgXORG_DRIVER_CHECK_EXT(XFreeXDGA, xf86dgaproto)
62d514b0f3Smrg
63d514b0f3Smrg# We can use either version 1 or version 2 of libXfont
64d514b0f3SmrgPKG_CHECK_EXISTS(xfont2,
65d514b0f3Smrg                 [xfont_pc=xfont2
66d514b0f3Smrg                  AC_DEFINE(HAVE_XFONT2,1,[Version 2 of the libXfont library])],
67d514b0f3Smrg                 [xfont_pc=xfont])
68d514b0f3Smrg
69d514b0f3Smrg# Obtain compiler/linker options for the driver dependencies
70d514b0f3SmrgPKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901] xproto fontsproto $xfont_pc $REQUIRED_MODULES)
71d514b0f3Smrg
72d514b0f3Smrgsave_CFLAGS="$CFLAGS"
73d514b0f3SmrgCFLAGS="$XORG_CFLAGS"
74d514b0f3SmrgAC_CHECK_DECL(XSERVER_LIBPCIACCESS,
75d514b0f3Smrg	      [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
76d514b0f3Smrg	      [#include "xorg-server.h"])
77d514b0f3SmrgCFLAGS="$save_CFLAGS"
78d514b0f3Smrg
79d514b0f3SmrgAC_ARG_ENABLE(kms,
80d514b0f3Smrg	      AS_HELP_STRING([--disable-kms],
81d514b0f3Smrg	                     [Disable KMS support [[default=enabled]]]),
82d514b0f3Smrg	     [DRM_MODE="$enableval"],
83d514b0f3Smrg	     [DRM_MODE=yes])
84d514b0f3Smrg
85d514b0f3Smrg# Checks for libraries.
86d514b0f3Smrgif test "x$DRM_MODE" = xyes; then
87d514b0f3Smrg	# require support for kms cursor hotspot
88d514b0f3Smrg	PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.46])
89d514b0f3Smrgelse
90d514b0f3Smrg	DRM_MODE=no
91d514b0f3Smrgfi
92d514b0f3Smrg
93d514b0f3Smrgif test "x$XSERVER_LIBPCIACCESS" = xyes; then
94d514b0f3Smrg    PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10])
95d514b0f3Smrgfi
96d514b0f3SmrgAM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
97d514b0f3Smrgsave_CFLAGS="$CFLAGS"
98d514b0f3SmrgCFLAGS="$DRM_CFLAGS $CFLAGS"
99d514b0f3Smrgif test "x$DRM_MODE" = xyes; then
100d514b0f3Smrg   	AC_CHECK_HEADER(xf86drmMode.h,[DRM_MODE=yes],[DRM_MODE=no],[#include <stdint.h>
101d514b0f3Smrg#include <stdlib.h>])
102d514b0f3Smrg	if test "x$DRM_MODE" = xyes; then
103d514b0f3Smrg	   	AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting])
104d514b0f3Smrg        else
105d514b0f3Smrg                DRM_MODE=no
106d514b0f3Smrg        fi
107d514b0f3Smrgfi
108d514b0f3SmrgCFLAGS="$save_CFLAGS"
109d514b0f3SmrgAM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes)
110d514b0f3Smrg
111d514b0f3Smrgenable_qxl=yes
112d514b0f3SmrgAC_ARG_ENABLE(xspice,
113d514b0f3Smrg[  --enable-xspice[[=(no|yes|only)]]  Build the xspice driver
114d514b0f3Smrg                   no      (default) Do not build
115d514b0f3Smrg                   yes     Build in addition to qxl
116d514b0f3Smrg                   only    Only build xspice],
117d514b0f3Smrg[  if test "x$enableval" = "xyes"; then
118d514b0f3Smrg        enable_xspice=yes
119d514b0f3Smrg   elif test "x$enableval" = "xonly"; then
120d514b0f3Smrg        enable_xspice=yes
121d514b0f3Smrg        enable_qxl=no
122d514b0f3Smrg   else
123d514b0f3Smrg        enable_xspice=no
124d514b0f3Smrg   fi
125d514b0f3Smrg])
126d514b0f3Smrg
127d514b0f3Smrgif test "x$enable_xspice" = "xyes"; then
128d514b0f3Smrg    AC_CHECK_HEADERS(sys/inotify.h)
129d514b0f3Smrg    AC_CHECK_FUNCS(inotify_init1)
130d514b0f3Smrg    PKG_CHECK_MODULES([SPICE], [spice-server >= 0.6.3],
131d514b0f3Smrg    [
132d514b0f3Smrg        AC_SUBST(SPICE_CFLAGS)
133d514b0f3Smrg        AC_SUBST(SPICE_LIBS)
134d514b0f3Smrg    ],
135d514b0f3Smrg    )
136d514b0f3Smrgelse
137d514b0f3Smrg    enable_xspice=no
138d514b0f3Smrgfi
139d514b0f3Smrg
140d514b0f3SmrgAC_ARG_ENABLE([ccid],
141d514b0f3Smrg            [AS_HELP_STRING([--enable-ccid],
142d514b0f3Smrg            [Build the spiceccid SmartCard driver (default is no)])],
143d514b0f3Smrg            [enable_ccid=$enableval],
144d514b0f3Smrg            [enable_ccid=no])
145d514b0f3SmrgAC_ARG_WITH(ccid-module-dir,
146d514b0f3Smrg            [AS_HELP_STRING([--with-ccid-module-dir=DIR ],
147d514b0f3Smrg            [Specify the install path for spiceccid driver (default is $libdir/pcsc/drivers/serial)])],
148d514b0f3Smrg            [ cciddir="$withval" ],
149d514b0f3Smrg            [ cciddir="$libdir/pcsc/drivers/serial" ])
150d514b0f3SmrgAC_SUBST(cciddir)
151d514b0f3Smrgif test "x$enable_ccid" != "xno"; then
152d514b0f3Smrg    PKG_CHECK_MODULES(LIBPCSCLITE, [libpcsclite])
153d514b0f3Smrg    PKG_CHECK_MODULES(LIBCACARD, [libcacard])
154d514b0f3Smrg
155d514b0f3Smrg    if test "x$enable_xspice" = "xno"; then
156d514b0f3Smrg        AC_MSG_ERROR([Building with ccid requires xspice, but xspice is not enabled])
157d514b0f3Smrg    fi
158d514b0f3Smrgfi
159d514b0f3Smrg
160d514b0f3Smrg
161d514b0f3SmrgAM_CONDITIONAL(BUILD_XSPICE, test "x$enable_xspice" = "xyes")
162d514b0f3SmrgAM_CONDITIONAL(BUILD_QXL, test "x$enable_qxl" = "xyes")
163d514b0f3SmrgAM_CONDITIONAL(BUILD_SPICECCID, test "x$enable_ccid" = "xyes")
164d514b0f3Smrg
165d514b0f3SmrgAC_ARG_ENABLE([udev],
166d514b0f3Smrg		AS_HELP_STRING([--disable-udev], [Disable libudev support [default=auto]]),
167d514b0f3Smrg		[enable_udev="$enableval"],
168d514b0f3Smrg		[enable_udev=auto])
169d514b0f3Smrgif test "x$enable_udev" != "xno"; then
170d514b0f3Smrg	PKG_CHECK_MODULES(LIBUDEV, [libudev], [LIBUDEV=yes], [LIBUDEV=no])
171d514b0f3Smrg	if test "x$LIBUDEV" = xyes; then
172d514b0f3Smrg		AC_DEFINE(HAVE_LIBUDEV, 1,[libudev support])
173d514b0f3Smrg	elif test "x$enable_udev" != "xauto"; then
174d514b0f3Smrg		AC_MSG_ERROR([Building with udev requested but libudev not found])
175d514b0f3Smrg	fi
176d514b0f3Smrgfi
177d514b0f3SmrgAM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes)
178d514b0f3Smrg
179d514b0f3SmrgPKG_CHECK_MODULES([SPICE_PROTOCOL], [spice-protocol >= 0.12.0])
180d514b0f3Smrg
181d514b0f3Smrg# AC_CHECK_FILE is not supported when cross compiling
182d514b0f3Smrgif test "$cross_compiling" = "no" ; then
183d514b0f3Smrg    AC_CHECK_FILE(.git, [
184d514b0f3Smrg        GIT_VERSION=`git log -1 --format=%h`
185d514b0f3Smrg        AC_DEFINE_UNQUOTED([GIT_VERSION], ["$GIT_VERSION"], [Defined if building from git])
186d514b0f3Smrg        ]
187d514b0f3Smrg    )
188d514b0f3Smrgfi
189d514b0f3Smrg
190d514b0f3SmrgAC_CONFIG_FILES([
191d514b0f3Smrg                Makefile
192d514b0f3Smrg                src/Makefile
193d514b0f3Smrg                src/spiceccid/Makefile
194d514b0f3Smrg                src/uxa/Makefile
195d514b0f3Smrg                scripts/Makefile
196d514b0f3Smrg                examples/Makefile
197d514b0f3Smrg])
198d514b0f3SmrgAC_OUTPUT
199d514b0f3Smrg
200d514b0f3Smrgdnl ==========================================================================
201d514b0f3Smrgecho "
202d514b0f3Smrg
203d514b0f3Smrg        xf86-video-qxl $VERSION
204d514b0f3Smrg        =====================
205d514b0f3Smrg
206d514b0f3Smrg        prefix:                   ${prefix}
207d514b0f3Smrg        c compiler:               ${CC}
208d514b0f3Smrg
209d514b0f3Smrg        drm:                      ${DRM_CFLAGS}
210d514b0f3Smrg        KMS:                      ${DRM_MODE}
211d514b0f3Smrg        Build qxl:                ${enable_qxl}
212d514b0f3Smrg        Build xspice:             ${enable_xspice}
213d514b0f3Smrg        Build spiceccid:          ${enable_ccid}
214d514b0f3Smrg"
215