Skip to content

Commit

Permalink
merged with repo
Browse files Browse the repository at this point in the history
  • Loading branch information
nerdap committed Nov 14, 2013
2 parents 1c13878 + 00003e8 commit f9f064d
Show file tree
Hide file tree
Showing 46 changed files with 224 additions and 167 deletions.
22 changes: 12 additions & 10 deletions CMakeLists.txt
Expand Up @@ -95,8 +95,10 @@ elseif(APPLE)
set(MACOSX TRUE)
endif()
# TODO: iOS?
elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*|BeOS.*")
set(BEOS TRUE)
elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*")
message_error("BeOS support has been removed as of SDL 2.0.2.")
elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*")
set(HAIKU TRUE)
endif()

# Don't mistake osx for unix
Expand Down Expand Up @@ -308,9 +310,9 @@ if(USE_GCC)

check_c_compiler_flag(-Wall HAVE_GCC_WALL)
if(HAVE_GCC_WALL)
if(CMAKE_SYSTEM_NAME MATCHES "Haiku|BeOS")
if(HAIKU)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar")
endif(CMAKE_SYSTEM_NAME MATCHES "Haiku|BeOS")
endif(HAIKU)
endif(HAVE_GCC_WALL)
endif(USE_GCC)

Expand Down Expand Up @@ -991,15 +993,15 @@ elseif(APPLE)
endif(SDL_VIDEO)

CheckPTHREAD()
elseif(BEOS)
elseif(HAIKU)
if(SDL_VIDEO)
set(SDL_VIDEO_DRIVER_BWINDOW 1)
file(GLOB BWINDOW_SOURCES ${SDL2_SOURCE_DIR}/src/video/bwindow/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${BWINDOW_SOURCES})
set(SDL_VIDEO_DRIVER_HAIKU 1)
file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${HAIKUVIDEO_SOURCES})
set(HAVE_SDL_VIDEO TRUE)

