This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: SDL on Cygwin


Yaakov Selkowitz schrieb:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK, I know we've been through this before, but there's now a new version
of SDL (1.2.7), with a new development:  it builds OOTB on Cygwin, all I
had to do was reautotool.

There are problems however:

1) when building on Cygwin, the default is to call -mno-cygwin.  This of
course will make it difficult to build other libraries, e.g. SDL_image
which wants other (cygwin-dependent) libraries like libjpeg, etc.

2) by default a /usr/lib/libSDLmain.a is built, and sdl-config spits out
- -Dmain=SDLmain and -lSDLmain, but this is only a static library.  This
makes it impossible to build a shared library which is dependent on libSDL.

Ideas, anyone?

http://www.libsdl.org/extras/win32/cygwin/
http://www.libsdl.org/pipermail/sdl/2002-February/042594.html
(but this is outdated. relies on pexports. our method from the FAQ will work better)


I'll try to make a package out of it.
  I didn't get it to work with the MS DX90SDK, because this conflicts
  with our w32api - with mingw it works fine.
But with the directx-devel package it works fine.
Just autoreconf and removing the mingw lines from configure.in
cd ${srcdir}
    ./autogen.sh
    automake -c -a
    libtoolize -c -f
LDFLAGS="-Wl,--enable-runtime-pseudo-reloc"

I'll try to put my main.c and SDL_Image fixes into a package and ITP it then. Fixed to build in .build

