You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/src/libcaca-1-fixes.patch

217 lines
6.7 KiB

This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sat, 2 Aug 2014 15:12:50 -0700
Subject: [PATCH 1/3] Fix Windows build for ncurses and slang
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
diff --git a/caca/driver/ncurses.c b/caca/driver/ncurses.c
index 1111111..2222222 100644
--- a/caca/driver/ncurses.c
+++ b/caca/driver/ncurses.c
@@ -187,7 +187,7 @@
* Local functions
*/
-#if defined HAVE_SIGNAL
+#if defined HAVE_SIGNAL && defined SIGWINCH
static RETSIGTYPE sigwinch_handler(int);
static caca_display_t *sigwinch_d; /* FIXME: we ought to get rid of this */
#endif
@@ -237,7 +237,7 @@ static int ncurses_init_graphics(caca_display_t *dp)
ncurses_install_terminal(dp);
#endif
-#if defined HAVE_SIGNAL
+#if defined HAVE_SIGNAL && defined SIGWINCH
sigwinch_d = dp;
signal(SIGWINCH, sigwinch_handler);
#endif
@@ -392,9 +392,9 @@ static void ncurses_display(caca_display_t *dp)
static void ncurses_handle_resize(caca_display_t *dp)
{
+#if defined HAVE_SYS_IOCTL_H
struct winsize size;
-#if defined HAVE_SYS_IOCTL_H
if(ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0)
{
dp->resize.w = size.ws_col;
@@ -587,7 +587,7 @@ static void ncurses_set_cursor(caca_display_t *dp, int flags)
* XXX: following functions are local
*/
-#if defined HAVE_SIGNAL
+#if defined HAVE_SIGNAL && defined SIGWINCH
static RETSIGTYPE sigwinch_handler(int sig)
{
sigwinch_d->resize.resized = 1;
diff --git a/caca/driver/slang.c b/caca/driver/slang.c
index 1111111..2222222 100644
--- a/caca/driver/slang.c
+++ b/caca/driver/slang.c
@@ -131,7 +131,7 @@ static int slang_init_graphics(caca_display_t *dp)
slang_install_terminal(dp);
#endif
-#if defined(HAVE_SIGNAL)
+#if defined(HAVE_SIGNAL) && defined(SIGWINCH)
sigwinch_d = dp;
signal(SIGWINCH, sigwinch_handler);
#endif
@@ -534,7 +534,7 @@ static void slang_write_utf32(uint32_t ch)
#endif
}
-#if defined(HAVE_SIGNAL)
+#if defined(HAVE_SIGNAL) && defined(SIGWINCH)
static RETSIGTYPE sigwinch_handler(int sig)
{
sigwinch_d->resize.resized = 1;
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 3 Aug 2014 10:56:02 -0700
Subject: [PATCH 2/3] Fix pkg-config file and caca-config script
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
diff --git a/caca-config.in b/caca-config.in
index 1111111..2222222 100644
--- a/caca-config.in
+++ b/caca-config.in
@@ -67,7 +67,7 @@ do
echo_libs=yes
;;
caca)
- libs="$libs -lcaca"
+ libs="$libs -lcaca @ZLIB_LIBS@ @CACA_LIBS@"
;;
*)
usage 1 1>&2
diff --git a/caca/caca.pc.in b/caca/caca.pc.in
index 1111111..2222222 100644
--- a/caca/caca.pc.in
+++ b/caca/caca.pc.in
@@ -9,5 +9,5 @@ Version: @VERSION@
Requires:
Conflicts:
Libs: -L${libdir} -lcaca
-Libs.private: @ZLIB_LIBS@
+Libs.private: @ZLIB_LIBS@ @CACA_LIBS@
Cflags: -I${includedir}
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 3 Aug 2014 11:13:23 -0700
Subject: [PATCH 3/3] Fix freeglut detection on Windows
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
diff --git a/configure.ac b/configure.ac
index 1111111..2222222 100644
--- a/configure.ac
+++ b/configure.ac
@@ -232,22 +232,83 @@ fi
if test "${enable_gl}" != "no"; then
ac_cv_my_have_gl="no"
- AC_CHECK_HEADERS(GL/gl.h OpenGL/gl.h,
- [AC_CHECK_HEADERS(GL/glut.h,
- [AC_CHECK_LIB(glut, glutCloseFunc,
- [AC_DEFINE(HAVE_GLUTCLOSEFUNC, 1, Define to 1 if you have the glutCloseFunc function.)])
- AC_CHECK_LIB(glut, glutMainLoopEvent,
- [ac_cv_my_have_gl="yes"])
- AC_CHECK_LIB(glut, glutCheckLoop,
- [ac_cv_my_have_gl="yes"
- AC_DEFINE(HAVE_GLUTCHECKLOOP, 1, Define to 1 if you have the glutCheckLoop function.)])])
- break])
+
+ dnl GLUT is usable if (by order of checking):
+ dnl 1. OpenGL/gl.h (OS X) or GL/gl.h (others) is available.
+ dnl The former implies that GLUT header is GLUT/glut.h.
+ dnl The latter implies that GLUT headers are GL/glut.h and
+ dnl GL/freeglut_ext.h.
+ dnl 2. pkg-config can find it.
+ dnl 3. glutMainLoopEvent() or glutCheckLoop()'s declarations is in the GLUT
+ dnl header(s), and it can be linked.
+
+ dnl Also checking for glutCloseFunc(), but that is not mandatory.
+
+ AC_CHECK_HEADERS([OpenGL/gl.h GL/gl.h], [
+ PKG_CHECK_MODULES([GL], [glut glu gl], [
+ CFLAGS="${CFLAGS} ${GL_CFLAGS}"
+ LIBS="${LIBS} ${GL_LIBS}"
+ AC_MSG_CHECKING([for glutCloseFunc()])
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#ifdef HAVE_OPENGL_GL_H
+ # include <OpenGL/gl.h>
+ # include <GLUT/glut.h>
+ #else
+ # include <GL/gl.h>
+ # include <GL/glut.h>
+ # include <GL/freeglut_ext.h>
+ #endif
+ ]], [[glutCloseFunc(NULL);]])],
+ [AC_DEFINE(HAVE_GLUTCLOSEFUNC, 1,
+ [Define to 1 if you have the glutCloseFunc function.])
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
+ AC_MSG_CHECKING([for glutMainLoopEvent()])
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#ifdef HAVE_OPENGL_GL_H
+ # include <OpenGL/gl.h>
+ # include <GLUT/glut.h>
+ #else
+ # include <GL/gl.h>
+ # include <GL/glut.h>
+ # include <GL/freeglut_ext.h>
+ #endif
+ ]], [[glutMainLoopEvent();]])],
+ [ac_cv_my_have_gl="yes"
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
+ AC_MSG_CHECKING([for glutCheckLoop()])
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM(
+ [[#ifdef HAVE_OPENGL_GL_H
+ # include <OpenGL/gl.h>
+ # include <GLUT/glut.h>
+ #else
+ # include <GL/gl.h>
+ # include <GL/glut.h>
+ # include <GL/freeglut_ext.h>
+ #endif
+ ]], [[glutCheckLoop();]])],
+ [ac_cv_my_have_gl="yes"
+ AC_DEFINE(HAVE_GLUTCHECKLOOP, 1,
+ [Define to 1 if you have the glutCheckLoop function.])
+ AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)])
+ ])
+ break
+ ])
+ AC_MSG_CHECKING([if GLUT is usable])
if test "${ac_cv_my_have_gl}" = "yes"; then
AC_DEFINE(USE_GL, 1, Define to 1 to activate the OpenGL backend driver)
- GL_LIBS="${GL_LIBS} -lGL -lGLU -lglut"
CACA_DRIVERS="${CACA_DRIVERS} gl"
- elif test "${enable_gl}" = "yes"; then
- AC_MSG_ERROR([cannot find OpenGL+FreeGLUT development files])
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ if test "${enable_gl}" = "yes"; then
+ AC_MSG_ERROR([cannot find OpenGL+FreeGLUT development files])
+ fi
fi
PKG_CHECK_MODULES(FTGL, ftgl >= 2.1.3, [FTGL="yes"], [FTGL="no"])
fi