# $Id: Portfile,v 1.48 2006/04/24 03:01:08 takanori Exp $

#Synced with Fink, Version 3.3.6-1023

PortSystem 1.0
name		qt3
version		3.3.6
revision	1
categories	x11
maintainers	ben@opendarwin.org takanori@opendarwin.org
description	Qt Tool Kit
long_description Qt 3 is a multiplatform C++ application development framework.
homepage	http://www.trolltech.com/products/qt/index.html
platforms	darwin
master_sites	ftp://ftp.trolltech.com/qt/source/:qt3 \
		http://ranger.befunk.com/fink/:fink
distname	qt-x11-free-${portversion}
distfiles	${distname}.tar.bz2:qt3 \
		qt-upstream-patches-0003.tar.bz2:fink
use_bzip2	yes

depends_lib	lib:libGL.1:XFree86 \
		port:cups-headers \
		port:freetype \
		port:jpeg \
		port:libpng \
		port:perl5.8 \
		port:Xft2 \
		port:xrender \
		port:zlib

checksums	${distname}.tar.bz2 md5 dc1384c03ac08af21f6fefab32d982cf \
		qt-upstream-patches-0003.tar.bz2 md5 cfe0cc6a7a8411bce151ebfaaa7e03e7

patchfiles      qt3-tiger.patch dp01.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/0069-fix-minsize.patch } {
			    	system "cd ${worksrcpath} && patch -p0 --fuzz=4 < ${workpath}/${p}"
		}
}

post-patch	{
		foreach file {CompileScript.sh InstallScript.sh} {
		    file 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}
		    file attributes ${worksrcpath}/${file} -permissions 0755
		}
}

configure.args  -lresolv -fast -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

configure       {}

#workaround for upgrade problem.
pre-build   	{if {[file exists ${prefix}/lib/libqassistantclient.a]} { system "ranlib ${prefix}/lib/libqassistantclient.a" }}

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"
}

platform darwin 8 {
	 	post-patch	{
			reinplace "s|#define QT_AOUT_UNDERSCORE||g" \
			  ${worksrcpath}/mkspecs/darwin-g++/qplatformdefs.h
		}
}

platform darwin 7 {
	 	post-patch	{
			reinplace "s|#define QT_AOUT_UNDERSCORE||g" \
			  ${worksrcpath}/mkspecs/darwin-g++/qplatformdefs.h
		}
		patchfiles-delete qt3-tiger.patch
		patchfiles-append qt3-panther.patch
}

platform darwin 6 {
	 	#not tested on OSX 10.2.
		depends_lib-append lib:libdl:dlcompat
		configure.args-delete -lresolv
		patchfiles-delete qt3-tiger.patch
		patchfiles-append qt3-panther.patch
}

variant mysql {
		depends_lib-append lib:libmysqlclient.10:mysql
		configure.args-delete -no-sql-mysql
		configure.args-append -qt-sql-mysql -L${prefix}/lib/mysql \
			-I${prefix}/include/mysql -plugin-sql-mysql
}

variant odbc {
		depends_lib-append lib:libodbc.1:unixODBC
		configure.args-delete -no-sql-odbc
		configure.args-append -qt-sql-odbc -L${prefix}/lib \
			-I${prefix}/include -plugin-sql-odbc
}

variant psql {
		depends_lib-append lib:libpq.2:postgresql
		configure.args-delete -no-sql-psql
		configure.args-append -qt-sql-psql -plugin-sql-psql
}

