SUMMARY="GLib is a cross-platform software utility library"
DESCRIPTION="GLib is a cross-platform software utility library that began as \
part of the GTK+ project. However, before releasing version 2 of GTK+, the \
project's developers decided to separate non-GUI-specific code from the GTK+ \
platform, thus creating GLib as a separate product. GLib was released as a \
separate library so other developers, those who did not make use of the \
GUI-related portions of GTK+, could make use of the non-GUI portions of the \
library without the overhead of depending on the entire GUI library.
Since GLib is a cross-platform library, applications using it to interface \
with the operating system are usually portable across different operating \
systems without major changes
"
HOMEPAGE="http://www.gtk.org/"
SOURCE_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.38/glib-2.38.1.tar.xz"
CHECKSUM_SHA256="01906c62ac666d2ab3183cc07261b2536fab7b211c6129ab66b119c2af56d159"
LICENSE="GNU LGPL v2"
COPYRIGHT="1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
	1991-2003 Free Software Foundation, Inc.
	1997-2006 University of Cambridge.
	1998-2001, 2003-2010 Red Hat, Inc.
	2007-2009 Nokia Corporation
	2008, 2010 Oracle and/or its affiliates, Inc. All rights
	2008-2010 Codethink Limited
	2008-2010 Collabora Ltd.
	1995-2010 Several others"

REVISION="5"

ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"

PROVIDES="
	glib2$secondaryArchSuffix = $portVersion compat >= 2
	cmd:gdbus$secondaryArchSuffix
	cmd:gdbus_codegen$secondaryArchSuffix
	cmd:gio_querymodules$secondaryArchSuffix
	cmd:glib_compile_resources$secondaryArchSuffix
	cmd:glib_compile_schemas$secondaryArchSuffix
	cmd:glib_genmarshal$secondaryArchSuffix
	cmd:glib_gettextize$secondaryArchSuffix
	cmd:glib_mkenums$secondaryArchSuffix
	cmd:gobject_query$secondaryArchSuffix
	cmd:gresource$secondaryArchSuffix
	cmd:gsettings$secondaryArchSuffix
	cmd:gtester$secondaryArchSuffix
	cmd:gtester_report$secondaryArchSuffix
	lib:libgio_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	lib:libglib_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	lib:libgmodule_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	lib:libgobject_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	lib:libgthread_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	"

REQUIRES="
	haiku$secondaryArchSuffix
	gettext$secondaryArchSuffix
	lib:libiconv$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	lib:libffi$secondaryArchSuffix
	lib:libintl$secondaryArchSuffix
	"

BUILD_REQUIRES="
	devel:libiconv$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	devel:libffi$secondaryArchSuffix
	devel:libintl$secondaryArchSuffix
	"

BUILD_PREREQUIRES="
	haiku${secondaryArchSuffix}_devel
	cmd:gcc$secondaryArchSuffix
	cmd:ld$secondaryArchSuffix
	cmd:libtoolize
	cmd:aclocal
	cmd:autoconf
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	cmd:python
	"

PATCHES="glib2-2.38.1.patchset"

SOURCE_DIR="glib-2.38.1"

BUILD()
{
	libtoolize --force --copy --install
	aclocal
	autoconf
	runConfigure ./configure --disable-maintainer-mode CFLAGS=-D_BSD_SOURCE

	# There seem to be a problem with libtool, and without this some libraries
	# would not be found during the build.
	mkdir -p gobject/.libs
	ln -sf ../../glib/.libs gobject/.libs/lib

	make $jobArgs
}

INSTALL()
{
	make install

	prepareInstalledDevelLibs libgio-2.0 \
					libglib-2.0 \
					libgmodule-2.0 \
					libgobject-2.0 \
					libgthread-2.0
	fixPkgconfig

	# The libtool files reference other libraries using the wrong paths, which
	# creates a lot of confusion. Fix them so correct paths are used.
	local develPackageName="${portName}_devel-$portFullVersion"
	local packageLinksDir=$(dirname $portPackageLinksDir)
	local ffiLinksDir="$packageLinksDir/${develPackageName}/devel~libffi$secondaryArchSuffix/$relativeDevelopLibDir"
	sed -i -e "s,^\(Libs.private.*\)-L.* \(-l.*\)$,\1-L$ffiLinksDir \2," \
		$developLibDir/pkgconfig/gobject-2.0.pc
	local zlibLinksDir="$packageLinksDir/${develPackageName}/devel~libz$secondaryArchSuffix/$relativeDevelopLibDir"
	sed -i -e "s,^\(Libs.private.*\)-L.* \(-l.*\)$,\1-L$zlibLinksDir \2," \
		$developLibDir/pkgconfig/gio-2.0.pc


	# move the glibconfig header into devel as well
	mv $libDir/glib-2.0 $developLibDir

	fixPkgconfig

	# devel package
	packageEntries devel \
		$developDir
}

# ----- devel package -------------------------------------------------------

PROVIDES_devel="
	glib2${secondaryArchSuffix}_devel = $portVersion compat >= 0
	devel:libgio_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	devel:libglib_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	devel:libgmodule_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	devel:libgobject_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	devel:libgthread_2.0$secondaryArchSuffix = 0.3800.1 compat >= 0
	"

REQUIRES_devel="
	glib2$secondaryArchSuffix == $portVersion base
	devel:libffi$secondaryArchSuffix
	devel:libiconv$secondaryArchSuffix
	devel:libintl$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
