What is it?
This is a framework used to compile external library dependencies for a project. It should be used instead of either bundling the whole source code of a library or bundling headers and precompiled binaries.
It was also built in the interest of not having a "secret recipe" for building libraries, as it sometimes is difficult when one needs some special treatment, but is accidentally lost.
Libbuildtool does not need a complex setup, the main requirement is putting it somewhere in the filesystem.
The building scripts will however need some tools. Currently, the known useful tools to have are:
- wget or curl
- GNU tar (BSD tar untested)
- svn (To pull libraries from svn)
- The compilers required
Bash itself is a requirement, it is not compatible with sh or dash; bashisms are used throughout the scripts.
Guides for different platforms will be available in the documentation directory. If your platform is not there, it does not mean it will not work; it only means that it is untested. We are working hard with testing many different combination of platforms.
The recommended way to prepare yourself to use libbuildtool is to have it in a
folder somewhere and sourcing the
env.sh script when needed.
The other way is to source the
env.sh script in your profile environment
Sourcing in the context of shell scripting is equivalent to executing the script in your current environment. Sourcing is done with the command
<!-- If you want to source the script, you should add this to your .profile file in your home directory.
If you have a .bash_profile in your home folder, be sure that it sources the .profile file
On Mac OS X, the
.profile file is read when you open a terminal window. If
you need libbuildtool someplace else (let's say a script in XCode), you will
need to be sure that the shell used is a login shell.
On Linux, you might need to log-out and back in again for the
.profile to be
properly read. You could source the
env.sh in your
.bashrc file, but
never source your
.profile in your
On some distributions, the
.login file is never actually read. If it is your
source path/to/libbuildtool/libraries/env.sh in your .bashrc file,
this is the best that can happen.
If you don't want (or can't) log-out, or don't want to close your terminal,
you can either configure your terminal to use a login shell,
manually source the
env.sh script or launch a login shell
The author of this script recommends putting libbuildtool in the folder
This (still stubby) script is used to get flags necessary for building libraries needing other libraries that were built with the framework (for example, a locally built zlib for libpng).
This project is released under the GNU GPLv3 license. The text of the license is available in the COPYING file.
Spaces in directory name
If your current working directory has spaces somewhere in it, many configure scripts and makefiles won't work properly. In this case, symlink or remount said filesystem somewhere else, without spaces.
Libbuildtool itself has no problem with spaces and has been tested properly against it. If you find a bug related to spaces in the current working directory that affects libbuildtoo, please bug us on our bugtracker.
Libbuildtool uses the http://bugs.anhero.net/ bugtracker. You can find it in the top-left menu. You will need to create an account to report bugs, sorry, the spammers won't keep it down.