Initial patch for glib-2.24.1 to allow for building on Haiku. Only checked with gcc2 for now. This patched based mostly on Grzegorz Dabrowski's 2.24.0

patch with some minor changes from myself.
This commit is contained in:
Scott McCreary
2010-06-06 22:11:05 +00:00
parent 7a95d3edf5
commit 135b688d6e
3 changed files with 367 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
DESCRIPTION="glib"
HOMEPAGE="http://www.gtk.org/"
SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.24/glib-2.24.1.tar.gz"
CHECKSUM_MD5="e61f2e9636f9d57067c4e3a690b9911a"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd glib-2.24.1
rm -rf aclocal.m4
mkdir -p m4
cp ../../gtk-doc.m4 m4
cp /boot/common/share/aclocal/libtool.m4 m4
cp /boot/common/share/aclocal/ltoptions.m4 m4
cp /boot/common/share/aclocal/ltversion.m4 m4
cp /boot/common/share/aclocal/ltsugar.m4 m4
cp /boot/common/share/aclocal/lt~obsolete.m4 m4
libtoolize --force --copy --install
aclocal -I m4
autoconf
./configure --prefix=/boot/common \
--with-threads=posix \
LDFLAGS=-lnetwork
make
}
INSTALL {
cd glib-2.24.1
make install
}
LICENSE="GNU LGPL v2"
COPYRIGHT="" # TODO: Need to determine who/what to list for the copyright on this one.

61
dev-libs/glib/gtk-doc.m4 Normal file
View File

