Rename Android and EGL files
[freeglut] / configure.ac
index d6f5f06..8e835d5 100644 (file)
@@ -1,6 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([freeglut library], [2.3.9], [freeglut-bugs@lists.sourceforge.net], [freeglut])
+AC_INIT([freeglut library], [3.0.0], [freeglut-bugs@lists.sourceforge.net], [freeglut])
 AM_INIT_AUTOMAKE
 AC_PREREQ([2.56])
 AC_CONFIG_SRCDIR([AUTHORS])
@@ -11,6 +11,7 @@ m4_ifdef([AS_HELP_STRING], [], [AC_DEFUN([AS_HELP_STRING], [AC_HELP_STRING($][@)
 
 # Checks for programs.
 AC_PROG_CC
+AM_PROG_CC_C_O
 AC_C_CONST
 AC_EXEEXT
 AC_LIBTOOL_DLOPEN
@@ -19,26 +20,90 @@ AC_SUBST([LIBTOOL_DEPS])
 
 # Checks for libraries.
 AC_PATH_XTRA
-AC_CHECK_LIB([Xxf86vm], [XF86VidModeSwitchToMode],
-            [LIBXXF86VM=-lXxf86vm], [LIBXXF86VM=],
-             [$X_LIBS -lXext -lX11])
+
+#if test "x$no_x" = xyes; then
+#  GL_LIBS="-lopengl32 -lgdi32 -lwinmm"
+#  LIBXXF86VM=
+#  LIBXI=
+#  VERSION_INFO=
+#  EXPORT_FLAGS="-DFREEGLUT_EXPORTS"
+#else
+#  GL_LIBS="-lGL -lXext -lX11"
+#  AC_CHECK_LIB([Xxf86vm], [XF86VidModeSwitchToMode])
+#  AC_CHECK_LIB([Xrandr], [XRRQueryExtension])
+#  AC_CHECK_LIB([Xi], [XISelectEvents])
+#  LIBXI=-lXi
+#  VERSION_INFO="-version-info 12:0:9"
+#  EXPORT_FLAGS=
+#fi
+VERSION_INFO="-version-info 12:0:9"
+AM_CONDITIONAL(TARGET_HOST_MS_WINDOWS, false)
+AM_CONDITIONAL(TARGET_HOST_POSIX_X11, false)
+AM_CONDITIONAL(TARGET_HOST_ANDROID, false)
+case "${host}" in
+    *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
+       # Windows+Cygwin/MSYS, MinGW cross-compilation
+       GL_LIBS="-lopengl32 -lgdi32 -lwinmm"
+       LIBXXF86VM=
+       LIBXI=
+       CPPFLAGS="$CPPFLAGS -DFREEGLUT_EXPORTS"
+       AM_CONDITIONAL(TARGET_HOST_MS_WINDOWS, true)
+       ;;
+    *-*-linux-androideabi)
+       # Android
+       # e.g. arm-unknown-linux-androideabi
+       GL_LIBS="-lEGL -lGLESv2"
+       LIBXXF86VM=
+       LIBXI=
+       #CFLAGS="$CFLAGS"
+       # '-mandroid' is not mandatory but doesn't hurt
+       # '-O0 -gstabs+' helps the currently buggy GDB port, better
+       #   remove it for releases
+       # '-DANDROID' is the Android build system convention
+       CFLAGS="-mandroid -O0 -gstabs+"
+       CPPFLAGS="$CPPFLAGS -DANDROID"
+       AM_CONDITIONAL(TARGET_HOST_ANDROID, true)
+       ;;
+    *)
+       # Unix/X11
+       GL_LIBS="-lGL -lXext -lX11"
+       AC_CHECK_LIB([Xxf86vm], [XF86VidModeSwitchToMode])
+       AC_CHECK_LIB([Xrandr], [XRRQueryExtension])
+       AC_CHECK_LIB([Xi], [XISelectEvents])
+       LIBXI=-lXi
+       AM_CONDITIONAL(TARGET_HOST_POSIX_X11, true)
+       ;;
+esac
+
+AC_SUBST([GL_LIBS])
 AC_SUBST([LIBXXF86VM])
+AC_SUBST([LIBXI])
+AC_SUBST([VERSION_INFO])
+AC_SUBST([EXPORT_FLAGS])
+
+AC_CHECK_LIB([usbhid], [hid_init],
+             [LIBUSBHID=-lusbhid], [LIBUSBHID=])
+AC_SUBST(LIBUSBHID)
 
 # Checks for header files.
 AC_HEADER_STDC
-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])
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+AC_CHECK_HEADERS([usbhid.h libusbhid.h errno.h GL/gl.h GL/glu.h GL/glx.h GLES/gl.h GLES2/gl2.h fcntl.h limits.h sys/ioctl.h sys/param.h sys/time.h])
 AC_HEADER_TIME
