Modules

Wavepacket Build System
[AESOP Developer's Guide]

The build system used by the Wavepacket family of source repositories (wavepacket-lib, wave-glut, wave-audio, aesop, folium). More...

Collaboration diagram for Wavepacket Build System:

Modules

 Build System Makefiles
 

The Makefile is very basic: it is standard GNU makefile format.


 Build System Config files
 

The second file is the config file.



Detailed Description

The build system used by the Wavepacket family of source repositories (wavepacket-lib, wave-glut, wave-audio, aesop, folium).

This home-grown build system came out of early attempts to get recursive and dependent builds working, plus my initial stabs at Perl programming.

Eventually, this system should be replaced by an open source standard build system. But this is used for now.

Features of the wavepacket build system:

GNU Autoconf support is primitive for now, but I will update it over time.

To use the build system, any buildable object (application or library) must supply two files: a config file (named "config") and a Makefile (named "Makefile"). I thought of the names myself.

A buildable object must be in its own directory. A given directory can only contain a single object (library or application).

The build system does make one assumption: all of your repositories are listed as peers in the same parent directory. For instance, I've got an svn directory that contains both wavepacket-lib and folio as child directories. As a developer, it is up to you to acquire local versions of necessary repositories.

The build system will create an "obj" directory within each repository, and all object files and other build output for modules in that repository will be contained in that obj directory. The obj/bin directory contains "installed" versions of applications (applications and tools will automatically copy their built executable to obj/bin), so it is a clean directory to use for executing built binaries.


It is also possible to build resources into a binary as part of the build system. See Resource APIs .