Template:I18n Getting Started Build KDE4 FreeBSD
| Tip |
|---|
| Note: This page is about KDE 4. It isn't applicable for KDE 3 development. |
Contents |
The page on building KDE4 trunk makes a few assumptions about your environment. Note that FreeBSD's dbus and cmake ports will work (so those sections can be skipped).
The kdesvn-build script can be used on FreeBSD with one change. qt-copy is going to fail to build dbus support due to reasons described below, so you can either run "kdesvn-build qt-copy" once... apply the fix below, then run "kdesvn-build". Alternatively, you can add "-lpthread" to the configure-flags in the qt-copy section of your .kdesvn-buildrc .
This is related to the test app for dbus in qt-copy not linking due to a pthreads dependency in libdbus on FreeBSD. To fix it go to: (builddir)/qt-copy/config.tests/unix/dbus . Then manually run
g++ dbus.o -lpthread -ldbus-1 -L/usr/local/lib -o dbus
That should generate the "dbus" file, and you should be able to continue your qt build as you left off, building dbus this time
For some reason, the configure system will sometimes put -I/usr/local/include (which contains the ports version of qt4 headers) into the general CXXFLAGS variable. Note that there is an INCPATH variable for these include paths which should also contain -I/usr/local/include. The difference iin the compile line, CXXFLAGS's header directory is checked first, whereas the INCPATH sets things up such that the local (current build) headers are checked first. You need to go into the directory where the build is failing (use the previous lines before the error message), and open the Makefile. You should see the the -I/usr/local/include line in the CXXFLAGS line, and you can safetly remove it IF there is a -I/usr/local/include line in INCPATH.
See the above question on dbus not compiling (even if you told it to compile). If Qt can't find the dbus libs, it silently fails and will continue to build without dbus.
Strigi is a prereq for building kdelibs at the moment. As of now (Apr 5), there appears to be an issue with building kdesupport/strigi/src/streams/tests/InputStreamReaderTest.cpp on systems where iconv.h does not live in /usr/include. Use "VERBOSE=1 make" to view the offending command, and then run it, modifying it by adding "-I/usr/local/include" to the big list of -I directives (you may also have to fix a few paths... be sure to put it in the right place!). At this point, the rest of the compile should go smoothly.
Note that a few other parts of kdesupport may or may not build on FreeBSD at the moment, but the only part that is actually required to get libs up and running is kdesupport/strigi.