310 lines
7.2 KiB
Plaintext
310 lines
7.2 KiB
Plaintext
![]() |
dnl Process this file with autoconf to create configure.
|
||
|
|
||
|
AC_PREREQ(2.59)
|
||
|
|
||
|
dnl Versioning
|
||
|
dnl Make version number available to autoconf and configure
|
||
|
m4_define(mesa_major, 7)
|
||
|
m4_define(mesa_minor, 1)
|
||
|
m4_define(mesa_tiny, 0)
|
||
|
m4_define(mesa_version, [mesa_major().mesa_minor().mesa_tiny()])
|
||
|
|
||
|
AC_INIT(Mesa, mesa_version(), mesa3d@sourceforge.net)
|
||
|
AC_CONFIG_AUX_DIR(bin)
|
||
|
AC_CANONICAL_HOST
|
||
|
|
||
|
dnl Substitute the version number into shell variables
|
||
|
MESA_MAJOR=mesa_major()
|
||
|
MESA_MINOR=mesa_minor()
|
||
|
MESA_TINY=mesa_tiny()
|
||
|
AC_SUBST(MESA_MAJOR)
|
||
|
AC_SUBST(MESA_MINOR)
|
||
|
AC_SUBST(MESA_TINY)
|
||
|
|
||
|
dnl Check for progs
|
||
|
AC_PROG_CPP
|
||
|
AC_PROG_CC
|
||
|
AC_PROG_CXX
|
||
|
AC_PATH_PROG(MAKE, make)
|
||
|
AC_PATH_PROG(MKDEP, makedepend)
|
||
|
AC_PATH_PROG(SED, sed)
|
||
|
PKG_PROG_PKG_CONFIG()
|
||
|
|
||
|
dnl LIB_DIR - library basename
|
||
|
LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
|
||
|
AC_SUBST(LIB_DIR)
|
||
|
|
||
|
dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
|
||
|
_SAVE_LDFLAGS="$LDFLAGS"
|
||
|
AC_ARG_VAR(EXTRA_LIB_PATH,[Extra -L paths for the linker])
|
||
|
AC_SUBST(EXTRA_LIB_PATH)
|
||
|
|
||
|
dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
|
||
|
_SAVE_CPPFLAGS="$CPPFLAGS"
|
||
|
AC_ARG_VAR(X11_INCLUDES,[Extra -I paths for X11 headers])
|
||
|
AC_SUBST(X11_INCLUDES)
|
||
|
|
||
|
dnl Compiler macros
|
||
|
DEFINES=""
|
||
|
AC_SUBST(DEFINES)
|
||
|
if test "x$GCC" = xyes; then
|
||
|
DEFINES="-D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
|
||
|
fi
|
||
|
case "$host_os" in
|
||
|
linux*)
|
||
|
DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
dnl Add flags for gcc and g++
|
||
|
if test "x$GCC" = xyes; then
|
||
|
CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
|
||
|
fi
|
||
|
if test "x$GXX" = xyes; then
|
||
|
CXXFLAGS="$CXXFLAGS -Wall"
|
||
|
fi
|
||
|
|
||
|
dnl These should be unnecessary, but let the user set them if they want
|
||
|
AC_ARG_VAR(OPT_FLAGS, [Additional optimization flags for the compiler.
|
||
|
Default is to use CFLAGS.])
|
||
|
AC_ARG_VAR(ARCH_FLAGS, [Additional architecture specific flags for the
|
||
|
compiler. Default is to use CFLAGS.])
|
||
|
AC_SUBST(OPT_FLAGS)
|
||
|
AC_SUBST(ARCH_FLAGS)
|
||
|
|
||
|
dnl
|
||
|
dnl library names
|
||
|
dnl
|
||
|
GL_LIB_NAME='lib$(GL_LIB).so'
|
||
|
GLU_LIB_NAME='lib$(GLU_LIB).so'
|
||
|
GLUT_LIB_NAME='lib$(GLUT_LIB).so'
|
||
|
GLW_LIB_NAME='lib$(GLW_LIB).so'
|
||
|
OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
|
||
|
AC_SUBST(GL_LIB_NAME)
|
||
|
AC_SUBST(GLU_LIB_NAME)
|
||
|
AC_SUBST(GLUT_LIB_NAME)
|
||
|
AC_SUBST(GLW_LIB_NAME)
|
||
|
AC_SUBST(OSMESA_LIB_NAME)
|
||
|
|
||
|
dnl
|
||
|
dnl Build directories for xlib driver
|
||
|
dnl
|
||
|
SRC_DIRS="mesa"
|
||
|
DRIVER_DIRS="x11 osmesa"
|
||
|
GLU_DIRS="sgi"
|
||
|
AC_SUBST(SRC_DIRS)
|
||
|
AC_SUBST(GLU_DIRS)
|
||
|
AC_SUBST(DRIVER_DIRS)
|
||
|
|
||
|
dnl
|
||
|
dnl Find out if X is available. The variables have_x or no_x will be
|
||
|
dnl set and used later in the driver setups
|
||
|
dnl
|
||
|
if test -n "$PKG_CONFIG"; then
|
||
|
AC_MSG_CHECKING([pkg-config files for X11 are available])
|
||
|
if $PKG_CONFIG --exists x11; then
|
||
|
x11_pkgconfig=yes
|
||
|
have_x=yes
|
||
|
AC_MSG_RESULT(yes)
|
||
|
else
|
||
|
x11_pkgconfig=no
|
||
|
no_x=yes
|
||
|
AC_MSG_RESULT(no)
|
||
|
fi
|
||
|
else
|
||
|
x11_pkgconfig=no
|
||
|
fi
|
||
|
dnl Use the autoconf macro if no pkg-config files
|
||
|
if test "$x11_pkgconfig" = no; then
|
||
|
AC_PATH_XTRA
|
||
|
fi
|
||
|
|
||
|
dnl
|
||
|
dnl libGL for xlib driver
|
||
|
dnl
|
||
|
if test "$no_x" = yes; then
|
||
|
AC_MSG_ERROR([X11 development libraries needed for Xlib driver])
|
||
|
fi
|
||
|
|
||
|
if test "$x11_pkgconfig" = yes; then
|
||
|
PKG_CHECK_MODULES(X11GL, x11 xext)
|
||
|
X11_INCLUDES="$X11_INCLUDES $X11GL_CFLAGS"
|
||
|
GL_LIB_DEPS="$X11GL_LIBS"
|
||
|
else
|
||
|
# should check these...
|
||
|
X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
|
||
|
GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
|
||
|
fi
|
||
|
GL_LIB_DEPS="$GL_LIB_DEPS -lm -lpthread"
|
||
|
AC_SUBST(GL_LIB_DEPS)
|
||
|
|
||
|
dnl
|
||
|
dnl More X11 setup
|
||
|
dnl
|
||
|
if test "$mesa_driver" = x11; then
|
||
|
DEFINES="$DEFINES -DUSE_XSHM"
|
||
|
fi
|
||
|
|
||
|
dnl
|
||
|
dnl OSMesa configuration
|
||
|
dnl
|
||
|
OSMESA_LIB_DEPS=""
|
||
|
OSMESA_MESA_DEPS='-l$(GL_LIB)'
|
||
|
AC_SUBST(OSMESA_LIB_DEPS)
|
||
|
AC_SUBST(OSMESA_MESA_DEPS)
|
||
|
|
||
|
dnl
|
||
|
dnl GLU configuration
|
||
|
dnl
|
||
|
AC_ARG_ENABLE(glu,
|
||
|
[AS_HELP_STRING([--enable-glu],
|
||
|
[enable OpenGL Utility library @<:@default=yes@:>@])],
|
||
|
enable_glu="$enableval",
|
||
|
enable_glu=yes)
|
||
|
if test "x$enable_glu" = xyes; then
|
||
|
SRC_DIRS="$SRC_DIRS glu"
|
||
|
|
||
|
# If GLU is available, we can build some programs
|
||
|
PROGRAM_DIRS="$PROGRAM_DIRS xdemos"
|
||
|
|
||
|
GLU_LIB_DEPS="-lm"
|
||
|
GLU_MESA_DEPS='-l$(GL_LIB)'
|
||
|
fi
|
||
|
AC_SUBST(GLU_LIB_DEPS)
|
||
|
AC_SUBST(GLU_MESA_DEPS)
|
||
|
|
||
|
dnl
|
||
|
dnl GLw configuration
|
||
|
dnl
|
||
|
AC_ARG_ENABLE(glw,
|
||
|
[AS_HELP_STRING([--enable-glw],
|
||
|
[enable Xt/Motif widget library @<:@default=yes@:>@])],
|
||
|
enable_glw="$enableval",
|
||
|
enable_glw=yes)
|
||
|
if test "x$enable_glw" = xyes; then
|
||
|
SRC_DIRS="$SRC_DIRS glw"
|
||
|
if test "$x11_pkgconfig" = yes; then
|
||
|
PKG_CHECK_MODULES(GLW, x11 xt)
|
||
|
GLW_LIB_DEPS="$GLW_LIBS"
|
||
|
else
|
||
|
# should check these...
|
||
|
GLW_LIB_DEPS="$X_LIBS -lX11 -lXt"
|
||
|
fi
|
||
|
|
||
|
GLW_MESA_DEPS='-l$(GL_LIB)'
|
||
|
fi
|
||
|
AC_SUBST(GLW_LIB_DEPS)
|
||
|
AC_SUBST(GLW_MESA_DEPS)
|
||
|
|
||
|
dnl
|
||
|
dnl GLUT configuration
|
||
|
dnl
|
||
|
if test -f "$srcdir/include/GL/glut.h"; then
|
||
|
default_glut=yes
|
||
|
else
|
||
|
default_glut=no
|
||
|
fi
|
||
|
AC_ARG_ENABLE(glut,
|
||
|
[AS_HELP_STRING([--enable-glut],
|
||
|
[enable GLUT library @<:@default=yes if source available@:>@])],
|
||
|
enable_glut="$enableval",
|
||
|
enable_glut="$default_glut")
|
||
|
|
||
|
dnl Can't build glut if GLU not available
|
||
|
if test "x$enable_glu$enable_glut" = xnoyes; then
|
||
|
AC_MSG_WARN([Disabling glut since GLU is disabled])
|
||
|
enable_glut=no
|
||
|
fi
|
||
|
if test "x$enable_glut" = xyes; then
|
||
|
SRC_DIRS="$SRC_DIRS glut/glx"
|
||
|
GLUT_CFLAGS=""
|
||
|
if test "x$GCC" = xyes; then
|
||
|
GLUT_CFLAGS="-fexceptions"
|
||
|
fi
|
||
|
if test "$x11_pkgconfig" = yes; then
|
||
|
PKG_CHECK_MODULES(GLUT, x11 xmu xt xi)
|
||
|
GLUT_LIB_DEPS="$GLUT_LIBS"
|
||
|
else
|
||
|
# should check these...
|
||
|
GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXt -lXi"
|
||
|
fi
|
||
|
GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
|
||
|
|
||
|
# If glut is available, we can build most programs
|
||
|
PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
|
||
|
|
||
|
GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
|
||
|
fi
|
||
|
AC_SUBST(GLUT_LIB_DEPS)
|
||
|
AC_SUBST(GLUT_MESA_DEPS)
|
||
|
AC_SUBST(GLUT_CFLAGS)
|
||
|
|
||
|
dnl
|
||
|
dnl Program library dependencies
|
||
|
dnl Only libm is added here if necessary as the libraries should
|
||
|
dnl be pulled in by the linker
|
||
|
dnl
|
||
|
if test "x$APP_LIB_DEPS" = x; then
|
||
|
APP_LIB_DEPS="-lm"
|
||
|
fi
|
||
|
AC_SUBST(APP_LIB_DEPS)
|
||
|
AC_SUBST(PROGRAM_DIRS)
|
||
|
|
||
|
dnl Arch/platform-specific settings
|
||
|
PIC_FLAGS=""
|
||
|
ASM_FLAGS=""
|
||
|
ASM_SOURCES=""
|
||
|
ASM_API=""
|
||
|
AC_SUBST(PIC_FLAGS)
|
||
|
AC_SUBST(ASM_FLAGS)
|
||
|
AC_SUBST(ASM_SOURCES)
|
||
|
AC_SUBST(ASM_API)
|
||
|
case "$host_os" in
|
||
|
linux*)
|
||
|
PIC_FLAGS="-fPIC"
|
||
|
case "$host_cpu" in
|
||
|
i*86)
|
||
|
ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
|
||
|
ASM_SOURCES='$(X86_SOURCES)'
|
||
|
ASM_API='$(X86_API)'
|
||
|
;;
|
||
|
x86_64)
|
||
|
ASM_FLAGS="-DUSE_X86_64_ASM"
|
||
|
ASM_SOURCES='$(X86-64_SOURCES)'
|
||
|
ASM_API='$(X86-64_API)'
|
||
|
;;
|
||
|
powerpc)
|
||
|
ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
|
||
|
ASM_SOURCES='$(PPC_SOURCES)'
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
freebsd*)
|
||
|
PIC_FLAGS="-fPIC"
|
||
|
case "$host_os" in
|
||
|
i*86)
|
||
|
PIC_FLAGS=""
|
||
|
ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
|
||
|
ASM_SOURCES='$(X86_SOURCES)'
|
||
|
ASM_API='$(X86_API)'
|
||
|
;;
|
||
|
x86_64)
|
||
|
ASM_FLAGS="-DUSE_X86_64_ASM"
|
||
|
ASM_SOURCES='$(X86-64_SOURCES)'
|
||
|
ASM_API='$(X86-64_API)'
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
dnl Restore LDFLAGS and CPPFLAGS
|
||
|
LDFLAGS="$_SAVE_LDFLAGS"
|
||
|
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||
|
|
||
|
dnl Substitute the config
|
||
|
AC_OUTPUT([configs/autoconf])
|
||
|
|
||
|
echo ""
|
||
|
echo " Run 'make autoconf' to build Mesa"
|
||
|
echo ""
|