set(SDL_FILESYSTEM_BEOS 1)
file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/beos/*.cc)
set(SDL_FILESYSTEM_HAIKU 1)
file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc)
set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
set(HAVE_SDL_FILESYSTEM TRUE)

Expand Down
48 changes: 48 additions & 0 deletions README-linux.txt
Expand Up @@ -30,3 +30,51 @@ NOTES:
configure script to include DirectFB support. Send patches. :)


================================================================================
Joystick does not work
================================================================================

If you compiled or are using a version of SDL with udev support (and you should!)
there's a few issues that may cause SDL to fail to detect your joystick. To
debug this, start by installing the evtest utility. On Ubuntu/Debian:

sudo apt-get install evtest

Then run:

sudo evtest

You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX"
Now run:

cat /dev/input/event/XX

If you get a permission error, you need to set a udev rule to change the mode of
your device (see below)

Also, try:

sudo udevadm info --query=all --name=input/eventXX

If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it,
you need to set up an udev rule to force this variable.

A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks
like:

SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

You can set up similar rules for your device by changing the values listed in
idProduct and idVendor. To obtain these values, try:

sudo udevadm info -a --name=input/eventXX | grep idVendor
sudo udevadm info -a --name=input/eventXX | grep idProduct

If multiple values come up for each of these, the one you want is the first one of each.

On other systems which ship with an older udev (such as CentOS), you may need
to set up a rule such as:

SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1"

2 changes: 1 addition & 1 deletion cmake/sdlchecks.cmake
Expand Up @@ -638,7 +638,7 @@ macro(CheckPTHREAD)
elseif(HPUX)
set(PTHREAD_CFLAGS "-D_REENTRANT")
set(PTHREAD_LDFLAGS "-L/usr/lib -pthread")
elseif(BEOS)
elseif(HAIKU)
set(PTHREAD_CFLAGS "-D_REENTRANT")
set(PTHREAD_LDFLAGS "")
else()
Expand Down
52 changes: 29 additions & 23 deletions configure
Expand Up @@ -15950,7 +15950,7 @@ $as_echo "$have_gcc_mmd_mt" >&6; }
fi
fi

# Actually this doesn't work on OpenBSD and BeOS
# Actually this doesn't work on OpenBSD
#AC_MSG_CHECKING(for linker option --no-undefined)
#have_no_undefined=no
#save_LDFLAGS="$LDFLAGS"
Expand Down Expand Up @@ -18598,7 +18598,7 @@ $as_echo "$have_gcc_Wall" >&6; }
$as_echo_n "checking for necessary GCC -Wno-multichar option... " >&6; }
need_gcc_Wno_multichar=no
case "$host" in
*-*-beos* | *-*-haiku*)
*-*-haiku*)
need_gcc_Wno_multichar=yes
;;
esac
Expand Down Expand Up @@ -20124,13 +20124,13 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1" >>confdefs.h
fi
}

CheckBWINDOW()
CheckHaikuVideo()
{
if test x$enable_video = xyes; then

$as_echo "#define SDL_VIDEO_DRIVER_BWINDOW 1" >>confdefs.h
$as_echo "#define SDL_VIDEO_DRIVER_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc"
have_video=yes
fi
}
Expand Down Expand Up @@ -20680,14 +20680,14 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h
fi
}

CheckBeGL()
CheckHaikuGL()
{
if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then

$as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h


$as_echo "#define SDL_VIDEO_OPENGL_BGL 1" >>confdefs.h
$as_echo "#define SDL_VIDEO_OPENGL_HAIKU 1" >>confdefs.h


$as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h
Expand Down Expand Up @@ -22399,66 +22399,72 @@ fi
fi
;;

*-*-beos*)
as_fn_error $? "
*** BeOS support has been removed as of SDL 2.0.2.
" "$LINENO" 5
;;

*-*-haiku*)
ARCH=beos
ARCH=haiku
ac_default_prefix=/boot/common
CheckDummyVideo
CheckDiskAudio
CheckDummyAudio
CheckBWINDOW
CheckBeGL
CheckHaikuVideo
CheckHaikuGL
CheckPTHREAD

# Set up files for the audio library
if test x$enable_audio = xyes; then

$as_echo "#define SDL_AUDIO_DRIVER_BEOSAUDIO 1" >>confdefs.h
$as_echo "#define SDL_AUDIO_DRIVER_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
have_audio=yes
fi
# Set up files for the joystick library
if test x$enable_joystick = xyes; then

$as_echo "#define SDL_JOYSTICK_BEOS 1" >>confdefs.h
$as_echo "#define SDL_JOYSTICK_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc"
have_joystick=yes
fi
# Set up files for the timer library
if test x$enable_timers = xyes; then

$as_echo "#define SDL_TIMER_BEOS 1" >>confdefs.h
$as_echo "#define SDL_TIMER_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c"
have_timers=yes
fi
# Set up files for the shared object loading library
if test x$enable_loadso = xyes; then

$as_echo "#define SDL_LOADSO_BEOS 1" >>confdefs.h
$as_echo "#define SDL_LOADSO_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c"
have_loadso=yes
fi
# Set up files for the system power library
if test x$enable_power = xyes; then

$as_echo "#define SDL_POWER_BEOS 1" >>confdefs.h
$as_echo "#define SDL_POWER_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
SOURCES="$SOURCES $srcdir/src/power/haiku/*.c"
have_power=yes
fi
# Set up files for the system filesystem library
if test x$enable_filesystem = xyes; then

$as_echo "#define SDL_FILESYSTEM_BEOS 1" >>confdefs.h
$as_echo "#define SDL_FILESYSTEM_HAIKU 1" >>confdefs.h

SOURCES="$SOURCES $srcdir/src/filesystem/beos/*.cc"
SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
have_filesystem=yes
fi
# The BeOS platform requires special setup.
SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
;;
arm*-apple-darwin*)
Expand Down
59 changes: 32 additions & 27 deletions configure.in
Expand Up @@ -204,7 +204,7 @@ if test x$enable_dependency_tracking = xyes; then
fi
fi

# Actually this doesn't work on OpenBSD and BeOS
# Actually this doesn't work on OpenBSD
#AC_MSG_CHECKING(for linker option --no-undefined)
#have_no_undefined=no
#save_LDFLAGS="$LDFLAGS"
Expand Down Expand Up @@ -1097,7 +1097,7 @@ CheckWarnAll()
AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
need_gcc_Wno_multichar=no
case "$host" in
*-*-beos* | *-*-haiku*)
*-*-haiku*)
need_gcc_Wno_multichar=yes
;;
esac
Expand Down Expand Up @@ -1474,12 +1474,12 @@ AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[d
fi
}

dnl Set up the BWindow video driver if enabled
CheckBWINDOW()
dnl Set up the Haiku video driver if enabled
CheckHaikuVideo()
{
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc"
have_video=yes
fi
}
Expand Down Expand Up @@ -1743,12 +1743,12 @@ CheckWINDOWSGL()
fi
}

dnl Check for BeOS OpenGL
CheckBeGL()
dnl Check for Haiku OpenGL
CheckHaikuGL()
{
if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ])
AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ])
AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
fi
Expand Down Expand Up @@ -2619,55 +2619,60 @@ AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau
;;

dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
dnl *-*-beos*)
*-*-beos*)
AC_MSG_ERROR([
*** BeOS support has been removed as of SDL 2.0.2.
])
;;

*-*-haiku*)
ARCH=beos
ARCH=haiku
ac_default_prefix=/boot/common
CheckDummyVideo
CheckDiskAudio
CheckDummyAudio
CheckBWINDOW
CheckBeGL
CheckHaikuVideo
CheckHaikuGL
CheckPTHREAD

# Set up files for the audio library
if test x$enable_audio = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ])
SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
have_audio=yes
fi
# Set up files for the joystick library
if test x$enable_joystick = xyes; then
AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
AC_DEFINE(SDL_JOYSTICK_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc"
have_joystick=yes
fi
# Set up files for the timer library
if test x$enable_timers = xyes; then
AC_DEFINE(SDL_TIMER_BEOS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
AC_DEFINE(SDL_TIMER_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c"
have_timers=yes
fi
# Set up files for the shared object loading library
if test x$enable_loadso = xyes; then
AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
AC_DEFINE(SDL_LOADSO_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c"
have_loadso=yes
fi
# Set up files for the system power library
if test x$enable_power = xyes; then
AC_DEFINE(SDL_POWER_BEOS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
AC_DEFINE(SDL_POWER_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/power/haiku/*.c"
have_power=yes
fi
# Set up files for the system filesystem library
if test x$enable_filesystem = xyes; then
AC_DEFINE(SDL_FILESYSTEM_BEOS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/filesystem/beos/*.cc"
AC_DEFINE(SDL_FILESYSTEM_HAIKU, 1, [ ])
SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
have_filesystem=yes
fi
# The BeOS platform requires special setup.
SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
# The Haiku platform requires special setup.
SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
;;
arm*-apple-darwin*)
Expand Down

0 comments on commit f9f064d

Please sign in to comment.