spac: Simple Package Configuration

Other Tools:

spac-dist: Build distributable packages


dist: Rules describing distributable packages
files: Automatically installed files
rules: Rules describing building targets


System Dependancies

Jiffy Howto:

  1. Identify all the executables you want to build.
  2. For each executable, create a file named BASE=x, where BASE is the name of the executable. This will instruct spac to translate BASE.o into an executable by linking it with all the other object files and libraries in the created file.
  3. Identify all the libraries used by the above step.
  4. For each library, create a file named BASE=l, where the library is named BASE.a, which lists all the object files required by that library.
  5. Dependancy files for the object files will be automatically created internally by spac.
  6. Dependancies for object targets and system-dependant header files will be automatically created.


  1. Starts by examining the "all" rule. This rule will produce a list of top-level targets.
  2. The rules are examined to satisfy the top-level targets, which produces more dependancies.
  3. The remaining dependancies are recursivly satisfied until no dependancies remain.
  4. If any dependancies could not be satisfied, the program exits.
  5. All the targets are sorted into a Makefile.
  6. A list of all the files that will be generated during the build process is written into TARGETS.
  7. A list of all source files used to produce the above targets is written into SRCFILES.
  8. A list of all the files that were automatically generated is written into AUTOFILES.

Special targets and files:

See the documentation on files and rules for more information.

Compatibility notes:

To Do: