# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 80176 2011-07-06 01:42:50Z ryandesign@macports.org $

PortSystem                  1.0
PortGroup                   archcheck 1.0

name                        glib2-devel
conflicts                   glib2
set my_name                 glib
version                     2.29.10
set branch                  [join [lrange [split ${version} .] 0 1] .]
categories                  devel
maintainers                 ryandesign openmaintainer
license                     GPL-2
homepage                    http://www.gtk.org/
platforms                   darwin
dist_subdir                 glib2
distname                    ${my_name}-${version}
use_bzip2                   yes
use_parallel_build          yes

description                 Library with data structure functions and other constructs

long_description            Glib is a library which includes support routines \
                            for C, such as lists, trees, hashes, memory \
                            allocation, and many other things.

master_sites                gnome:sources/${my_name}/${branch}/ \
                            ftp://ftp.gtk.org/pub/${my_name}/${branch}/

checksums                   sha1    5260de6d68c05b8eb641a22068549eddac429460 \
                            rmd160  8eafb10c1f5c928ae0212d4f071544acde24647e

# ${prefix}/include/glib-2.0/glib/gi18n.h requires -I${prefix}/include to find libintl.h
# See http://trac.macports.org/changeset/27148
patchfiles                  patch-configure.ac.diff \
                            patch-glib-2.0.pc.in.diff \
                            patch-glib_gunicollate.c.diff \
                            patch-gi18n.h.diff \
                            patch-gio_xdgmime_xdgmime.c.diff \
                            patch-gio_gdbusprivate.c.diff

depends_lib                 port:gettext \
                            port:libiconv \
                            port:zlib \
                            port:libffi \
                            path:bin/perl:perl5

archcheck.files             lib/libintl.dylib \
                            lib/libiconv.dylib \
                            lib/libz.dylib \
                            lib/libffi.dylib

use_autoconf                yes

# -lresolv is needed at least on Tiger PPC.
configure.ldflags-append    -lresolv \
                            -bind_at_load

configure.cflags-append     -fstrict-aliasing

configure.args              --enable-static

configure.perl              ${prefix}/bin/perl
configure.env-append        PERL_PATH=${configure.perl} \
                            PKG_CONFIG=false \
                            ZLIB_CFLAGS="-I${prefix}/include" \
                            ZLIB_LIBS="-L${prefix}/lib -lz"

pre-configure {
    set libffi_version      [exec sed -n {s/Version: //p} ${prefix}/lib/pkgconfig/libffi.pc]
    configure.env-append    LIBFFI_CFLAGS="-I${prefix}/lib/libffi-${libffi_version}/include" \
                            LIBFFI_LIBS="-L${prefix}/lib -lffi"
}

post-patch {
    reinplace "s|data_dirs = \"/usr|data_dirs = \"${prefix}/share:/usr|g" ${worksrcpath}/glib/gutils.c
    reinplace "s|path = \"/bin|path = \"${prefix}/bin:/bin|g" ${worksrcpath}/glib/gutils.c ${worksrcpath}/glib/gspawn.c
    reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/gio/xdgmime/xdgmime.c
    reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/gio/gdbusprivate.c
}

post-configure {
    system "ed - ${worksrcpath}/config.h < ${filespath}/config.h.ed"
}

build.args                  V=1

test.run                    yes
test.target                 check

post-destroot {
    file delete ${destroot}${prefix}/lib/charset.alias

    set docdir ${prefix}/share/doc/${name}
    xinstall -d ${destroot}${docdir}
    xinstall -m 644 -W ${worksrcpath} AUTHORS COPYING ChangeLog HACKING NEWS \
        README ${destroot}${docdir}
}

livecheck.type              regex
livecheck.url               http://ftp.gnome.org/pub/GNOME/sources/${my_name}/${branch}/?C=M&O=D
livecheck.regex             ${my_name}-(\[0-9.\]+)\\.tar
