Date: Tue, 22 Mar 2005 23:50:20 +0100
From: Johannes Schmidt
Subject: [PATCH] Re: [SDL] SDL 1.2.8 Prerelease
On Saturday 18 December 2004 13:59, Stephane Marchesin wrote:
> >#error "The kernel sources in /usr/src/linux are not yet configured."
> >#error "Please run 'make cloneconfig && make dep' in /usr/src/linux/"
> >#error "to get a kernel that is configured like the running kernel."
> >#error "Alternatively, you can copy one of the config files"
> >#error "arch/$ARCH/defconfig.* to .config, and run"
> >#error "'make oldconfig && make dep' to configure the kernel"
> >#error "for that configuration."
> >-
>
> That's the Suse kernel sources...
> I think the only way out is to add a test in ./configure
Attached is a patch (it works for me[TM]) which adds a CheckLinuxVersion() to
configure.in and a check for HAVE_LINUX_VERSION_H to
src/cdrom/linux/SDL_syscdrom.c.
--- a/configure.in Wed May 18 17:02:17 2005 +0000
+++ b/configure.in Fri May 20 07:34:34 2005 +0000
@@ -1855,6 +1855,15 @@
AC_MSG_RESULT($have_gcc_altivec)
}
+dnl Check for a valid linux/version.h
+CheckLinuxVersion()
+{
+ AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
+ if test x$have_linux_version_h = xyes; then
+ CFLAGS="$CFLAGS -DHAVE_LINUX_VERSION_H"
+ fi
+}
+
case "$target" in
*-*-linux*|*-*-gnu*|*-*-k*bsd*-gnu)
case "$target" in
@@ -1889,6 +1898,8 @@
CheckPTHREAD
CheckSIGACTION
CheckAltivec
+ CheckLinuxVersion
+
# Set up files for the main() stub
if test "x$video_qtopia" = "xyes"; then
SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
--- a/src/cdrom/linux/SDL_syscdrom.c Wed May 18 17:02:17 2005 +0000
+++ b/src/cdrom/linux/SDL_syscdrom.c Fri May 20 07:34:34 2005 +0000
@@ -37,6 +37,7 @@
#include <errno.h>
#include <unistd.h>
#ifdef __linux__
+#ifdef HAVE_LINUX_VERSION_H
/* linux 2.6.9 workaround */
#include <linux/version.h>
#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9)
@@ -48,6 +49,7 @@
#define __be32 __u32
#define __be16 __u16
#endif /* linux 2.6.9 workaround */
+#endif /* HAVE_LINUX_VERSION_H */
#include <linux/cdrom.h>
#endif
#ifdef __SVR4