User's Perspective
From the User's perspective, the GAR system may well be a tree of carefully maintained source code, ready to compile. The reality is that the system automatically downloads and customizes third-party source code archives. It builds necessary dependencies in the right order, and generally takes care of a lot of the work associated with compiling and installing software.
Building packages with the system
- The GAR system provides seven basic targets for each package
- fetch
- checksum
- extract
- patch
- configure
- build
- install
The user who is building a package will use the system by entering your package's directory and running "make install" or "make patch" (for example).
In the base GAR directory are a number of files that can mostly be ignored. The really interesting stuff is in the subdirectories. There is one subdirectory for each category of package (shells, editors, development, games, etc), and inside each category directory is a directory for each package in that category. Thus, the shells/ dir will have directories named bash/, tcsh/, zsh/, ash/, sash/, and so on.
To build and install a bash, for example, you simply cd into shells/bash/ and run "make install". Couldn't be simpler, right?
Configuring the GAR system
If you wish to configure the way the GAR system behaves, this is usually done by editing the file gar.conf.mk, which lives in the base GAR directory. In here you'll see a number of basic variables for things like the installation prefix, build prefix (for things like header files that are used as part of the build process but may not need to be installed), CFLAGS, a local file repository, and master backup site for source downloads.
For most cases, only the main_DESTDIR and build_prefix variables will need to be changed. A full description of all the variables in this file is in the GAR Variables document.