Problems with this version:
libtool still wants to create an exe instead of the cygSDL.dll but I had that before. (need to build png and jpeg stubs probably)
With my bash debugger I can easily fix that now.
But everything else builds just fine.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/
--- SDL-1.2.7/CYGWIN-PATCHES/README.orig	1970-01-01 01:00:00.000000000 +0100
+++ SDL-1.2.7/CYGWIN-PATCHES/README	2004-10-25 15:34:23.450865600 +0100
@@ -0,0 +1,272 @@
+SDL
+-------------------------------
+Simple DirectMedia Layer, a general API that provides low
+level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
+and 2D framebuffer across multiple platforms. 
+
+Runtime requirements: (versions given or later)
+  cygwin-1.5.11-1
+  
+Build requirements: (versions given or later)
+  cygwin-1.5.11-1
+  libtool-devel-1.5.10 (if GCC >= 3.3.3)
+  gcc-3.3.3-3
+  binutils-20040725-2
+  make-3.80
+  ash-20031007
+  fileutils-4.1-2
+  sed-4.1.2-1
+
+  directx-devel for the DirectX interfaces (optional)
+                from http://www.libsdl.org/extras/win32/cygwin/
+
+Canonical homepage:
+  http://www.libsdl.org/
+
+Canonical download:
+  http://www.libsdl.org/download-1.2.php
+
+-------------------------------------------------------------------------------
+
+Build instructions:
+  unpack SDL-<VERSION>.tar.bz2
+    if you use setup to install this src package, it will be
+	 unpacked under /usr/src automatically
+  cd /usr/src
+  ./SDL-<VERSION>-<CYGREL>.sh all
+
+This will create:
+  /usr/src/SDL-<VERSION>-<CYGREL>.tar.bz2
+  /usr/src/SDL-<VERSION>-<CYGREL>-src.tar.bz2
+
+Or use './SDL-<VERSION>-<CYGREL>.sh prep' to get a patched source directory 
+
+-------------------------------------------------------------------------------
+
+Files included in this package:
+
+  /usr/bin/sdl-config
+  /usr/bin/cygSDL-0.dll
+  /usr/include/SDL/begin_code.h
+  /usr/include/SDL/close_code.h
+  /usr/include/SDL/SDL.h
+  /usr/include/SDL/SDL_active.h
+  /usr/include/SDL/SDL_audio.h
+  /usr/include/SDL/SDL_byteorder.h
+  /usr/include/SDL/SDL_cdrom.h
+  /usr/include/SDL/SDL_copying.h
+  /usr/include/SDL/SDL_cpuinfo.h
+  /usr/include/SDL/SDL_endian.h
+  /usr/include/SDL/SDL_error.h
+  /usr/include/SDL/SDL_events.h
+  /usr/include/SDL/SDL_getenv.h
+  /usr/include/SDL/SDL_joystick.h
+  /usr/include/SDL/SDL_keyboard.h
+  /usr/include/SDL/SDL_keysym.h
+  /usr/include/SDL/SDL_loadso.h
+  /usr/include/SDL/SDL_main.h
+  /usr/include/SDL/SDL_mouse.h
+  /usr/include/SDL/SDL_mutex.h
+  /usr/include/SDL/SDL_name.h
+  /usr/include/SDL/SDL_opengl.h
+  /usr/include/SDL/SDL_quit.h
+  /usr/include/SDL/SDL_rwops.h
+  /usr/include/SDL/SDL_syswm.h
+  /usr/include/SDL/SDL_thread.h
+  /usr/include/SDL/SDL_timer.h
+  /usr/include/SDL/SDL_types.h
+  /usr/include/SDL/SDL_version.h
+  /usr/include/SDL/SDL_video.h
+  /usr/lib/libSDL.a
+  /usr/lib/libSDL.dll.a
+  /usr/lib/libSDL.la
+  /usr/lib/libSDLmain.a
+  /usr/lib/SDL.exe
+  /usr/share/aclocal/sdl.m4
+  /usr/share/doc/SDL-1.2.7/html/*
+  /usr/share/man/man3/SDLKey.3
+  /usr/share/man/man3/SDL_ActiveEvent.3
+  /usr/share/man/man3/SDL_AddTimer.3
+  /usr/share/man/man3/SDL_AudioCVT.3
+  /usr/share/man/man3/SDL_AudioSpec.3
+  /usr/share/man/man3/SDL_BlitSurface.3
+  /usr/share/man/man3/SDL_BuildAudioCVT.3
+  /usr/share/man/man3/SDL_CD.3
+  /usr/share/man/man3/SDL_CDClose.3
+  /usr/share/man/man3/SDL_CDEject.3
+  /usr/share/man/man3/SDL_CDName.3
+  /usr/share/man/man3/SDL_CDNumDrives.3
+  /usr/share/man/man3/SDL_CDOpen.3
+  /usr/share/man/man3/SDL_CDPause.3
+  /usr/share/man/man3/SDL_CDPlay.3
+  /usr/share/man/man3/SDL_CDPlayTracks.3
+  /usr/share/man/man3/SDL_CDResume.3
+  /usr/share/man/man3/SDL_CDStatus.3
+  /usr/share/man/man3/SDL_CDStop.3
+  /usr/share/man/man3/SDL_CDtrack.3
+  /usr/share/man/man3/SDL_CloseAudio.3
+  /usr/share/man/man3/SDL_Color.3
+  /usr/share/man/man3/SDL_CondBroadcast.3
+  /usr/share/man/man3/SDL_CondSignal.3
+  /usr/share/man/man3/SDL_CondWait.3
+  /usr/share/man/man3/SDL_CondWaitTimeout.3
+  /usr/share/man/man3/SDL_ConvertAudio.3
+  /usr/share/man/man3/SDL_ConvertSurface.3
+  /usr/share/man/man3/SDL_CreateCond.3
+  /usr/share/man/man3/SDL_CreateCursor.3
+  /usr/share/man/man3/SDL_CreateMutex.3
+  /usr/share/man/man3/SDL_CreateRGBSurface.3
+  /usr/share/man/man3/SDL_CreateRGBSurfaceFrom.3
+  /usr/share/man/man3/SDL_CreateSemaphore.3
+  /usr/share/man/man3/SDL_CreateThread.3
+  /usr/share/man/man3/SDL_CreateYUVOverlay.3
+  /usr/share/man/man3/SDL_Delay.3
+  /usr/share/man/man3/SDL_DestroyCond.3
+  /usr/share/man/man3/SDL_DestroyMutex.3
+  /usr/share/man/man3/SDL_DestroySemaphore.3
+  /usr/share/man/man3/SDL_DisplayFormat.3
+  /usr/share/man/man3/SDL_DisplayFormatAlpha.3
+  /usr/share/man/man3/SDL_DisplayYUVOverlay.3
+  /usr/share/man/man3/SDL_EnableKeyRepeat.3
+  /usr/share/man/man3/SDL_EnableUNICODE.3
+  /usr/share/man/man3/SDL_Event.3
+  /usr/share/man/man3/SDL_EventState.3
+  /usr/share/man/man3/SDL_ExposeEvent.3
+  /usr/share/man/man3/SDL_FillRect.3
+  /usr/share/man/man3/SDL_Flip.3
+  /usr/share/man/man3/SDL_FreeCursor.3
+  /usr/share/man/man3/SDL_FreeSurface.3
+  /usr/share/man/man3/SDL_FreeWAV.3
+  /usr/share/man/man3/SDL_FreeYUVOverlay.3
+  /usr/share/man/man3/SDL_GetAppState.3
+  /usr/share/man/man3/SDL_GetAudioStatus.3
+  /usr/share/man/man3/SDL_GetClipRect.3
+  /usr/share/man/man3/SDL_GetCursor.3
+  /usr/share/man/man3/SDL_GetError.3
+  /usr/share/man/man3/SDL_GetEventFilter.3
+  /usr/share/man/man3/SDL_GetGamma.3
+  /usr/share/man/man3/SDL_GetGammaRamp.3
+  /usr/share/man/man3/SDL_GetKeyName.3
+  /usr/share/man/man3/SDL_GetKeyState.3
+  /usr/share/man/man3/SDL_GetModState.3
+  /usr/share/man/man3/SDL_GetMouseState.3
+  /usr/share/man/man3/SDL_GetRelativeMouseState.3
+  /usr/share/man/man3/SDL_GetRGB.3
+  /usr/share/man/man3/SDL_GetRGBA.3
+  /usr/share/man/man3/SDL_GetThreadID.3
+  /usr/share/man/man3/SDL_GetTicks.3
+  /usr/share/man/man3/SDL_GetVideoInfo.3
+  /usr/share/man/man3/SDL_GetVideoSurface.3
+  /usr/share/man/man3/SDL_GLattr.3
+  /usr/share/man/man3/SDL_GL_GetAttribute.3
+  /usr/share/man/man3/SDL_GL_GetProcAddress.3
+  /usr/share/man/man3/SDL_GL_LoadLibrary.3
+  /usr/share/man/man3/SDL_GL_SetAttribute.3
+  /usr/share/man/man3/SDL_GL_SwapBuffers.3
+  /usr/share/man/man3/SDL_Init.3
+  /usr/share/man/man3/SDL_InitSubSystem.3
+  /usr/share/man/man3/SDL_JoyAxisEvent.3
+  /usr/share/man/man3/SDL_JoyBallEvent.3
+  /usr/share/man/man3/SDL_JoyButtonEvent.3
+  /usr/share/man/man3/SDL_JoyHatEvent.3
+  /usr/share/man/man3/SDL_JoystickClose.3
+  /usr/share/man/man3/SDL_JoystickEventState.3
+  /usr/share/man/man3/SDL_JoystickGetAxis.3
+  /usr/share/man/man3/SDL_JoystickGetBall.3
+  /usr/share/man/man3/SDL_JoystickGetButton.3
+  /usr/share/man/man3/SDL_JoystickGetHat.3
+  /usr/share/man/man3/SDL_JoystickIndex.3
+  /usr/share/man/man3/SDL_JoystickName.3
+  /usr/share/man/man3/SDL_JoystickNumAxes.3
+  /usr/share/man/man3/SDL_JoystickNumBalls.3
+  /usr/share/man/man3/SDL_JoystickNumButtons.3
+  /usr/share/man/man3/SDL_JoystickNumHats.3
+  /usr/share/man/man3/SDL_JoystickOpen.3
+  /usr/share/man/man3/SDL_JoystickOpened.3
+  /usr/share/man/man3/SDL_JoystickUpdate.3
+  /usr/share/man/man3/SDL_KeyboardEvent.3
+  /usr/share/man/man3/SDL_keysym.3
+  /usr/share/man/man3/SDL_KillThread.3
+  /usr/share/man/man3/SDL_ListModes.3
+  /usr/share/man/man3/SDL_LoadBMP.3
+  /usr/share/man/man3/SDL_LoadWAV.3
+  /usr/share/man/man3/SDL_LockAudio.3
+  /usr/share/man/man3/SDL_LockSurface.3
+  /usr/share/man/man3/SDL_LockYUVOverlay.3
+  /usr/share/man/man3/SDL_MapRGB.3
+  /usr/share/man/man3/SDL_MapRGBA.3
+  /usr/share/man/man3/SDL_MixAudio.3
+  /usr/share/man/man3/SDL_MouseButtonEvent.3
+  /usr/share/man/man3/SDL_MouseMotionEvent.3
+  /usr/share/man/man3/SDL_mutexP.3
+  /usr/share/man/man3/SDL_mutexV.3
+  /usr/share/man/man3/SDL_NumJoysticks.3
+  /usr/share/man/man3/SDL_OpenAudio.3
+  /usr/share/man/man3/SDL_Overlay.3
+  /usr/share/man/man3/SDL_Palette.3
+  /usr/share/man/man3/SDL_PauseAudio.3
+  /usr/share/man/man3/SDL_PeepEvents.3
+  /usr/share/man/man3/SDL_PixelFormat.3
+  /usr/share/man/man3/SDL_PollEvent.3
+  /usr/share/man/man3/SDL_PumpEvents.3
+  /usr/share/man/man3/SDL_PushEvent.3
+  /usr/share/man/man3/SDL_Quit.3
+  /usr/share/man/man3/SDL_QuitEvent.3
+  /usr/share/man/man3/SDL_QuitSubSystem.3
+  /usr/share/man/man3/SDL_Rect.3
+  /usr/share/man/man3/SDL_RemoveTimer.3
+  /usr/share/man/man3/SDL_ResizeEvent.3
+  /usr/share/man/man3/SDL_RWFromFile.3
+  /usr/share/man/man3/SDL_SaveBMP.3
+  /usr/share/man/man3/SDL_SemPost.3
+  /usr/share/man/man3/SDL_SemTryWait.3
+  /usr/share/man/man3/SDL_SemValue.3
+  /usr/share/man/man3/SDL_SemWait.3
+  /usr/share/man/man3/SDL_SemWaitTimeout.3
+  /usr/share/man/man3/SDL_SetAlpha.3
+  /usr/share/man/man3/SDL_SetClipRect.3
+  /usr/share/man/man3/SDL_SetColorKey.3
+  /usr/share/man/man3/SDL_SetColors.3
+  /usr/share/man/man3/SDL_SetCursor.3
+  /usr/share/man/man3/SDL_SetEventFilter.3
+  /usr/share/man/man3/SDL_SetGamma.3
+  /usr/share/man/man3/SDL_SetGammaRamp.3
+  /usr/share/man/man3/SDL_SetModState.3
+  /usr/share/man/man3/SDL_SetPalette.3
+  /usr/share/man/man3/SDL_SetTimer.3
+  /usr/share/man/man3/SDL_SetVideoMode.3
+  /usr/share/man/man3/SDL_ShowCursor.3
+  /usr/share/man/man3/SDL_Surface.3
+  /usr/share/man/man3/SDL_SysWMEvent.3
+  /usr/share/man/man3/SDL_ThreadID.3
+  /usr/share/man/man3/SDL_UnlockAudio.3
+  /usr/share/man/man3/SDL_UnlockSurface.3
+  /usr/share/man/man3/SDL_UnlockYUVOverlay.3
+  /usr/share/man/man3/SDL_UpdateRect.3
+  /usr/share/man/man3/SDL_UpdateRects.3
+  /usr/share/man/man3/SDL_UserEvent.3
+  /usr/share/man/man3/SDL_VideoDriverName.3
+  /usr/share/man/man3/SDL_VideoInfo.3
+  /usr/share/man/man3/SDL_VideoModeOK.3
+  /usr/share/man/man3/SDL_WaitEvent.3
+  /usr/share/man/man3/SDL_WaitThread.3
+  /usr/share/man/man3/SDL_WarpMouse.3
+  /usr/share/man/man3/SDL_WasInit.3
+  /usr/share/man/man3/SDL_WM_GetCaption.3
+  /usr/share/man/man3/SDL_WM_GrabInput.3
+  /usr/share/man/man3/SDL_WM_IconifyWindow.3
+  /usr/share/man/man3/SDL_WM_SetCaption.3
+  /usr/share/man/man3/SDL_WM_SetIcon.3
+  /usr/share/man/man3/SDL_WM_ToggleFullScreen.3 
+
+-------------------------------------------------------------------------------
+
+Port Notes:
+
+----- version SDL-1.2.7-1 -----
+
+Initial cygwin release: autoreconf -f, removed mingw stuff, 
+fixes to build in .build
+
+Cygwin port maintained by: Reini Urban <rurban@x-ray.at>
+Cygwin port questions to the mailinglist <cygwin@cygwin.com>
--- SDL-1.2.7/CYGWIN-PATCHES/README.txt.orig	1970-01-01 01:00:00.000000000 +0100
+++ SDL-1.2.7/CYGWIN-PATCHES/README.txt	2004-10-25 15:03:42.208808800 +0100
@@ -0,0 +1,35 @@
+
+Steps to build SDL natively with the Cygwin environment available at:
+	http://www.cygwin.com/
+
+These steps assume that you are comfortable with the UNIX environment.
+
+Step 1. Run the Cygwin setup program, install the default packages and
+        the development packages (adding any extras you want, like vim).
+Step 2. Run the Cygwin shell.  Further instructions assume you're in this shell.
+Step 3. Extract the SDL source into a directory and run:
+	./configure && make && make install
+Step 4. When you're ready to build SDL applications, copy SDL.dll from
+        /usr/local/lib to whereever your SDL application source resides.
+
+Troubleshooting:
+===========================================================================
+Q: I get an error when building and I unpacked the source in a path with spaces.
+A: Unpack the source in a path without spaces, like /tmp, and build there.
+===========================================================================
+Q: I get the following error while building SDL:
+	GL/gl.h: No such file or directory
+A: You need to get the OpenGL development headers from:
+	http://www.libsdl.org/extras/win32/cygwin/opengl-devel.tar.gz
+   You need to unpack these in the /usr directory.
+===========================================================================
+Q: My version of SDL doesn't have DirectX support!
+A: You need to get the DirectX development headers and libraries from:
+	http://www.libsdl.org/extras/win32/cygwin/directx-devel.tar.gz
+   You need to unpack these in the /usr directory.
+===========================================================================
+Q: My version of SDL doesn't have assembly support, NASM is not available.
+A: You need to get nasm assembler from:
+	http://www.libsdl.org/extras/win32/cygwin/nasm.exe
+   Put this file in the /usr/bin directory.
+===========================================================================
--- SDL-1.2.7/autogen.sh.orig	2002-06-08 18:42:09.000000000 +0100
+++ SDL-1.2.7/autogen.sh	2004-10-25 15:36:09.308885600 +0100
@@ -13,6 +13,8 @@
 autoconf
 (cd test; aclocal; automake --foreign --include-deps --add-missing --copy; autoconf)
 
+libtoolize -c -f
+
 # Run configure for this platform
 #./configure $*
 echo "Now you are ready to run ./configure"
--- SDL-1.2.7/configure.in.orig	2004-02-22 22:31:47.000000000 +0100
+++ SDL-1.2.7/configure.in	2004-10-25 14:51:41.218037000 +0100
@@ -2374,10 +2374,10 @@
         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
         case "$target" in
             *-*-cygwin*)
-                CFLAGS="$CFLAGS -I/usr/include/mingw -DWIN32 -Uunix -mno-cygwin"
-                SDL_CFLAGS="$SDL_CFLAGS -I/usr/include/mingw -DWIN32 -Uunix -mno-cygwin"
-                LIBS="$LIBS -mno-cygwin"
-                SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows -mno-cygwin"
+                CFLAGS="$CFLAGS -I/usr/include/w32api -DWIN32 -Uunix "
+                SDL_CFLAGS="$SDL_CFLAGS -I/usr/include/w32api -DWIN32 -Uunix "
+                LIBS="$LIBS -L/usr/lib/w32api"
+                SDL_LIBS=" -lSDLmain $SDL_LIBS -mwindows "
                 ;;
             *-*-mingw32*)
                 SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
--- SDL-1.2.7/src/Makefile.am.orig	2004-02-18 18:21:58.000000000 +0100
+++ SDL-1.2.7/src/Makefile.am	2004-10-25 15:12:52.279892800 +0100
@@ -19,6 +19,7 @@
 lib_LTLIBRARIES = libSDL.la
 
 libSDL_la_SOURCES = $(GENERAL_SRCS)
+libSDL_la_CFLAGS = @CFLAGS@ -I../include
 libSDL_la_LDFLAGS = 		\
 	-no-undefined		\
         -release $(LT_RELEASE)	\

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]