@@ -0,0 +1,61 @@
dnl -*- mode: autoconf -*-
# serial 1
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_DEFUN([GTK_DOC_CHECK],
[
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
dnl check for tools we added during development
AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
dnl for overriding the documentation installation directory
AC_ARG_WITH([html-dir],
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
[with_html_dir='${datadir}/gtk-doc/html'])
HTML_DIR="$with_html_dir"
AC_SUBST([HTML_DIR])
dnl enable/disable documentation building
AC_ARG_ENABLE([gtk-doc],
AS_HELP_STRING([--enable-gtk-doc],
[use gtk-doc to build documentation [[default=no]]]),,
[enable_gtk_doc=no])
if test x$enable_gtk_doc = xyes; then
ifelse([$1],[],
[PKG_CHECK_EXISTS([gtk-doc],,
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
fi
AC_MSG_CHECKING([whether to build gtk-doc documentation])
AC_MSG_RESULT($enable_gtk_doc)
dnl enable/disable output formats
AC_ARG_ENABLE([gtk-doc-html],
AS_HELP_STRING([--enable-gtk-doc-html],
[build documentation in html format [[default=yes]]]),,
[enable_gtk_doc_html=yes])
AC_ARG_ENABLE([gtk-doc-pdf],
AS_HELP_STRING([--enable-gtk-doc-pdf],
[build documentation in pdf format [[default=no]]]),,
[enable_gtk_doc_pdf=no])
if test -z "$GTKDOC_MKPDF"; then
enable_gtk_doc_pdf=no
fi
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
])

View File

@@ -0,0 +1,273 @@
diff -urN glib-2.24.1/configure.in glib-2.24.1-haiku/configure.in
--- glib-2.24.1/configure.in 2010-05-02 23:58:58.044040192 +0000
+++ glib-2.24.1-haiku/configure.in 2010-06-06 21:09:40.325582848 +0000
@@ -140,6 +140,10 @@
;;
esac
;;
+ *-*-haiku*)
+ glib_native_win32=no
+ glib_pid_type='signed long int'
+ ;;
*)
glib_native_win32=no
glib_pid_type=int
@@ -375,7 +379,7 @@
AC_PATH_PROG(PERL_PATH, [$PERL])
fi
if test "x$PERL_PATH" = x ; then
- PERL_PATH="/usr/bin/env perl"
+ PERL_PATH="/bin/env perl"
fi
AC_SUBST(PERL_PATH)
@@ -1023,14 +1027,14 @@
[res_query("test", 0, 0, (void *)0, 0);],
[AC_MSG_RESULT([yes])],
[save_libs="$LIBS"
- LIBS="-lresolv $LIBS"
+ LIBS="-lnetwork $LIBS"
AC_TRY_LINK([#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>],
[res_query("test", 0, 0, (void *)0, 0);],
- [AC_MSG_RESULT([in -lresolv])
- LIBASYNCNS_LIBADD="-lresolv"],
+ [AC_MSG_RESULT([in -lnetwork])
+ LIBASYNCNS_LIBADD="-lnetwork"],
[LIBS="-lbind $save_libs"
AC_TRY_LINK([#include <resolv.h>],
[res_query("test", 0, 0, (void *)0, 0);],
@@ -3476,6 +3480,10 @@
*-*-beos*)
glib_os="#define G_OS_BEOS"
;;
+ *-*-haiku*)
+ glib_os="#define G_OS_HAIKU
+#define G_OS_UNIX"
+ ;;
*-*-cygwin*)
glib_os="#define G_OS_UNIX
#define G_PLATFORM_WIN32
diff -urN glib-2.24.1/docs/reference/glib/glib-overrides.txt glib-2.24.1-haiku/docs/reference/glib/glib-overrides.txt
--- glib-2.24.1/docs/reference/glib/glib-overrides.txt 2009-03-31 23:04:20.040632320 +0000
+++ glib-2.24.1-haiku/docs/reference/glib/glib-overrides.txt 2010-06-06 21:09:40.327417856 +0000
@@ -215,6 +215,11 @@
#define G_OS_BEOS
</MACRO>
+<MACRO>
+<NAME>G_OS_HAIKU</NAME>
+#define G_OS_HAIKU
+</MACRO>
+
# g_ascii_isxxx
<FUNCTION>
diff -urN glib-2.24.1/docs/reference/glib/glib-sections.txt glib-2.24.1-haiku/docs/reference/glib/glib-sections.txt
--- glib-2.24.1/docs/reference/glib/glib-sections.txt 2010-05-03 01:23:07.031981568 +0000
+++ glib-2.24.1-haiku/docs/reference/glib/glib-sections.txt 2010-06-06 21:09:40.338165760 +0000
@@ -131,6 +131,7 @@
G_OS_WIN32
G_OS_BEOS
G_OS_UNIX
+G_OS_HAIKU
<SUBSECTION>
G_DIR_SEPARATOR
diff -urN glib-2.24.1/docs/reference/glib/tmpl/macros.sgml glib-2.24.1-haiku/docs/reference/glib/tmpl/macros.sgml
--- glib-2.24.1/docs/reference/glib/tmpl/macros.sgml 2010-05-03 01:23:06.032768000 +0000
+++ glib-2.24.1-haiku/docs/reference/glib/tmpl/macros.sgml 2010-06-06 21:09:40.348127232 +0000
@@ -34,6 +34,11 @@
BeOS-specific code in "&num;ifdef G_OS_BEOS".
</para>
+<!-- ##### MACRO G_OS_HAIKU ##### -->
+<para>
+This macro is defined only on Haiku. So you can bracket
+Haiku-specific code in "&num;ifdef G_OS_HAIKU".
+</para>
<!-- ##### MACRO G_OS_UNIX ##### -->
diff -urN glib-2.24.1/gio/gunixmounts.c glib-2.24.1-haiku/gio/gunixmounts.c
--- glib-2.24.1/gio/gunixmounts.c 2009-03-31 23:04:20.054525952 +0000
+++ glib-2.24.1-haiku/gio/gunixmounts.c 2010-06-06 21:09:40.359661568 +0000
@@ -656,6 +656,23 @@
return return_list;
}
+
+#elif defined(G_OS_HAIKU)
+
+static char *
+get_mtab_monitor_file (void)
+{
+ return NULL;
+}
+
+static GList *
+_g_get_unix_mounts (void)
+{
+ /* TODO: implement me */
+ GList *return_list = NULL;
+ return return_list;
+}
+
#else
#error No _g_get_unix_mounts() implementation for system
#endif
@@ -1040,6 +1057,16 @@
{
return _g_get_unix_mounts ();
}
+
+#elif defined(G_OS_HAIKU)
+
+static GList *
+_g_get_unix_mount_points (void)
+{
+ GList *return_list = NULL;
+ return return_list;
+}
+
#else
#error No g_get_mount_table() implementation for system
#endif
diff -urN glib-2.24.1/gio/makegioalias.pl glib-2.24.1-haiku/gio/makegioalias.pl
--- glib-2.24.1/gio/makegioalias.pl 2009-03-31 23:04:20.004456448 +0000
+++ glib-2.24.1-haiku/gio/makegioalias.pl 2010-06-06 21:09:40.361496576 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/env perl
my $do_def = 0;
diff -urN glib-2.24.1/gio/tests/memory-output-stream.c glib-2.24.1-haiku/gio/tests/memory-output-stream.c
--- glib-2.24.1/gio/tests/memory-output-stream.c 2010-04-13 13:33:16.043253760 +0000
+++ glib-2.24.1-haiku/gio/tests/memory-output-stream.c 2010-06-06 21:09:50.734003200 +0000
@@ -91,6 +91,8 @@
GOutputStream *mo;
GDataOutputStream *o;
int i;
+ gsize data_size_fun, data_size_prop;
+ gpointer data_fun, data_prop;
GError *error = NULL;
g_test_bug ("605733");
@@ -107,13 +109,11 @@
g_assert_no_error (error);
}
- gsize data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo));
- gsize data_size_prop;
+ data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo));
g_object_get (mo, "data-size", &data_size_prop, NULL);
g_assert_cmpint (data_size_fun, ==, data_size_prop);
- gpointer data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo));
- gpointer data_prop;
+ data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo));
g_object_get (mo, "data", &data_prop, NULL);
g_assert_cmphex (data_fun, ==, data_prop);
diff -urN glib-2.24.1/glib/gen-script-table.pl glib-2.24.1-haiku/glib/gen-script-table.pl
--- glib-2.24.1/glib/gen-script-table.pl 2009-03-31 23:04:20.056885248 +0000
+++ glib-2.24.1-haiku/glib/gen-script-table.pl 2010-06-06 21:09:40.363069440 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/env perl
#
# Script to convert http://www.unicode.org/Public/UNIDATA/Scripts.txt
# into a machine-readable table.
diff -urN glib-2.24.1/glib/gen-unicode-tables.pl glib-2.24.1-haiku/glib/gen-unicode-tables.pl
--- glib-2.24.1/glib/gen-unicode-tables.pl 2009-03-31 23:04:20.061603840 +0000
+++ glib-2.24.1-haiku/glib/gen-unicode-tables.pl 2010-06-06 21:09:40.379584512 +0000
@@ -1,4 +1,4 @@
-#! /usr/bin/perl -w
+#! /bin/env perl
# Copyright (C) 1998, 1999 Tom Tromey
# Copyright (C) 2001 Red Hat Software
diff -urN glib-2.24.1/glib/gstdio.c glib-2.24.1-haiku/glib/gstdio.c
--- glib-2.24.1/glib/gstdio.c 2010-05-02 23:58:59.055836672 +0000
+++ glib-2.24.1-haiku/glib/gstdio.c 2010-06-06 21:09:40.392167424 +0000
@@ -47,7 +47,7 @@
#include "galias.h"
-#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS)
+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined (G_OS_HAIKU)
#error Please port this to your operating system
#endif
diff -urN glib-2.24.1/glib/gstrfuncs.c glib-2.24.1-haiku/glib/gstrfuncs.c
--- glib-2.24.1/glib/gstrfuncs.c 2010-04-13 13:33:16.040632320 +0000
+++ glib-2.24.1-haiku/glib/gstrfuncs.c 2010-06-06 21:09:40.403439616 +0000
@@ -1410,7 +1410,7 @@
#ifdef HAVE_STRSIGNAL
const char *msg_locale;
-#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN)
+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN)
extern const char *strsignal(int);
#else
/* this is declared differently (const) in string.h on BeOS */
diff -urN glib-2.24.1/glib/gutils.c glib-2.24.1-haiku/glib/gutils.c
--- glib-2.24.1/glib/gutils.c 2010-04-13 13:33:16.062914560 +0000
+++ glib-2.24.1-haiku/glib/gutils.c 2010-06-06 21:09:40.414711808 +0000
@@ -478,7 +478,7 @@
}
path = g_getenv ("PATH");
-#if defined(G_OS_UNIX) || defined(G_OS_BEOS)
+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU)
if (path == NULL)
{
/* There is no `PATH' in the environment. The default
diff -urN glib-2.24.1/glib/makegalias.pl glib-2.24.1-haiku/glib/makegalias.pl
--- glib-2.24.1/glib/makegalias.pl 2009-03-31 23:04:20.055836672 +0000
+++ glib-2.24.1-haiku/glib/makegalias.pl 2010-06-06 21:09:40.416546816 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/env perl
my $do_def = 0;
diff -urN glib-2.24.1/gobject/makegobjectalias.pl glib-2.24.1-haiku/gobject/makegobjectalias.pl
--- glib-2.24.1/gobject/makegobjectalias.pl 2009-03-31 23:04:20.025952256 +0000
+++ glib-2.24.1-haiku/gobject/makegobjectalias.pl 2010-06-06 21:09:40.426508288 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/env perl
my $do_def = 0;
diff -urN glib-2.24.1/gobject/marshal-genstrings.pl glib-2.24.1-haiku/gobject/marshal-genstrings.pl
--- glib-2.24.1/gobject/marshal-genstrings.pl 2009-03-31 23:04:20.024641536 +0000
+++ glib-2.24.1-haiku/gobject/marshal-genstrings.pl 2010-06-06 21:09:40.434372608 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/bin/env perl
open (List, "gmarshal.list");
diff -urN glib-2.24.1/tests/gen-casefold-txt.pl glib-2.24.1-haiku/tests/gen-casefold-txt.pl
--- glib-2.24.1/tests/gen-casefold-txt.pl 2009-03-31 23:04:20.060030976 +0000
+++ glib-2.24.1-haiku/tests/gen-casefold-txt.pl 2010-06-06 21:09:40.446169088 +0000
@@ -1,4 +1,4 @@
-#! /usr/bin/perl -w
+#! /bin/env perl
# Copyright (C) 1998, 1999 Tom Tromey
# Copyright (C) 2001 Red Hat Software
diff -urN glib-2.24.1/tests/gen-casemap-txt.pl glib-2.24.1-haiku/tests/gen-casemap-txt.pl
--- glib-2.24.1/tests/gen-casemap-txt.pl 2009-03-31 23:04:20.044564480 +0000
+++ glib-2.24.1-haiku/tests/gen-casemap-txt.pl 2010-06-06 21:09:40.448004096 +0000
@@ -1,4 +1,4 @@
-#! /usr/bin/perl -w
+#! /bin/env perl
# Copyright (C) 1998, 1999 Tom Tromey
# Copyright (C) 2001 Red Hat Software