Cossins Veteran
Joined: 21 Mar 2003 Posts: 1136 Location: Copenhagen, Denmark
|
Posted: Wed Jul 23, 2003 9:37 pm Post subject: Ebuild for Qt 3.2 (final) |
|
|
This is really just a slightly modified version of the beta2-ebuild...
I'm testing it right now - I don't see a reason for it no to work, though...
Code: | # Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/x11-libs/qt/qt-3.2.ebuild,v 1.1 2003/06/23 21:54:16 caleb Exp $
inherit eutils
IUSE="cups nas postgres opengl mysql odbc gif"
MY_P="qt-x11-free-3.2.0"
S=${WORKDIR}/${MY_P}
DESCRIPTION="QT version ${PV}"
SLOT="3"
LICENSE="QPL-1.0 | GPL-2"
KEYWORDS="~x86"
SRC_URI="ftp://ftp.trolltech.com/qt/source/${MY_P}.tar.bz2"
HOMEPAGE="http://www.trolltech.com/"
DEPEND="virtual/x11
media-libs/libpng
media-libs/lcms
media-libs/jpeg
>=media-libs/libmng-1.0.0
>=media-libs/freetype-2
virtual/xft
nas? ( >=media-libs/nas-1.4.1 )
odbc? ( >=dev-db/unixODBC-2.0 )
mysql? ( >=dev-db/mysql-3.2.10 )
opengl? ( virtual/opengl virtual/glu )
postgres? ( >=dev-db/postgresql-7.2 )"
RDEPEND="$DEPEND"
#doc? ( ~app-doc/qt-docs- )"
QTBASE=/usr/qt/3
export QTDIR=${S}
src_unpack() {
export QTDIR=${S}
unpack ${A}
cd ${S}
cp configure configure.orig
sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure
cd mkspecs/linux-g++
# use env's $CC, $CXX
if [ -n "$CXX" ]; then
einfo 'Using environment definition of $CXX'
cp qmake.conf qmake.conf.orig
sed -e "s:= g++:= ${CXX}:" qmake.conf.orig > qmake.conf
fi
if [ -n "$CC" ]; then
einfo 'Using environment definition of $CC'
cp qmake.conf qmake.conf.orig
sed -e "s:= gcc:= ${CC}:" qmake.conf.orig > qmake.conf
fi
# hppa and alpha people, please review the following
# hppa need some additional flags
if [ "${ARCH}" = "hppa" ]; then
echo "QMAKE_CFLAGS += -fPIC -ffunction-sections" >> qmake.conf
echo "QMAKE_CXXFLAGS += -fPIC -ffunction-sections" >> qmake.conf
echo "QMAKE_LFLAGS += -ffunction-sections -Wl,--stub-group-size=25000" >> qmake.conf
fi
# on alpha we need to compile everything with -fPIC
if [ ${ARCH} == "alpha" ]; then
cp qmake.conf qmake.conf.orig
sed -e "s:= -O2:= -O2 -fPIC:" qmake.conf.orig > qmake.conf
cat >> ${S}/tools/designer/editor/editor.pro <<_EOF_
QMAKE_CFLAGS += -fPIC
QMAKE_CXXFLAGS += -fPIC
_EOF_
fi
}
src_compile() {
# fix #11144; qt wants to create lock files etc. in that directory
[ -d "$QTBASE/etc/settings" ] && addwrite "$QTBASE/etc/settings"
export QTDIR=${S}
export LDFLAGS="-ldl"
use cups || myconf="${myconf} -no-cups"
use nas && myconf="${myconf} -system-nas-sound"
use gif && myconf="${myconf} -qt-gif"
use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql"
use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/server"
use odbc && myconf="${myconf} -plugin-sql-odbc"
use opengl && myconf="${myconf} -enable-module=opengl" || myconf="${myconf} -disable-opengl"
[ -n "$DEBUG" ] && myconf="${myconf} -debug" || myconf="${myconf} -release -no-g++-exceptions"
# avoid wasting time building things we won't install
rm -rf tutorial examples
export YACC='byacc -d'
./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \
-qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \
-system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \
linux-g++ -xrender -prefix ${QTBASE} -fast ${myconf} || die
export QTDIR=${S}
emake src-qmake src-moc sub-src sub-tools || die
}
src_install() {
export QTDIR=${S}
cd ${S}
# binaries
into $QTBASE
dobin bin/*
# libraries
dolib lib/libqt-mt.so.3.2.0 lib/libqui.so.1.0.0 lib/lib{editor,qassistantclient,designer}.a
cd ${D}$QTBASE/lib
for x in libqui.so
do
ln -s $x.1.0.0 $x.1.0
ln -s $x.1.0 $x.1
ln -s $x.1 $x
done
# version symlinks - 3.2.0->3.2->3->.so
ln -s libqt-mt.so.3.2.0 libqt-mt.so.3.2
ln -s libqt-mt.so.3.2 libqt-mt.so.3
ln -s libqt-mt.so.3 libqt-mt.so
# libqt -> libqt-mt symlinks
ln -s libqt-mt.so.3.2.0 libqt.so.3.2.0
ln -s libqt-mt.so.3.2 libqt.so.3.2
ln -s libqt-mt.so.3 libqt.so.3
ln -s libqt-mt.so libqt.so
# includes
cd ${S}
dodir ${QTBASE}/include/private
cp include/* ${D}/${QTBASE}/include/
cp include/private/* ${D}/${QTBASE}/include/private/
# misc
insinto /etc/env.d
doins ${FILESDIR}/{45qt3,50qtdir3}
# misc build reqs
dodir ${QTBASE}/mkspecs
cp -R ${S}/mkspecs/linux-g++ ${D}/${QTBASE}/mkspecs/
sed -e "s:${S}:${QTBASE}:g" \
${S}/.qmake.cache > ${D}${QTBASE}/.qmake.cache
# plugins
cd ${S}
plugins=`find plugins -name "lib*.so" -print`
for x in $plugins; do
insinto ${QTBASE}/`dirname $x`
doins $x
done
} |
- Simon |
|