Improve autoconf magic: To detect headers like GL/gl.h, it might be
[freeglut] / configure.ac
1 # Process this file with autoconf to produce a configure script.
2
3 AC_INIT([freeglut library], [2.4.0], [freeglut-bugs@lists.sourceforge.net], [freeglut])
4 AM_INIT_AUTOMAKE
5 AC_PREREQ([2.56])
6 AC_CONFIG_SRCDIR([AUTHORS])
7 AC_CONFIG_HEADERS([config.h])
8
9 # Compatibility hack for older autoconf versions
10 m4_ifdef([AS_HELP_STRING], [], [AC_DEFUN([AS_HELP_STRING], [AC_HELP_STRING($][@)])])
11
12 # Checks for programs.
13 AC_PROG_CC
14 AC_C_CONST
15 AC_EXEEXT
16 AC_LIBTOOL_DLOPEN
17 AC_PROG_LIBTOOL
18 AC_SUBST([LIBTOOL_DEPS])
19
20 # Checks for libraries.
21 AC_PATH_XTRA
22
23 if test x"$no_x" = xyes; then
24   GL_LIBS="-lopengl32 -lglu32 -lgdi32"
25   LIBXXF86VM=
26   VERSION_INFO=
27   EXPORT_FLAGS="-DFREEGLUT_EXPORTS"
28 else
29   GL_LIBS="-lGL -lGLU -lXext -lX11"
30   AC_CHECK_LIB([Xxf86vm], [XF86VidModeSwitchToMode],
31                [LIBXXF86VM=-lXxf86vm], [LIBXXF86VM=],
32                [$X_LIBS -lXext -lX11])
33   VERSION_INFO="-version-info 11:0:8"
34   EXPORT_FLAGS=
35 fi
36 AC_SUBST([GL_LIBS])
37 AC_SUBST([LIBXXF86VM])
38 AC_SUBST([VERSION_INFO])
39 AC_SUBST([EXPORT_FLAGS])
40
41 # Checks for header files.
42 AC_HEADER_STDC
43 save_CPPFLAGS="$CPPFLAGS"
44 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
45 AC_CHECK_HEADERS([GL/gl.h GL/glu.h GL/glx.h fcntl.h limits.h sys/ioctl.h sys/param.h sys/time.h])
46 AC_HEADER_TIME
47 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h], [], [], [#include <X11/Xlib.h>])
48 CPPFLAGS="$save_CPPFLAGS"
49
50 # Checks for library functions.
51 AC_PROG_GCC_TRADITIONAL
52 AC_FUNC_VPRINTF
53 AC_CHECK_LIBM
54 AC_SUBST([LIBM])
55
56 # Build time configuration.
57 AC_ARG_ENABLE([replace-glut],
58 [AS_HELP_STRING([--enable-replace-glut],
59                 [be a replacement for GLUT @<:@default=yes@:>@])])
60 if test "x$enable_replace_glut" != xno; then
61   LIBRARY=glut
62   HEADER=glut.h
63 else
64   LIBRARY=freeglut
65   HEADER=
66 fi
67 AC_SUBST([LIBRARY])
68 AC_SUBST([HEADER])
69
70 AC_ARG_ENABLE([warnings],
71 [AS_HELP_STRING([--enable-warnings],
72                 [use all gcc compiler warnings @<:@default=yes@:>@])])
73 if test "x$enable_warnings" != xno -a "x$GCC" = xyes; then
74   CFLAGS="$CFLAGS -Wall -pedantic -Werror"
75 fi
76
77 AC_ARG_ENABLE([debug],
78 [AS_HELP_STRING([--enable-debug],
79                 [enable debugging code (for developers) @<:@default=no@:>@])])
80 if test "x$enable_debug" = xyes; then
81   AC_DEFINE([_DEBUG], [1], [Define to 1 if you want to include debugging code.])
82 fi
83
84 # Generate output.
85 AC_CONFIG_FILES([Makefile
86                  doc/Makefile
87                  include/GL/Makefile
88                  include/Makefile
89                  progs/Makefile
90                  progs/demos/CallbackMaker/Makefile
91                  progs/demos/Fractals/Makefile
92                  progs/demos/Fractals_random/Makefile
93                  progs/demos/Lorenz/Makefile
94                  progs/demos/Makefile
95                  progs/demos/One/Makefile
96                  progs/demos/shapes/Makefile
97                  src/Makefile])
98 AC_OUTPUT