summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--Makefile3
-rw-r--r--configs/.gitignore1
-rw-r--r--configs/autoconf.in87
-rw-r--r--configure.ac309
5 files changed, 405 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index c128ba86092..5d351af62c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,8 @@ depend
depend.bak
lib
lib64
+configure
+autom4te.cache
+aclocal.m4
+config.log
+config.status
diff --git a/Makefile b/Makefile
index ac1e94ee862..97575efe02d 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,8 @@ realclean:
$(MAKE) clean
-rm -rf lib*
-rm -f $(TOP)/configs/current
+ -rm -f $(TOP)/configs/autoconf
+ -rm -rf autom4te.cache
-rm -f `find . -name \*.o`
-rm -f `find . -name \*.a`
-rm -f `find . -name \*.so`
@@ -66,6 +68,7 @@ aix-64 \
aix-64-static \
aix-gcc \
aix-static \
+autoconf \
bluegene-osmesa \
bluegene-xlc-osmesa \
beos \
diff --git a/configs/.gitignore b/configs/.gitignore
index 5b9023a315a..97ac5b7326f 100644
--- a/configs/.gitignore
+++ b/configs/.gitignore
@@ -1 +1,2 @@
current
+autoconf
diff --git a/configs/autoconf.in b/configs/autoconf.in
new file mode 100644
index 00000000000..99f7b89a91c
--- /dev/null
+++ b/configs/autoconf.in
@@ -0,0 +1,87 @@
+# Autoconf configuration
+
+# Pull in the defaults
+include $(TOP)/configs/default
+
+# This is generated by configure
+CONFIG_NAME = autoconf
+
+# Version info
+MESA_MAJOR = @MESA_MAJOR@
+MESA_MINOR = @MESA_MINOR@
+MESA_TINY = @MESA_TINY@
+
+# Compiler and flags
+CC = @CC@
+CXX = @CXX@
+OPT_FLAGS = @OPT_FLAGS@
+ARCH_FLAGS = @ARCH_FLAGS@
+ASM_FLAGS = @ASM_FLAGS@
+PIC_FLAGS = @PIC_FLAGS@
+DEFINES = @DEFINES@
+CFLAGS = @CPPFLAGS@ @CFLAGS@ \
+ $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
+CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \
+ $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
+LDFLAGS = @LDFLAGS@
+EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
+
+# Assembler
+ASM_SOURCES = @ASM_SOURCES@
+ASM_API = @ASM_API@
+
+# Misc tools and flags
+MAKE = @MAKE@
+MKLIB_OPTIONS =
+MKDEP = @MKDEP@
+MKDEP_OPTIONS = -fdepend
+INSTALL = $(TOP)/bin/minstall
+
+# Python and flags (generally only needed by the developers)
+PYTHON2 = python
+PYTHON_FLAGS = -t -O -O
+
+# Library names (base name)
+GL_LIB = GL
+GLU_LIB = GLU
+GLUT_LIB = glut
+GLW_LIB = GLw
+OSMESA_LIB = OSMesa
+
+# Library names (actual file names)
+GL_LIB_NAME = @GL_LIB_NAME@
+GLU_LIB_NAME = @GLU_LIB_NAME@
+GLUT_LIB_NAME = @GLUT_LIB_NAME@
+GLW_LIB_NAME = @GLW_LIB_NAME@
+OSMESA_LIB_NAME = @OSMESA_LIB_NAME@
+
+# Directories to build
+LIB_DIR = @LIB_DIR@
+SRC_DIRS = @SRC_DIRS@
+GLU_DIRS = @GLU_DIRS@
+DRIVER_DIRS = @DRIVER_DIRS@
+# Which subdirs under $(TOP)/progs/ to enter:
+PROGRAM_DIRS = @PROGRAM_DIRS@
+
+# Dependencies
+X11_INCLUDES = @X11_INCLUDES@
+
+# Library/program dependencies
+GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@
+OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \
+ $(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@
+GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \
+ $(EXTRA_LIB_PATH) @GLU_LIB_DEPS@
+GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \
+ $(EXTRA_LIB_PATH) @GLUT_LIB_DEPS@
+GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \
+ $(EXTRA_LIB_PATH) @GLW_LIB_DEPS@
+APP_LIB_DEPS = $(EXTRA_LIB_PATH) @APP_LIB_DEPS@
+
+# Autoconf directories
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+libdir = @libdir@
+
+# Installation directories (for make install)
+INSTALL_DIR = $(prefix)
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000000..5563fa21809
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,309 @@
+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 ""