Page 3 of 3

Posted: Mon Mar 22, 2004 7:11 am
by dexter1
foetz wrote:got the qt pack but qmake is missing!!!! the whole folder!

Ah woops, the bin/qmake was a link to qmake/qmake. Should have spotted that one. You only need the qmake binary? Or do you also need the qmake dir with object files?

My experience compiling KDE 3.1.1 and qt-3.1.2

Posted: Thu Mar 25, 2004 3:12 pm
by syschuck
Hi All,

I wanted to pass along some things I ran into while compiling KDE 3.1.1. I haven't
got the energy to try KDE 3.2 right now, but soon. First I was using MIPSPro 7.3 on Irix 6.5.17m. First, there are a lot of paramerters in the configs that need to be set, so to
make life easy I started using a '' script that would contain all of the things
configure needs. This can save hours of time. The one I used for qt-3.1.2 was the following:

# QT Build script
export QTDIR=/sw/kde31/qt
export KDEDIR=/sw/kde31
export MANPATH=$QTDIR/doc/man:$MANPATH
export PATH=$QTDIR/bin:$PATH

#export CC="cc -mips3 -n32"
#export CXX="CC -mips3 -n32"
#export CXXFLAGS="-O3 -LANG:std -OPT:Olimit_opt=on -OPT:Olimit=8500 -woff 1021,1209,1233,1314,1355,1375,1506"
export MAKE="gmake -j40"

# For some reason, this is the only one that works
#./configure -shared -thread -qt-gif -platform irix-n32

./configure -prefix /sw/kde31/qt -shared -debug -thread -qt-gif -stl -qt-libpng
-qt-zlib -qt-libjpeg -qt-libmng -platform irix-cc -verbose

Next; there is a bug in the either MIPSPro or QT (I'm not sure which) that causes a
problem with the superclass name space. The work around for qt.3.1.2 was to fix
QCString purestSuperClassName() in moc.y. The original patch is here, but I found
that it's easier just to edit moc_yacc.cpp directly.

// CBS: Note: This needs to go into moc_yacc.cpp
// since moc.y does NOT automatically compiled to moc_yacc.cpp
// edit moc_yacc.cpp directly.
--- src/moc/moc.y.orig Mon Jun 10 09:15:59 2002
+++ src/moc/moc.y Mon Jun 10 13:16:56 2002
@@ -2327,18 +2327,7 @@
QCString purestSuperClassName()
- QCString sc = g->superClassName;
- QCString c = g->className;
- int pos = sc.findRev( "::" );
- if ( pos != -1 ) {
- sc = sc.right( sc.length() - pos - 2 );
- pos = c.findRev( "::" );
- if ( pos != -1 )
- c = c.right( c.length() - pos - 2 );
- if ( sc == c )
- sc = g->superClassName;
- }
- return sc;
+ return g->superClassName;
That was it for qt. Next was to compile some needed libraries;
libart_lgpl-2.3.10, libxml2-2.5.1, libxslt-1.0.23,
openssl-0.9.7, pcre-3.4, bzip2-1.0.2, jpeg-6b.

With each one of these; I used a build script similar to below.

export LD_LIBRARYN32_PATH=/sw/kde31/qt/lib:/sw/kde31/lib:/usr/lib32:/lib32:/usr/freeware/lib32:/usr/local/lib32
export QTDIR=/sw/kde31/qt
export KDEDIR=/sw/kde31
export CC="cc -mips3 -n32"
export CXX="CC -mips3 -n32"
export CXXFLAGS="-O2 -LANG:std -OPT:Olimit_opt=on -OPT:Olimit=8500 -woff 1021,1209,1233,1314,1355,1375,1506"
export MAKE="gmake -j35"
./configure --prefix=/sw/kde31

After that it was on to the kdelibs, kdebase and the reset. In kdebase I used the following build script,
export LD_LIBRARYN32_PATH=/sw/kde31/qt/lib:/sw/kde31/lib:/usr/lib32:/lib32:/usr/freeware/lib32:/usr/local/lib32
export QTDIR=/sw/kde31/qt
export KDEDIR=/sw/kde31
export CC="cc -mips3 -n32"
export CXX="CC -mips3 -n32"
export CFLAGS="-O2 -n32 -mips3"
export CXXFLAGS="-O2 -n32 -mips3 -LANG:std -ptused -prelink -OPT:Olimit_opt=on -OPT:Olimit=8500 -woff 1021,1209,1233,1314,13
export LDFLAGS="-n32"
export MAKE="/sw/freeware/bin/gmake -j40"
./configure --prefix=/sw/kde31 --with-qtdir=/sw/kde31/qt --with-qt-dir=/sw/kde31/qt --with-qt-include=/sw/kde31/qt/include --
with-qt-libraries=/sw/kde31/qt/lib --with-extra-includes=/sw/kde31/include:/usr/freeware/include --with-extra-libs=/sw/kde31
/lib:/usr/freeware/lib32 --with-ssl-dir=/sw/kde31 --enable-mt --with-shadow --with-x

--------- -----------

Considering the size of KDE, I didn't have too many problems but there were a few and
almost always it was a name space issue; things like changing
ofstream -> std::ofstream

kate was especially annoying because the patched moc compiler didn't know how to handle
name spaces already defined. Eg. MarkInterface::MarkTypes should be
KTextEditor::MarkInterface::MarkTypes. Perhaps MIPSPro or the new qt has the issue
with moc fixxed. If not be prepared to compile - fix and compile and fix. For the most
part though there are few real gotcha's in the whole of KDE 3.1.1 (all libs included), I made
198 edits. Many where
Of those, I think only ksysguardd/Irix/NetDev.c has an obvious bug in it. The rest are just
name space issues from the moc compiler bug. All and all, not too bad. Even Koffice went
pretty smoothly.

Anyway, I hope that helps in your porting efforts. If I can get some time, I may join you all
in porting efforts and see if the moc problem has been fixxed.

Best Regards. :D

Posted: Fri Mar 26, 2004 7:14 am
by dexter1
I'm currently fixing some symbolic link deficiencies in my qt tardist package.

Be patient; it's a virtue.

Posted: Sat Mar 27, 2004 2:16 am
by dexter1
I've uploaded the new qt331-mips3.tardist onto neko's server and on my mirror ... s3.tardist

It fixes the absence of qmake, symbolic links to non existant includes and the inclusion of phrasebooks and the templates directory. As Whiter said, that directory does contain two header files with brackets in them, which chokes the entire swpkg build. I had an idea of fixing that with a postop script/command, but abandoned it. I deleted the brackets from the names and i'll leave it at that, until i have a bright idea.

Posted: Sat Mar 27, 2004 2:21 am
by nekonoko
I've moved this into your contrib directory :)