1# vdpau_video package version number
2m4_define([vdpau_video_major_version], [0])
3m4_define([vdpau_video_minor_version], [7])
4m4_define([vdpau_video_micro_version], [4])
5m4_define([vdpau_video_pre_version],   [0])
6m4_define([vdpau_video_version],
7          [vdpau_video_major_version.vdpau_video_minor_version.vdpau_video_micro_version])
8m4_if(vdpau_video_pre_version, [0], [], [
9m4_append([vdpau_video_version], vdpau_video_pre_version, [.pre])
10])
11
12# VA-API minimum version number
13m4_define([va_api_x11_version], [0.31.0])
14m4_define([va_api_glx_version], [0.32.0])
15
16# libva package version number
17m4_define([libva_package_x11_version], [1.0.3])
18m4_define([libva_package_glx_version], [1.0.9])
19
20AC_PREREQ([2.57])
21AC_INIT([vdpau_video], [vdpau_video_version], [gwenole.beauchesne@intel.com],
22        [libva-vdpau-driver])
23AC_CONFIG_SRCDIR([Makefile.am])
24AM_INIT_AUTOMAKE
25
26AM_CONFIG_HEADER([src/config.h])
27
28VDPAU_VIDEO_MAJOR_VERSION=vdpau_video_major_version
29VDPAU_VIDEO_MINOR_VERSION=vdpau_video_minor_version
30VDPAU_VIDEO_MICRO_VERSION=vdpau_video_micro_version
31AC_DEFINE([VDPAU_VIDEO_MAJOR_VERSION], [vdpau_video_major_version], [Major version of the driver])
32AC_DEFINE([VDPAU_VIDEO_MINOR_VERSION], [vdpau_video_minor_version], [Minor version of the driver])
33AC_DEFINE([VDPAU_VIDEO_MICRO_VERSION], [vdpau_video_micro_version], [Micro version of the driver])
34AC_DEFINE([VDPAU_VIDEO_PRE_VERSION], [vdpau_video_pre_version], [Preversion of the driver])
35
36VDPAU_VIDEO_LT_LDFLAGS="-avoid-version"
37AC_SUBST(VDPAU_VIDEO_LT_LDFLAGS)
38
39AC_DEFUN([AC_DEFINE_01], [
40    if test "$2" = "yes" -o "$2" = "guessing yes"; then
41        AC_DEFINE($1, 1, $3)
42    else
43        AC_DEFINE($1, 0, $3)
44    fi
45])
46
47AC_ARG_ENABLE(glx,
48    AC_HELP_STRING([--enable-glx],
49                   [enable OpenGL/X11 @<:@default=yes@:>@]),
50    [], [enable_glx="yes"])
51
52AC_ARG_ENABLE(debug,
53    AC_HELP_STRING([--enable-debug],
54                   [enable debugging information]),
55    [], [enable_debug="yes"])
56
57AC_DEFINE_01(USE_DEBUG, "$enable_debug",
58    [Enable debugging information])
59
60AC_ARG_ENABLE(tracer,
61    AC_HELP_STRING([--enable-tracer],
62                   [enable VDPAU tracer]),
63    [], [enable_tracer="yes"])
64
65AC_DEFINE_01(USE_TRACER, "$enable_tracer",
66    [Enable VDPAU tracer])
67
68AC_DISABLE_STATIC
69AC_PROG_LIBTOOL
70AC_PROG_CC
71
72AC_C_BIGENDIAN
73AC_HEADER_STDC
74AC_SYS_LARGEFILE
75
76dnl Use pretty build output with automake >= 1.11
77m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [
78    AM_DEFAULT_VERBOSITY=1
79    AC_SUBST(AM_DEFAULT_VERBOSITY)
80])
81
82dnl We want pthreads. Try libpthread first, then libc_r (FreeBSD), then PTL.
83HAVE_PTHREADS=yes
84AC_CHECK_LIB(pthread, pthread_create, , [
85    AC_CHECK_LIB(c_r, pthread_create, , [
86        AC_CHECK_LIB(PTL, pthread_create, , [
87            HAVE_PTHREADS=no
88        ])
89    ])
90])
91if test "x$HAVE_PTHREADS" = "xyes"; then
92    AC_DEFINE(HAVE_PTHREADS, 1, [Defined if pthreads are available])
93fi
94
95dnl Checks for libraries.
96AC_CHECK_LIB(m, tan)
97AC_CHECK_LIB(rt, timer_create)
98
99dnl Checks for library functions.
100AC_CHECK_FUNCS(clock_gettime)
101
102dnl Check for __attribute__((visibility()))
103AC_CACHE_CHECK([whether __attribute__((visibility())) is supported],
104  vdpau_cv_visibility_attribute,
105  [cat > conftest.c <<EOF
106int foo __attribute__ ((visibility ("hidden"))) = 1;
107int bar __attribute__ ((visibility ("protected"))) = 1;
108EOF
109  vdpau_cv_visibility_attribute=no
110  if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
111    if grep '\.hidden.*foo' conftest.s >/dev/null; then
112      if grep '\.protected.*bar' conftest.s >/dev/null; then
113	vdpau_cv_visibility_attribute=yes
114      fi
115    fi
116  fi
117  rm -f conftest.[cs]
118])
119if test $vdpau_cv_visibility_attribute = yes; then
120  AC_DEFINE([HAVE_VISIBILITY_ATTRIBUTE], 1, [Define to use the __attribute__((visibility())) extension])
121fi
122
123dnl Check for OpenGL
124USE_GLX=1
125if test "$enable_glx" != "yes"; then
126    USE_GLX=0
127fi
128GL_DEPS_CFLAGS=""
129GL_DEPS_LIBS=""
130AC_CHECK_HEADERS([GL/gl.h GL/glext.h GL/glx.h], [], [USE_GLX=0], [
131#ifdef HAVE_GL_GL_H
132# include <GL/gl.h>
133#endif
134])
135AC_CHECK_LIB(GL, glXCreateContext, [GL_DEPS_LIBS="-lGL -ldl"], [USE_GLX=0])
136AC_SUBST(GL_DEPS_CFLAGS)
137AC_SUBST(GL_DEPS_LIBS)
138
139dnl Check for VA-API
140PKG_CHECK_MODULES(LIBVA_DEPS,	  [libva])
141PKG_CHECK_MODULES(LIBVA_X11_DEPS, [libva-x11 >= va_api_x11_version],
142    [LIBVA_PACKAGE_VERSION=libva_package_x11_version])
143PKG_CHECK_MODULES(LIBVA_GLX_DEPS, [libva-glx >= va_api_glx_version],
144    [LIBVA_PACKAGE_VERSION=libva_package_glx_version], [USE_GLX=0])
145
146VA_VERSION=`$PKG_CONFIG --modversion libva`
147VA_MAJOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f1`
148VA_MINOR_VERSION=`echo "$VA_VERSION" | cut -d'.' -f2`
149VA_MICRO_VERSION=`echo "$VA_VERSION" | cut -d'.' -f3`
150VA_VERSION_STR="$VA_VERSION"
151
152va_full_version_int=`expr ${VA_MAJOR_VERSION:-0} "*" 1000000 + \
153                          ${VA_MINOR_VERSION:-0} "*" 10000   + \
154                          ${VA_MICRO_VERSION:-0} "*" 100     + \
155                          0`
156VA_DRIVER_INIT_FUNC="__vaDriverInit_${VA_MAJOR_VERSION}_${VA_MINOR_VERSION}"
157AC_DEFINE_UNQUOTED([VA_DRIVER_INIT_FUNC], [$VA_DRIVER_INIT_FUNC],
158    [Define driver entry-point])
159
160dnl Check for VA-API drivers path
161AC_MSG_CHECKING([for VA drivers path])
162LIBVA_DRIVERS_PATH=`$PKG_CONFIG libva --variable driverdir`
163if test -z "$LIBVA_DRIVERS_PATH"; then
164    LIBVA_DRIVERS_PATH="/usr/lib/xorg/modules/drivers"
165fi
166AC_MSG_RESULT([$LIBVA_DRIVERS_PATH])
167AC_SUBST(LIBVA_DRIVERS_PATH)
168
169dnl Check for VDPAU
170AC_CACHE_CHECK([for VDPAU],
171    ac_cv_have_vdpau, [
172    saved_LIBS="$LIBS"
173    LIBS="$LIBS -lvdpau"
174    AC_TRY_LINK(
175    [#include <vdpau/vdpau_x11.h>],
176    [vdp_device_create_x11(0,0,0,0)],
177    [ac_cv_have_vdpau="yes" HAVE_VDPAU=1],
178    [ac_cv_have_vdpau="no"  HAVE_VDPAU=0])
179])
180if test "$ac_cv_have_vdpau" = "no"; then
181    AC_MSG_ERROR([you need VDPAU to build this package])
182fi
183
184AC_CACHE_CHECK([for VDPAU/MPEG-4 support],
185    ac_cv_have_vdpau_mpeg4, [
186    AC_TRY_LINK(
187    [#include <vdpau/vdpau.h>],
188    [VdpPictureInfoMPEG4Part2 pic_info],
189    [ac_cv_have_vdpau_mpeg4="yes" HAVE_VDPAU_MPEG4=1],
190    [ac_cv_have_vdpau_mpeg4="no"  HAVE_VDPAU_MPEG4=0])
191])
192AC_DEFINE_UNQUOTED(HAVE_VDPAU_MPEG4, [$HAVE_VDPAU_MPEG4], [VDPAU/MPEG-4 support])
193
194dnl Check for VDPAU version (poor man's check, no pkgconfig joy)
195VDPAU_VERSION=`cat << EOF | $CC -E - | grep ^vdpau_version | cut -d' ' -f2
196#include <vdpau/vdpau.h>
197vdpau_version VDPAU_VERSION
198EOF
199`
200
201AC_DEFINE_UNQUOTED(USE_GLX, $USE_GLX, [Defined to 1 if GLX is enabled])
202AM_CONDITIONAL(USE_GLX, test $USE_GLX -eq 1)
203
204VDPAU_VIDEO_CFLAGS="$LIBVA_DEPS_CFLAGS"
205VDPAU_VIDEO_LIBS=""
206if test $USE_GLX -eq 1; then
207    VDPAU_VIDEO_CFLAGS="$VDPAU_VIDEO_CFLAGS $GL_DEPS_CFLAGS"
208    VDPAU_VIDEO_LIBS="$VDPAU_VIDEO_LIBS $GL_DEPS_LIBS"
209fi
210AC_SUBST(VDPAU_VIDEO_CFLAGS)
211AC_SUBST(VDPAU_VIDEO_LIBS)
212
213AC_SUBST(LIBVA_PACKAGE_VERSION)
214
215AC_OUTPUT([
216    Makefile
217    debian.upstream/Makefile
218    src/Makefile
219])
220
221dnl Print summary
222echo
223echo $PACKAGE configuration summary:
224echo
225echo VA-API version ................... : $VA_VERSION_STR
226echo VA-API drivers path .............. : $LIBVA_DRIVERS_PATH
227echo VDPAU version .................... : $VDPAU_VERSION
228echo VDPAU/MPEG-4 support ............. : $(test $HAVE_VDPAU_MPEG4  -eq 1 && echo yes || echo no)
229echo GLX support ...................... : $(test $USE_GLX  -eq 1 && echo yes || echo no)
230echo
231