-
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $X_CFLAGS"
 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h], [], [], [#include <X11/Xlib.h>])
-CFLAGS="$save_CFLAGS"
+AC_CHECK_HEADERS([X11/extensions/Xrandr.h])
+AC_CHECK_HEADERS([X11/extensions/XI.h X11/extensions/XInput.h])
+AC_CHECK_HEADERS([X11/extensions/XInput2.h])
+CPPFLAGS="$save_CPPFLAGS"
 
 # Checks for library functions.
 AC_PROG_GCC_TRADITIONAL
 AC_FUNC_VPRINTF
 AC_CHECK_LIBM
 AC_SUBST([LIBM])
+AC_CHECK_FUNCS([gettimeofday])
+AC_CHECK_FUNCS([vfprintf])
 
 # Build time configuration.
 AC_ARG_ENABLE([replace-glut],
@@ -58,21 +123,40 @@ AC_ARG_ENABLE([warnings],
 [AS_HELP_STRING([--enable-warnings],
                 [use all gcc compiler warnings @<:@default=yes@:>@])])
 if test "x$enable_warnings" != xno -a "x$GCC" = xyes; then
-  CFLAGS="$CFLAGS -Wall -pedantic -Werror"
+  CFLAGS="$CFLAGS -Wall -pedantic"
+fi
+
+AC_ARG_ENABLE([warnings-as-errors],
+[AS_HELP_STRING([--enable-warnings-as-errors],
+                [make all warnings into errors @<:@default=no@:>@])])
+if test "x$enable_warnings_as_errors" = xyes -a "x$GCC" = xyes; then
+  CFLAGS="$CFLAGS -Werror"
+fi
+
+AC_ARG_ENABLE([debug],
+[AS_HELP_STRING([--enable-debug],
+                [enable debugging code (for developers) @<:@default=no@:>@])])
+if test "x$enable_debug" = xyes; then
+  AC_DEFINE([_DEBUG], [1], [Define to 1 if you want to include debugging code.])
 fi
 
 # Generate output.
-AC_CONFIG_FILES([Makefile
-                 doc/Makefile
-                 include/GL/Makefile
-                 include/Makefile
-                 progs/Makefile
-                 progs/demos/CallbackMaker/Makefile
-                 progs/demos/Fractals/Makefile
-                 progs/demos/Fractals_random/Makefile
-                 progs/demos/Lorenz/Makefile
-                 progs/demos/Makefile
-                 progs/demos/One/Makefile
-                 progs/demos/shapes/Makefile
-                 src/Makefile])
+AC_CONFIG_FILES([
+       Makefile
+       doc/Makefile
+       include/GL/Makefile
+       include/Makefile
+       progs/Makefile
+       progs/demos/CallbackMaker/Makefile
+       progs/demos/Fractals/Makefile
+       progs/demos/Fractals_random/Makefile
+       progs/demos/Lorenz/Makefile
+       progs/demos/Makefile
+       progs/demos/One/Makefile
+       progs/demos/shapes/Makefile
+       progs/demos/smooth_opengl3/Makefile
+       progs/demos/spaceball/Makefile
+       progs/demos/subwin/Makefile
+       src/Makefile
+])
 AC_OUTPUT