GoboLinux DownloadsDocumentationCommunityRecipesScreenshots


Compile: the GoboLinux compilation system

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.
  • path-agnostic by design: also works in a Rootless-GoboLinux installation, ie, inside a $HOME directory of any other distribution.

Links

Using Compile

As a user, all you need to do is ask Compile to compile your software:
     
Compile allegro     
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.

Getting Compile

Compile is shipped by default in GoboLinux since 011, but it also works on previous releases, provided you have a recent Scripts package, as well as in the Rootless hosted mode. Both can be found at the packages page.

Contributing Recipes

To send your recipes, pack them with the GenRecipeStore command and mail them to the gobolinux-recipes mailing list. 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!)