2011/12/22 Bruce Dubbs bruce.dubbs@gmail.com:
/dev/ammo42 wrote:
On Wed, 21 Dec 2011 22:51:28 -0600 Bruce Dubbs bruce.dubbs@gmail.com wrote:
I've been struggling a bit with building kdeadmin-3.5.13.
I have qt in /opt/qt and Trinity base in /opt/trinity. Configure fails to find tqt and then thinks it's version 4. It doesn't find qt and fails. This can be overcome with:
CPPFLAGS='-I/opt/trinity/include/tqt' \ ./configure --prefix=/opt/trinity ...
The --with-qt-includes option does not solve the problem, but the CPPFLAGS can be either before or after ./configure.
Environment variables are:
PATH=/opt/trinity/bin:/usr/local/bin:/bin:/usr/bin:\ /opt/texlive/2011/bin/x86_64-linux:\ /opt/llvm/bin:/opt/qt/bin:/opt/xorg/bin:/sbin:/usr/sbin
PKG_CONFIG_PATH=:/opt/trinity/lib/pkgconfig:\ /usr/local/lib/pkgconfig:\ /opt/qt/lib/pkgconfig:\ /opt/xorg/lib/pkgconfig:\ /opt/xorg/share/pkgconfig
QTDIR=/opt/qt
Then the make fails in several places. What I finally found that works is:
make LDFLAGS='-lqt -lkdecore' \ TQTDCOPIDL=dcopidl2cpp \ TQTDCOPIDL2CPP=dcopidl2cpp
This again tells me that configure didn't do it's job. In the Makefile, both TQTDCOPIDL and TQTDCOPIDL2CPP are blank. The LIB_KDECORE variable is set correctly but is not used. LIBTQT_LDFLAGS is set to -ltqt, but that doesn't do the job.
There are two programs in /opt/trinity/bin: dcopidl2cpp-tqt and dcopidl-tqt, but they do not work with the input in the Makefile.
I did not have any of these problems in KDE3. Is there something I'm missing here?
Yes, you forgot the --enable-closure option of ./configure that is mentioned as "undocumented but necessary" at http://www.trinitydesktop.org/wiki/bin/view/Developers/HowToBuild . Without it kdeadmin-3.5.10 doesn't build on Trinity without the same hacks as yours either.
When I do:
./configure --prefix=/opt/trinity --enable-closure
I get: ... Detected TQt4... ... configure: error: Qt (>= Qt 4.3 and < 5.0) (headers and libraries) not found. Please check your installation!
--enable-closure adjusts KDE_USE_CLOSURE_TRUE, KDE_USE_CLOSURE_FALSE and KDE_NO_UNDEFINED. The first two are not used in kdeadmin. The third sets the linker to "-Wl,--no-undefined -Wl,--allow-shlib-undefined". That fixes the need to use LDFLAGS, but it doesn't help detect dcopidl2cpp and dcopidl2cpp.
So:
CPPFLAGS='-I/opt/trinity/include/tqt' \ ./configure --prefix=/opt/trinity --enable-closure make TQTDCOPIDL=dcopidl2cpp TQTDCOPIDL2CPP=dcopidl2cpp
now works. I suppose I could use: export CPLUS_INCLUDE_PATH='/opt/trinity/include/tqt' ./configure --prefix=/opt/trinity --enable-closure as an alternative to CPPFLAGS.
And yes, the instructions for 3.5.10 worked fine without hacks:
http://www.linuxfromscratch.org/blfs/view/svn/kde/kdeadmin.html
1) Did you install TQtinterface in /usr? I had the same error, and apparentely autotools will refuse to detect it correctly if it's not installed in /usr. 2) Try specifying manually paths to Qt3 in your ./configure (--with-qt-dir= option if I remember correctly).
For building trinity, check out arch PKGBUILDs in our git tree. They are pretty much bash scripts with some variables used by pacman to create binary packages. What you need to look at is the build() function.