Compile downloads source tarballs, unpacks, compiles and installs
them, with a single command, using simple compilation scripts called
"recipes". Compile was introduced in GoboLinux 011, but already
features a considerable (and ever-growing) number of recipes, and
is able to compile all kinds of software, including Glibc,
GCC, KDE and the Linux kernel.
Some of Compile's distinctive features:
-
uses the each project's own download site to fetch sources:
the GoboLinux repository (or one of its mirrors) is used for downloading recipes
only. Recipes can be downloaded explicitly, using the GetRecipe
command, or on-the-fly by Compile, when a compilation is requested.
-
minimalistic and declarative-oriented compilation scripts: typical "configure;
make; make install" software can be scripted in two lines, greatly easing maintanance.
-
supports GoboLinux-style dependencies: when matching dependencies for
a compilation, Compile looks directly into /Programs. No matter how
the package was installed -- by a binary package using InstallPackage,
compiled from source using Compile, or even compiled by hand by the
user -- it can be used by Compile when satisfying dependencies.
Links
Using Compile
As a user, all you need to do is ask
Compile to compile your software:
It will search for an available recipe (doing a case-insensitive search) and
do all the work for you.
As a potential contributor, you will find Recipes
very easy to
create. In fact, ease of maintenance was the #1 concern (given that we
are still a niche distribution and have limited resources).
A real example. This is how a Recipe file for a typical autoconf-based
program looks like. Two lines, nothing more:
url=$ftpGnu/gtypist/gtypist-2.7.tar.bz2
recipe_type=configure
A more complex example: Zip uses only makefiles.
Compile supports
it just as well.
url=ftp.uu.net/pub/archiving/zip/src/zip23.tar.gz
recipe_type=makefile
dir=zip-2.3
makefile=unix/Makefile
build_target=generic_gcc
install_variables=(
"prefix=$target"
)
Documentation of the API is maintained in the
wiki.
Contributing Recipes
To send your own recipes, simply run the ContributeRecipe command after a successful build!
Your contributions are greatly appreciated by the GoboLinux community! (Be sure to
put your name in your Compile.conf file so that MakeRecipe credits
you as the author in the recipe!)