Compiling the Borg Source


Make sure to get the latest sources, go to the topdirectory and either type make. Make will inform you of the possible actual make commands. Currently these are a combination of a frontend with a borgcore. There are two possible borgcores. cborg and bborg:

cborg: the borgcore written in C.
bborg: the borgcore written in Borg itself.

The possible user interfaces are:

kborg: a KDE 1 frontend
wborg: a windows frontend
tborg: a text frontend
hborg: a html frontend

Specify which frontend and borgcore you want is done by the two first letter of the make command. For example make kcborg will compile a KDE frontend and link it to a cborgcore. make kbborg will compile a KDE frontend and link it with a bborgcore. And so on.

Of course, it's quite difficult to make source which compiles on different architectures. Teherefore we created a file Defines.h in the toplevel directory which checks your hostname and creates a set of defines. This file can and should be changed to refelect your specific machine. The Defines.h file contains platform specific information, such as where to find libraries, where to look for include files and the location of binaries. In addition this file also contains the current version number.
 

Linux/Kde1

Requirements: Compiling kborg under kde probably requires the change of the Defines.h file. The relevant flags are:

KBORG_MOC which should point to the moc (Meta Object compiler) of QT 1.4. This is probably located in /usr/local/qt-1.44/bin/moc, or another directory.
KBORG_INCLUDE_PATH which should contain options to g++ to find the qt and kde includes. Most of the time these can be found in -I/usr/local/qt/include -I/usr/local/kde/include
KBORG_LIBRARY_PATH which should point to the locations of the .a libraries of qt, kde and X11R6. Probably these will be located in -L/usr/local/qt/lib -L/usr/local/kde/lib -L/usr/X11R6/lib
 

Linux/Kde2

Requirements: If you want to compile kborg on a KDE2 system you should do the following

a. Install qt1 & the kde1 libraries (kdelibs) in some directory (NOT the default, I too /usr/local/qt1 & /usr/local/kde1, resp)
b. Make sure /usr/local/kde1/bin is in the path, /usr/local/qt1/lib is included in LD_LIBRARY_PATH
c. Enter the locations of these libraries in Defines.h as specified in the above section.
d. make kcborg

You can find the QT and KDE1 libs on ftp://progpc26.vub.ac.be/cborg/QtKde1Libs/ Normally you will only need qt_1_44.tgz and kdelibs.tgz. Unzip the file in the root of you system. Execute /install/doinst.sh and start ldconfig -v !
 

PalmOS

Requirements:

Cross Compilation under Linux


You can find all the tools described here on the palmos website unless said otherwise.


Freebsd

Compiling Borg under FreeBSD cannot be a problem if you use gmake and specify the locations of the kde/qt libraries. If you are using an a.out system please make sure to insert the kde1 libs in your LD_LIBRARY_PATH, since the make files may output an elf binary.
 

Windows

Requirements: If you want to compile borg for Windows, get the cygwin tools, install the compiler and all tools (the source is not needed). Get the compiler up and running and enter make wcborg in the borg root directory.
 

Solaris

Be sure to download the correct readline library for compiling text borg (readline-4.1 is the good one). The wendy defines is an example of a solaris makefile.
 

Working with the Source

Online Source Access

Cvs Repository -- was once online, no longer supported

Source Statistics

Borg Crossreferencer -- was once online, no longer supported

If you are planning to do some serieus development don't hesitate to contact us to get access to the CVS repository. If you are a user which found one bug too much and is utterly frustrated about it, please fix some of them and commit them. Never add editor-specific files to the source repository.
 

Source Conventions

The source consists of a number of conventions:

[Non]-Frequently asked Questions

- How to write your own natives ? (Paul Henri Van Der Steichel) (.lyx file)
- A discussion why the we stopped using Unions
- Why we distinguish between references and strings