# $Id: Portfile 84515 2011-09-27 15:32:54Z jmr@macports.org $

#Synced with Fink, revision 1.25

PortSystem      1.0
name            qt3
conflicts       qt3-mac qt4-mac qt4-mac-devel
version         3.3.8
revision        11
categories      x11
license         {QPL-1 GPL-2}
maintainers     nomaintainer
description     Qt Tool Kit
long_description \
                Qt 3 is a multiplatform C++ application development framework.
homepage        http://qt.nokia.com/
platforms       darwin
master_sites    trolltech::qt3 \
                http://ranger.befunk.com/fink/:fink
distname        qt-x11-free-${version}
distfiles       ${distname}.tar.bz2:qt3 \
                qt-upstream-patches-0004.tar.bz2:fink
use_bzip2       yes
checksums       ${distname}.tar.bz2              md5 cf3c43a7dfde5bfb76f8001102fe6e85 \
                qt-upstream-patches-0004.tar.bz2 md5 1f27d5222813a0a29fe53fd8669e2239

depends_lib     port:mesa \
                port:jpeg \
                port:libpng \
                path:bin/perl:perl5 \
                port:Xft2 \
                port:xrender \
                port:xorg-libXcursor \
                port:xorg-libXinerama \
                port:xorg-libXrandr \
                port:zlib

