configure.ac revision 32001f49
1# Copyright © 2009 Intel Corporation 2# 3# Permission is hereby granted, free of charge, to any person obtaining a 4# copy of this software and associated documentation files (the "Software"), 5# to deal in the Software without restriction, including without limitation 6# the rights to use, copy, modify, merge, publish, distribute, sublicense, 7# and/or sell copies of the Software, and to permit persons to whom the 8# Software is furnished to do so, subject to the following conditions: 9# 10# The above copyright notice and this permission notice (including the next 11# paragraph) shall be included in all copies or substantial portions of the 12# Software. 13# 14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20# IN THE SOFTWARE. 21# 22# Authors: 23# Eric Anholt <eric@anholt.net> 24 25dnl Process this file with autoconf to create configure. 26 27AC_PREREQ([2.59]) 28AC_INIT([mesa-demos], [8.2.0], 29 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa&component=Demos]) 30AC_CANONICAL_HOST 31 32AM_INIT_AUTOMAKE([dist-bzip2]) 33 34dnl Check for progs 35AC_PROG_CPP 36AC_PROG_CC 37AC_PROG_CXX 38AC_PROG_LIBTOOL 39AM_PROG_CC_C_O 40 41AC_CONFIG_MACRO_DIR([m4]) 42 43# Enable quiet compiles on automake 1.11. 44m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 45 46dnl Make sure the pkg-config macros are defined 47m4_ifndef([PKG_PROG_PKG_CONFIG], 48 [m4_fatal([Could not locate the pkg-config autoconf macros. 49 These are usually located in /usr/share/aclocal/pkg.m4. If your macros 50 are in a different location, try setting the environment variable 51 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])]) 52PKG_PROG_PKG_CONFIG() 53 54dnl Get the pkg-config definitions for libGL. We include a fallback 55dnl path for GL implementation that don't provide a .pc file 56PKG_CHECK_MODULES(GL, [gl], [], [ 57 AC_CHECK_HEADER([GL/gl.h], 58 [], 59 AC_MSG_ERROR([GL not found])) 60 AC_CHECK_LIB([GL], 61 [glBegin], 62 [GL_LIBS=-lGL], 63 AC_MSG_ERROR([GL required])) 64 ]) 65 66DEMO_CFLAGS="$DEMO_CFLAGS $GL_CFLAGS" 67DEMO_LIBS="$DEMO_LIBS $GL_LIBS" 68 69dnl Check for GLUT 70GLUT_CFLAGS="" 71GLUT_LIBS=-lglut 72glut_enabled=yes 73AC_ARG_WITH([glut], 74 [AS_HELP_STRING([--with-glut=DIR], 75 [glut install directory])], 76 [GLUT_CFLAGS="-I$withval/include" 77 GLUT_LIBS="-L$withval/lib -lglut"]) 78AC_CHECK_HEADER([GL/glut.h], 79 [], 80 [glut_enabled=no]) 81AC_CHECK_LIB([glut], 82 [glutInit], 83 [], 84 [glut_enabled=no]) 85 86dnl Check for FreeGLUT 2.6 or later 87AC_EGREP_HEADER([glutInitContextProfile], 88 [GL/freeglut.h], 89 [AC_DEFINE(HAVE_FREEGLUT)], 90 []) 91 92dnl Check for GLEW 93PKG_CHECK_MODULES(GLEW, [glew >= 1.5.4]) 94DEMO_CFLAGS="$DEMO_CFLAGS $GLEW_CFLAGS" 95DEMO_LIBS="$DEMO_LIBS $GLEW_LIBS" 96 97# LIBS was set by AC_CHECK_LIB above 98LIBS="" 99 100PKG_CHECK_MODULES(GLU, [glu], [], 101 [AC_CHECK_HEADER([GL/glu.h], 102 [], 103 AC_MSG_ERROR([GLU not found])) 104 AC_CHECK_LIB([GLU], 105 [gluBeginCurve], 106 [GLU_LIBS=-lGLU], 107 AC_MSG_ERROR([GLU required])) ]) 108 109DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS" 110DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" 111 112AC_ARG_ENABLE([egl], 113 [AS_HELP_STRING([--enable-egl], 114 [enable EGL library @<:@default=auto@:>@])], 115 [egl_enabled="$enableval"], 116 [egl_enabled=auto]) 117if test "x$egl_enabled" != "xno"; then 118 PKG_CHECK_MODULES(EGL, [egl], [egl_enabled=yes], [egl_enabled=no]) 119fi 120AC_ARG_ENABLE([gles1], 121 [AS_HELP_STRING([--enable-gles1], 122 [enable support for OpenGL ES 1.x API @<:@default=auto@:>@])], 123 [glesv1_enabled="$enableval"], 124 [glesv1_enabled=auto]) 125if test "x$glesv1_enabled" != "xno"; then 126 PKG_CHECK_MODULES(GLESV1, [glesv1_cm], [glesv1_enabled=yes], [glesv1_enabled=no]) 127fi 128AC_ARG_ENABLE([gles2], 129 [AS_HELP_STRING([--enable-gles2], 130 [enable support for OpenGL ES 2.x API @<:@default=auto@:>@])], 131 [glesv2_enabled="$enableval"], 132 [glesv2_enabled=auto]) 133if test "x$glesv2_enabled" != "xno"; then 134 PKG_CHECK_MODULES(GLESV2, [glesv2], [glesv2_enabled=yes], [glesv2_enabled=no]) 135fi 136AC_ARG_ENABLE([vg], 137 [AS_HELP_STRING([--enable-vg], 138 [enable support for OpenVG API @<:@default=auto@:>@])], 139 [vg_enabled="$enableval"], 140 [vg_enabled=auto]) 141if test "x$vg_enabled" != "xno"; then 142 PKG_CHECK_MODULES(VG, [vg], [vg_enabled=yes], [vg_enabled=no]) 143fi 144AC_ARG_ENABLE([osmesa], 145 [AS_HELP_STRING([--enable-osmesa], 146 [enable OSMesa library @<:@default=auto@:>@])], 147 [osmesa_enabled="$enableval"], 148 [osmesa_enabled=auto]) 149if test "x$osmesa_enabled" != "xno"; then 150 PKG_CHECK_MODULES(OSMESA, [osmesa], [osmesa_enabled=yes], [osmesa_enabled=no]) 151fi 152AC_ARG_ENABLE([libdrm], 153 [AS_HELP_STRING([--enable-libdrm], 154 [enable support for libdrm @<:@default=auto@:>@])], 155 [drm_enabled="$enableval"], 156 [drm_enabled=auto]) 157if test "x$drm_enabled" != "xno"; then 158 PKG_CHECK_MODULES(DRM, [libdrm], [drm_enabled=yes], [drm_enabled=no]) 159fi 160dnl The OSMesa .pc uses OSMesa32, while we want to build with other versions 161dnl too. 162OSMESA32_LIBS=$OSMESA_LIBS 163OSMESA16_LIBS=`echo $OSMESA_LIBS | sed 's|32|16|g'` 164OSMESA_LIBS=`echo $OSMESA_LIBS | sed 's|32||g'` 165 166dnl Compiler macros 167case "$host_os" in 168linux*|*-gnu*|gnu*) 169 DEMO_CFLAGS="$DEMO_CFLAGS -D_GNU_SOURCE -DPTHREADS" 170 ;; 171solaris*) 172 DEMO_CFLAGS="$DEFINES -DPTHREADS -DSVR4" 173 ;; 174cygwin*) 175 DEMO_CFLAGS="$DEFINES -DPTHREADS" 176 ;; 177esac 178 179dnl Set up C warning flags. Copy of XORG_CWARNFLAGS. 180if test "x$GCC" = xyes ; then 181 CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ 182-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ 183-Wbad-function-cast" 184 case `$CC -dumpversion` in 185 3.4.* | 4.*) 186 CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" 187 ;; 188 esac 189else 190 AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) 191 if test "x$SUNCC" = "xyes"; then 192 CWARNFLAGS="-v" 193 fi 194fi 195DEMO_CFLAGS="$DEMO_CFLAGS $CWARNFLAGS" 196 197AC_ARG_ENABLE([x11], 198 [AS_HELP_STRING([--enable-x11], 199 [enable support for X11 @<:@default=auto@:>@])], 200 [x11_enabled="$enableval"], 201 [x11_enabled=auto]) 202if test "x$x11_enabled" != "xno"; then 203 PKG_CHECK_MODULES(X11, [x11 xext], [x11_enabled=yes], [x11_enabled=no]) 204fi 205 206AC_ARG_ENABLE([wayland], 207 [AS_HELP_STRING([--enable-wayland], 208 [enable support for wayland @<:@default=no@:>@])], 209 [wayland_enabled="$enableval"], 210 [wayland_enabled=no]) 211 212if test "x$wayland_enabled" != "xno"; then 213 PKG_CHECK_MODULES(WAYLAND, [wayland-client wayland-egl], [wayland_enabled=yes], [wayland_enabled=no]) 214fi 215 216dnl GBM is needed for EGL on KMS 217AC_ARG_ENABLE([gbm], 218 [AS_HELP_STRING([--enable-gbm], 219 [enable support for GBM @<:@default=auto@:>@])], 220 [gbm_enabled="$enableval"], 221 [gbm_enabled=auto]) 222if test "x$gbm_enabled" != "xno"; then 223 PKG_CHECK_MODULES(GBM, [gbm], [gbm_enabled=yes], [gbm_enabled=no]) 224fi 225 226dnl FreeType2 is needed by an OpenVG demo 227AC_ARG_ENABLE([freetype2], 228 [AS_HELP_STRING([--enable-freetype2], 229 [enable support for FreeType2 @<:@default=auto@:>@])], 230 [freetype2_enabled="$enableval"], 231 [freetype2_enabled=auto]) 232if test "x$freetype2_enabled" != "xno"; then 233 PKG_CHECK_MODULES(FREETYPE2, [freetype2], [freetype2_enabled=yes], [freetype2_enabled=no]) 234fi 235 236mesa_source_enabled=no 237AC_ARG_WITH([mesa-source], 238 [AS_HELP_STRING([--with-mesa-source=DIR], 239 [Mesa source directory for finding gl_API.xml])], 240 [mesa_source_enabled="yes" 241 mesa_source_dir="$withval"], 242 [mesa_source_enabled="no"]) 243MESA_GLAPI="$mesa_source_dir/src/mapi/glapi/gen" 244 245AC_ARG_ENABLE([rbug], 246 [AS_HELP_STRING([--enable-rbug], 247 [enable support for rbug @<:@default=no@:>@])], 248 [rbug_enabled="yes"], 249 [rbug_enabled="no"]) 250 251use_system_data=no 252AC_ARG_WITH([system-data-files], 253 [AS_HELP_STRING([--with-system-data-files], 254 [Use system data files for demos (default: no)])], 255 [use_system_data=yes], []) 256if test "x$use_system_data" = xyes; then 257 demos_data_dir="${datadir}/${PACKAGE}/" 258else 259 demos_data_dir="../data/" 260fi 261AC_DEFINE_DIR(DEMOS_DATA_DIR, demos_data_dir, [Data dir for demos]) 262AC_DEFINE_UNQUOTED([DEMOS_DATA_DIR], "$DEMOS_DATA_DIR", 263 [Directory for demos data files]) 264 265dnl 266dnl Program library dependencies 267dnl Only libm is added here if necessary as the libraries should 268dnl be pulled in by the linker 269dnl 270case "$host_os" in 271solaris*) 272 DEMO_LIBS="$DEMO_LIBS -lX11 -lsocket -lnsl -lm" 273 ;; 274cygwin*) 275 DEMO_LIBS="$DEMO_LIBS -lX11" 276 ;; 277*) 278 DEMO_LIBS="$DEMO_LIBS -lm" 279 ;; 280esac 281 282AC_SUBST([DEMO_CFLAGS]) 283AC_SUBST([DEMO_LIBS]) 284AC_SUBST([EGL_CFLAGS]) 285AC_SUBST([EGL_LIBS]) 286AC_SUBST([GLESV1_CFLAGS]) 287AC_SUBST([GLESV1_LIBS]) 288AC_SUBST([GLESV2_CFLAGS]) 289AC_SUBST([GLESV2_LIBS]) 290AC_SUBST([GLUT_CFLAGS]) 291AC_SUBST([GLUT_LIBS]) 292AC_SUBST([X11_CFLAGS]) 293AC_SUBST([X11_LIBS]) 294AC_SUBST([OSMESA_CFLAGS]) 295AC_SUBST([OSMESA_LIBS]) 296AC_SUBST([OSMESA16_LIBS]) 297AC_SUBST([OSMESA32_LIBS]) 298AC_SUBST([MESA_GLAPI]) 299AC_SUBST([WAYLAND_CFLAGS]) 300AC_SUBST([WAYLAND_LIBS]) 301 302 303AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes") 304AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes") 305AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes") 306AM_CONDITIONAL(HAVE_VG, test "x$vg_enabled" = "xyes") 307AM_CONDITIONAL(HAVE_GLUT, test "x$glut_enabled" = "xyes") 308AM_CONDITIONAL(HAVE_X11, test "x$x11_enabled" = "xyes") 309AM_CONDITIONAL(HAVE_GBM, test "x$gbm_enabled" = "xyes") 310AM_CONDITIONAL(HAVE_FREETYPE2, test "x$freetype2_enabled" = "xyes") 311AM_CONDITIONAL(HAVE_OSMESA, test "x$osmesa_enabled" = "xyes") 312AM_CONDITIONAL(HAVE_DRM, test "x$drm_enabled" = "xyes") 313AM_CONDITIONAL(HAVE_MESA_SOURCE, test "x$mesa_source_enabled" = "xyes") 314AM_CONDITIONAL(HAVE_WAYLAND, test "x$wayland_enabled" = "xyes") 315AM_CONDITIONAL(HAVE_RBUG, test "x$rbug_enabled" = "xyes") 316 317AC_OUTPUT([ 318 Makefile 319 src/Makefile 320 src/demos/Makefile 321 src/egl/Makefile 322 src/egl/eglut/Makefile 323 src/egl/opengl/Makefile 324 src/egl/opengles1/Makefile 325 src/egl/opengles2/Makefile 326 src/egl/openvg/Makefile 327 src/egl/openvg/trivial/Makefile 328 src/egl/oes_vg/Makefile 329 src/fp/Makefile 330 src/fpglsl/Makefile 331 src/glsl/Makefile 332 src/gs/Makefile 333 src/data/Makefile 334 src/objviewer/Makefile 335 src/osdemos/Makefile 336 src/perf/Makefile 337 src/rbug/Makefile 338 src/redbook/Makefile 339 src/samples/Makefile 340 src/slang/Makefile 341 src/tests/Makefile 342 src/tools/Makefile 343 src/trivial/Makefile 344 src/util/Makefile 345 src/vp/Makefile 346 src/vpglsl/Makefile 347 src/wgl/Makefile 348 src/xdemos/Makefile 349]) 350