[Kde-bindings] qtruby-1.0.4 build and install
Han Holl
han.holl at pobox.com
Sun Oct 17 09:42:36 UTC 2004
Hi Richard,
I just downloaded qtruby-1.0.4, and I suspect that for someone new to qtruby
and smoke the building and installing instructions are not quite complete or
clear.
Here's what happens: you unpack the archive, and cd to the root directory.
You do a ls. Ah, fine, there's an INSTALL and a README file.
Unfortunately, both are as good as useless, or maybe worse, misleading.
Some searching (some people might have given up by now) yields a file
qtruby/README.build. This actually has some useful information, but it also
has it's problems:
CVS Snapshot
------------
If building from a CVS snapshot, this initial make command in needed:
$ make -f Makefile.cvs
Hey, I'm not building from a CVS snapshot, am I ? I followed the qtruby link
from the RAA.
Well, if nothing else works, maybe I _am_ working from a CVS snapshot.
Then it makes sense to do 'make -f Makefile.cvs' in the same directory that I
found the README.build file, but alas, there's no Makefile.cvs there.
Ok, let's try it in the root directory:
This Makefile is only for the CVS repository
This will be deleted before making the distribution
*** Creating acinclude.m4
*** Creating list of subdirectories
*** Creating Makefile.am
*** Creating configure.files
*** Creating configure.in
*** Creating aclocal.m4
*** Creating configure
*** Creating config.h template
*** Creating Makefile templates
libsmokekde_la_LDFLAGS: variable `KDE_RPATH' is used but `KDE_RPATH' is
undefined
libsmokeqt_la_LDFLAGS: variable `KDE_RPATH' is used but `KDE_RPATH' is
undefined
make[1]: *** [cvs] Error 1
make: *** [all] Error 2
Oops, errors!. But at least I've got a configure file now. So I might try
./configure --with-smoke="qt"
now. Yes that seems to work.
Then what ? The README.build proceeds with:
$ cd qtruby/rubylib/qtruby
$ ruby extconf.rb --with-smoke-dir=/opt/kde3 \
--with-qt-dir=/home/duke/src/kde/HEAD/qt-copy
$ make
$ make install
Does this mean that we do _not_ do 'make; make install' in the root directory?
And what do I use for --with-smoke-dir=???. If I do 'locate libsmoke' I get:
/usr/lib/libsmokeqt.so.1.0.0
/usr/lib/libsmokeqt.so.1
/usr/lib/libsmokeqt.la
which seems a place that should be easy to find, so let's try:
cd qtruby/rubylib/qtruby
ruby extconf.rb --with-qt-dir=$QTDIR
This seems to work, so I'll try:
make
make install
install -c -p -m 0755 qtruby.so /usr/lib/ruby/site_ruby/1.8/i686-linux-gnu
install -c -p -m 0644 ./lib/Qt/Qt.rb /usr/lib/ruby/site_ruby/1.8/Qt
install -c -p -m 0644 ./lib/Qt/qtruby.rb /usr/lib/ruby/site_ruby/1.8/Qt
If I do ls -l /usr/lib/ruby/site_ruby/1.8/i686-linux-gnu
I get (edited):
-rwxr-xr-x 1 root root 1150 Oct 8 20:08 qtruby.la
-rwxr-xr-x 1 root root 812635 Oct 17 10:59 qtruby.so
lrwxrwxrwx 1 root root 15 Oct 8 20:17 qtruby.so.0 ->qtruby.so.0.0.0
-rwxr-xr-x 1 root root 167193 Oct 8 20:08 qtruby.so.0.0.0
-rwxr-xr-x 1 root root 825 Sep 13 23:06 qui.la
lrwxrwxrwx 1 root root 12 Oct 8 22:55 qui.so -> qui.so.0.0.0
lrwxrwxrwx 1 root root 12 Oct 8 22:55 qui.so.0 ->
qui.so.0.0.0
-rwxr-xr-x 1 root root 13773 Sep 13 23:06 qui.so.0.0.0
So I've got a new qtruby.so, but the old one is also still there, and I'm not
entirely sure which version ruby will dynamically link to. Also, on my system
'locale libsmoke' worked, because I've got the kdebinding rpm installed, but
what about people who don't have that ?
And the other stuff, qui.so and the programs like rbuic, rbqtsh and rbqtapi
haven't been rebuild at all.
Luckily, there's also some stuff for Mac OS X, which gives hints about the
rest of the build process.
So I continue with:
cd ../designer/rbuic/
qmake -makefile
make
cd ../uilib/
ruby extconf.rb --with-qtruby-include=../../qtruby --with-qt-dir=$QTDIR
make
And here my luck ends:
g++ -fPIC -g -O2 -fPIC -I. -I/usr/lib/ruby/1.8/i686-linux-gnu
-I/usr/lib/ruby/1.8/i686-linux-gnu -I. -I/usr/lib/qt-3.1/include
-I/usr/kerberos/include -I../../../../smoke -I../../qtruby -c qui.cpp
gcc -shared -L'/usr/lib' -L'/usr/lib/qt-3.1/lib' -o qui.so qui.o
-bundle_loader ../../qtruby/qtruby.bundle -lsmokeqt -lqui -lqt-mt -lstdc++
-lruby -ldl -lcrypt -lm -lc
gcc: ../../qtruby/qtruby.bundle: No such file or directory
make: *** [qui.so] Error 1
So maybe I should have done a 'make' in the root directory after all ?
Let's try.
cd /usr/src/ruby/qtruby-1.0.4
make
[ lots of output snipped ]
gcc -shared -L'/usr/lib' -L'/usr/lib/qt-3.1/lib' -o qui.so qui.o
-bundle_loader ../../qtruby/qtruby.bundle -lsmokeqt -lqui -lqt-mt -lstdc++
-lruby -ldl -lcrypt -lm -lc
gcc: ../../qtruby/qtruby.bundle: No such file or directory
make[5]: *** [qui.so] Error 1
Sorry for the lousy formatting.
I'm kind of stuck now.
Maybe I shouldn't have started with 'make -f Makefile.cvs' after all ?
I hope you agree that installing is kind of complicated right now. What would
be nice is a small README explaining the role off the different components
(like qtruby.so, qtruby.rb libsmoke and so on).
I think the first time around, I build and installed an new smoke library, but
never acutally used that because I had an earlier version installed. This
didn't seem to do any harm though.
Cheers,
More information about the Kde-bindings
mailing list