post-extract {
    eval copy [glob ${filespath}/qt-copy/*] ${workpath}/patches/
}

patchfiles      qt3-tiger.patch dp01.patch macports-x11.patch \
		qt3-png14.patch

patch {
    foreach p ${patchfiles} {
        system "cd ${worksrcpath} && sed -e 's|@PREFIX@|${prefix}|g' < ${portpath}/${filesdir}/${p} | patch -p1"
    }
    #system "perl -pi -e 's|cp \-P|/bin/cp \-RL|' ${worksrcpath}/qmake/Makefile.unix"

    foreach p { patches/qt-3.3.4-print-CJK.patch \
                patches/qt-3.0.5-nodebug.patch \
                patches/qt-x11-free-3.3.2-quiet.patch \
                patches/qt-uic-nostdlib.patch \
                patches/qt-x11-free-3.3.5-uic.patch \
                patches/qt-x11-free-3.3.4-qfontdatabase_x11.patch \
                patches/qt-3.3.3-gtkstyle.patch \
                patches/qt-x11-free-3.3.4-fullscreen.patch } {
                    system "cd ${worksrcpath} && patch -p1 --fuzz=4 < ${workpath}/${p}"
    }
    foreach p { patches/0001-dnd_optimization.patch \
                patches/0002-dnd_active_window_fix.patch \
                patches/0005-qpixmap_mitshm.patch \
                patches/0007-qpixmap_constants.patch \
                patches/0015-qiconview-finditem.patch \
                patches/0016-qiconview-rebuildcontainer.patch \
                patches/0017-qiconview-ctrl_rubber.patch \
                patches/0020-designer-deletetabs.patch \
                patches/0032-fix_rotated_randr.diff \
                patches/0035-qvaluelist-streaming-operator.patch \
                patches/0036-qprogressbar-optimization.patch \
                patches/0038-dragobject-dont-prefer-unknown.patch \
                patches/0044-qscrollview-windowactivate-fix.diff \
                patches/0046-qiconview-no-useless-scrollbar.diff \
                patches/0047-fix-kmenu-width.diff \
                patches/0048-qclipboard_hack_80072.patch \
                patches/0049-qiconview-rubber_on_move.diff \
                patches/0056-khotkeys_input_84434.patch \
                patches/0059-qpopup_has_mouse.patch \
                patches/0060-qpopup_ignore_mousepos.patch \
                patches/0061-qscrollview-propagate-horizontal-wheelevent.patch \
                patches/0073-xinerama-aware-qpopup.patch \
                patches/0076-fix-qprocess.diff \
                patches/0077-utf8-decoder-fixes.diff
                patches/0078-argb-visual-hack.patch
                patches/0079-compositing-types.patch
                patches/0080-net-wm-sync-request.patch
                patches/0082-fix-qdatetime-fromstring.diff
                patches/0083-CVE-2007-4137.diff
                patches/0084-compositing-properties.patch
                patches/0085-fix-buildkey.diff
                patches/0086-revert-qt-khmer-fix.diff
                patches/0087-use-xrandr-1.2.diff
                patches/0088-fix-xinput-clash.diff} {
                    system "cd ${worksrcpath} && patch -p0 --fuzz=4 < ${workpath}/${p}"
    }
}

post-patch {
    foreach file {CompileScript.sh InstallScript.sh} {
        copy ${portpath}/${filesdir}/${file} ${worksrcpath}
        reinplace "s|%p|${prefix}|g" ${worksrcpath}/${file}
        reinplace "s|%N|${name}|g" ${worksrcpath}/${file}
        reinplace "s|%n|${name}|g" ${worksrcpath}/${file}
        reinplace "s|%v|${version}|g" ${worksrcpath}/${file}
        reinplace "s|%r|${revision}|g" ${worksrcpath}/${file}
        reinplace "s|%c|${configure.args}|g" ${worksrcpath}/${file}
        reinplace "s|%d|${destroot}|g" ${worksrcpath}/${file}
        reinplace "s|%i|${destroot}${prefix}|g" ${worksrcpath}/${file}
        reinplace "s|__MAKE__|${build.cmd}|g" ${worksrcpath}/${file}
        file attributes ${worksrcpath}/${file} -permissions 0755
    }
    if {${os.major}>=10 && ${configure.build_arch} == "x86_64"} {
        system "perl -pi -e \"s,\\(int\\)owner\\, \\(int\\),\\(long\\)owner\\, \\(long\\),g\" ${worksrcpath}/src/tools/qmutex_unix.cpp"
    }
    reinplace "s|pipe|pipe ${configure.cflags}|" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|gcc-4.0|${configure.cc}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|g++-4.0|${configure.cxx}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
    reinplace "s|\\.dylib$|.dylib ${configure.cc_archflags}|g" ${worksrcpath}/mkspecs/darwin-g++/qmake.conf
}

configure.args  -buildkey qt3-jaguar \
                -platform darwin-g++ -xplatform darwin-g++ \
                -prefix '${prefix}/lib/qt3' -docdir '${prefix}/share/doc/qt3' \
                -headerdir '${prefix}/include/qt3' -libdir '${prefix}/lib' \
                -release -shared -no-exceptions -thread -cups -stl \
                -qt-gif -plugin-imgfmt-png -plugin-imgfmt-jpeg -plugin-imgfmt-mng \
                -system-libpng -system-libjpeg -system-zlib -largefile \
                -sm -xinerama -xrender -xft -xkb \
                -plugin-sql-sqlite -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql

use_configure       no

#workaround for upgrade problem.
pre-build {
    if {[file exists ${prefix}/lib/libqassistantclient.a]} {
        system "ranlib ${prefix}/lib/libqassistantclient.a"
    }
    foreach {badport badfile} "qt3-mac ${prefix}/include/qt3/qt_mac.h" {
        if {[file exists ${badfile}]} {
            ui_error "${name} cannot be built while ${badport} is active."
            ui_error "Please deactivate ${badport} and try again."
            return -code error "${badport} is installed"
        }
    }
}

# The ranlib above requires the build phase to be run as root
if {[getuid] == 0} {
    build.asroot   yes
}

use_parallel_build  yes
build {
    system "cd ${worksrcpath} && ./CompileScript.sh"
}

destroot {
    system "cd ${worksrcpath} && ./InstallScript.sh"
}
post-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}
    foreach f {FAQ INSTALL LICENSE* MANIFEST PLATFORMS README* changes*} {
        eval xinstall -m 644 [glob ${worksrcpath}/${f}] ${destroot}${prefix}/share/doc/${name}
    }
    foreach f {bin/findtr bin/qt20fix bin/qtrename140} {
        reinplace "s|#!/usr|#!${prefix}|" ${worksrcpath}/${f}
        xinstall -m 755 ${worksrcpath}/${f} ${destroot}${prefix}/share/doc/${name}
    }
}

post-activate {
    system "ranlib ${prefix}/lib/libqassistantclient.a"

    ui_msg "\nBefore using qt3 (qmake),"
    ui_msg "please make sure to set environment variable QTDIR.\n"
    ui_msg "  QTDIR=${prefix}/lib/qt3; export QTDIR\n"
}

universal_variant   no

variant mysql description {Enable MySQL 5 SQL Driver} {
    depends_lib-append      path:lib/mysql5:mysql5
    configure.args-delete   -no-sql-mysql
    configure.args-append   -qt-sql-mysql \
                            -L${prefix}/lib/mysql5/mysql \
                            -I${prefix}/include/mysql5/mysql \
                            -plugin-sql-mysql
}

variant odbc description {Enable unixODBC SQL Driver} {
    depends_lib-append      port:unixODBC
    configure.args-delete   -no-sql-odbc
    configure.args-append   -qt-sql-odbc \
                            -plugin-sql-odbc
}

variant psql description {Enable PostgreSQL 8.3 SQL Driver} {
    depends_lib-append      port:postgresql83
    configure.args-delete   -no-sql-psql
    configure.args-append   -qt-sql-psql \
                            -L${prefix}/lib/postgresql83 \
                            -I${prefix}/include/postgresql83 \
                            -I${prefix}/include/postgresql83/server \
                            -plugin-sql-psql
}

livecheck.type  regex
livecheck.url   http://ftp.silug.org/mirrors/ftp.trolltech.com/qt/source/
livecheck.regex {qt-x11-free-(\d+(?:\.\d+)*)}
