Package: amoeba Version: src:amoeba Severity: important Tags: patch User: debian-...@lists.debian.org
Hi! I've attached 2 patches to make amoeba build on kfreebsd (and potentially hurd). The two issues are first assuming everything no linux is windows (while the linux code works on *nix) and using linux/soundcard.h instead of sys/soundcard.h which is not only available on linux but also on e.g. kfreebsd Regards Christoph -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: kfreebsd-amd64 (x86_64) Kernel: kFreeBSD 8.2-1-amd64 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
Index: amoeba-1.1/audio/musichandler.cpp =================================================================== --- amoeba-1.1.orig/audio/musichandler.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/audio/musichandler.cpp 2011-11-29 15:50:50.000000000 +0100 @@ -18,7 +18,7 @@ #define DEMOLIB_SOUND_PROVIDER OggVorbisAudioProvider -#if __linux__ +#if __GLIBC__ #include "audio/linux_oss.h" #define DEMOLIB_SOUND_DRIVER OSSAudioDriver #else Index: amoeba-1.1/main/demohandler.cpp =================================================================== --- amoeba-1.1.orig/main/demohandler.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/main/demohandler.cpp 2011-11-29 15:50:51.000000000 +0100 @@ -2,7 +2,7 @@ #include <string.h> #include <stdlib.h> -#ifdef __linux__ +#ifdef __GLIBC__ #include <X11/keysym.h> #endif @@ -56,7 +56,7 @@ glDepthFunc(GL_LESS); while (this->active) { -#ifdef __linux__ +#ifdef __GLIBC__ /* * Linux doesn't use a message queue like Win32, so we'll * handle X events here :-) Index: amoeba-1.1/main/mainloop.cpp =================================================================== --- amoeba-1.1.orig/main/mainloop.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/main/mainloop.cpp 2011-11-29 15:50:51.000000000 +0100 @@ -212,21 +212,21 @@ int i = 0; #if !DEMOLIB_SILENT static bool init_timer = false; -#if __linux__ +#if __GLIBC__ static struct timeval first_lpp, now; #else static DWORD first_lpp, now; #endif if (!init_timer) { -#if __linux__ +#if __GLIBC__ gettimeofday(&first_lpp, NULL); #else first_lpp = GetTickCount(); #endif init_timer = true; } -#if __linux__ +#if __GLIBC__ gettimeofday(&now, NULL); printf("LPP: [%6.3f]\n", (now.tv_sec - first_lpp.tv_sec) + @@ -322,7 +322,7 @@ * and should be rewritten someday. */ if (this->num_events == 0) { -#if __linux__ +#if __GLIBC__ /* attempt to use the colorful GTK+ interface first =) */ try { /* Index: amoeba-1.1/opengl/extensions.cpp =================================================================== --- amoeba-1.1.orig/opengl/extensions.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/opengl/extensions.cpp 2011-11-29 15:50:50.000000000 +0100 @@ -12,7 +12,7 @@ #include <GL/gl.h> -#if __linux__ +#if __GLIBC__ #include <GL/glx.h> extern "C" { void (*glXGetProcAddressARB(const GLubyte *procName))(); @@ -52,7 +52,7 @@ void *GLExtensions::func_ptr(const char *function) { -#if __linux__ +#if __GLIBC__ void *ptr = (void *)glXGetProcAddressARB((GLubyte *)function); #else void *ptr = (void *)wglGetProcAddress(function); @@ -72,7 +72,7 @@ (strcmp(suffix, "EXT") == 0 || strcmp(suffix, "ARB") == 0)) { char *tmp = strdup(function); tmp[strlen(tmp) - 3] = '\0'; -#if __linux__ +#if __GLIBC__ ptr = (void *)glXGetProcAddressARB((GLubyte *)tmp); #else ptr = (void *)wglGetProcAddress(tmp); Index: amoeba-1.1/opengl/glwindow.cpp =================================================================== --- amoeba-1.1.orig/opengl/glwindow.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/opengl/glwindow.cpp 2011-11-29 15:50:50.000000000 +0100 @@ -9,7 +9,7 @@ #include <windows.h> #endif -#ifdef __linux__ +#ifdef __GLIBC__ #include <unistd.h> #include <GL/glx.h> #include <X11/extensions/xf86vmode.h> @@ -56,7 +56,7 @@ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); -#ifdef __linux__ +#ifdef __GLIBC__ // XClearWindow(this->dpy, this->win); #endif } @@ -92,7 +92,7 @@ WindowRect.bottom = (long)height; #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __GLIBC__ XVisualInfo *vi; int dpyWidth = 0, dpyHeight = 0; int i; @@ -113,7 +113,7 @@ GLX_STENCIL_SIZE, 4, None }; -#endif /* __linux__ */ +#endif /* __GLIBC__ */ this->x = 0; this->y = 0; @@ -140,7 +140,7 @@ if( !RegisterClass(&wc) ) throw new FatalException("Couldn't register Window Class"); #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __GLIBC__ /* set best mode to current */ bestMode = 0; @@ -210,7 +210,7 @@ } this->attr.border_pixel = 0; -#endif /* __linux__ */ +#endif /* __GLIBC__ */ /* change screen mode */ if (fullscreen) { @@ -219,13 +219,13 @@ throw new FatalException("Couldn't set requested screen mode."); } #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __GLIBC__ XF86VidModeSwitchToMode(this->dpy, this->screen, modes[bestMode]); XF86VidModeSetViewPort(this->dpy, this->screen, 0, 0); dpyWidth = modes[bestMode]->hdisplay; dpyHeight = modes[bestMode]->vdisplay; XFree(modes); -#endif /* __linux__ */ +#endif /* __GLIBC__ */ } /* create the window */ @@ -256,7 +256,7 @@ throw new FatalException("Could not change screenmode"); } #endif -#ifdef __linux__ +#ifdef __GLIBC__ this->attr.background_pixel = 0; if (fullscreen) { @@ -290,7 +290,7 @@ title, None, NULL, 0, NULL); XMapRaised(this->dpy, this->win); } -#endif /* __linux__ */ +#endif /* __GLIBC__ */ #ifdef WIN32 static PIXELFORMATDESCRIPTOR pfd = { @@ -326,7 +326,7 @@ SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); #endif /* WIN32 */ -#ifdef __linux__ +#ifdef __GLIBC__ /* connect the glx-context to the window */ glXMakeCurrent(this->dpy, this->win, this->ctx); XClearWindow(this->dpy, this->win); @@ -337,14 +337,14 @@ } nice(-7); -#endif /* __linux__ */ +#endif /* __GLIBC__ */ this->resize(0, 0, this->width, this->height); } GLWindow::~GLWindow() { -#ifdef __linux__ +#ifdef __GLIBC__ if (this->ctx) { if (!glXMakeCurrent(this->dpy, None, NULL)) { throw new FatalException("Could not release drawing context."); @@ -355,7 +355,7 @@ #endif if (fullscreen) { -#ifdef __linux__ +#ifdef __GLIBC__ XF86VidModeSwitchToMode(this->dpy, this->screen, &this->deskMode); XF86VidModeSetViewPort(this->dpy, this->screen, 0, 0); #endif @@ -365,7 +365,7 @@ #endif } -#ifdef __linux__ +#ifdef __GLIBC__ XCloseDisplay(this->dpy); #endif @@ -396,7 +396,7 @@ } SwapBuffers(this->hDC); #endif -#ifdef __linux__ +#ifdef __GLIBC__ glXSwapBuffers(this->dpy, this->win); #endif } Index: amoeba-1.1/opengl/glwindow.h =================================================================== --- amoeba-1.1.orig/opengl/glwindow.h 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/opengl/glwindow.h 2011-11-29 15:50:50.000000000 +0100 @@ -5,7 +5,7 @@ #include <windows.h> #endif -#ifdef __linux__ +#ifdef __GLIBC__ #include <GL/glx.h> #include <X11/extensions/xf86vmode.h> #include <X11/keysym.h> @@ -32,7 +32,7 @@ HWND hWnd; HINSTANCE hInstance; #endif -#ifdef __linux__ +#ifdef __GLIBC__ Display *dpy; int screen; Window win; Index: amoeba-1.1/packer/pakfile.cpp =================================================================== --- amoeba-1.1.orig/packer/pakfile.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/packer/pakfile.cpp 2011-11-29 15:50:50.000000000 +0100 @@ -5,7 +5,7 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> -#ifdef __linux__ +#ifdef __GLIBC__ #include <unistd.h> #else #include <io.h> @@ -38,7 +38,7 @@ int err, dirpos, dirsize; unsigned int i; -#if __linux__ +#if __GLIBC__ int fd = open("/usr/share/amoeba/demo.dat", O_RDONLY); #else int fd = open("demo.dat", O_RDONLY | O_BINARY); Index: amoeba-1.1/test-demolib.cpp =================================================================== --- amoeba-1.1.orig/test-demolib.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/test-demolib.cpp 2011-11-29 15:50:51.000000000 +0100 @@ -106,7 +106,7 @@ demo->run(); delete demo; } catch (Exception *e) { -#if __linux__ +#if __GLIBC__ fprintf(stderr, "Unhandled exception: %s\n", e->get_error()); #else MessageBox(NULL, e->get_error(), "Unhandled exception!", 0); Index: amoeba-1.1/util/hashtable.cpp =================================================================== --- amoeba-1.1.orig/util/hashtable.cpp 2011-11-29 15:50:28.000000000 +0100 +++ amoeba-1.1/util/hashtable.cpp 2011-11-29 15:50:50.000000000 +0100 @@ -11,7 +11,7 @@ #include "exception.h" #include "demolib_prefs.h" -#ifndef __linux__ +#ifndef __GLIBC__ #define strcasecmp stricmp #endif
Index: amoeba-1.1/audio/linux_oss.cpp =================================================================== --- amoeba-1.1.orig/audio/linux_oss.cpp 2011-11-29 15:48:23.000000000 +0100 +++ amoeba-1.1/audio/linux_oss.cpp 2011-11-29 15:52:13.000000000 +0100 @@ -12,7 +12,7 @@ #include <string.h> #include <unistd.h> #include <fcntl.h> -#include <linux/soundcard.h> +#include <sys/soundcard.h> #include <sys/types.h> #include <sys/ioctl.h> #include <errno.h>