A* make/build framework
Purpose
Section titled “Purpose”The a-make provides a standard set of rules and a tool
for building A* systems. This document provdes:
- Instructions for using the framework.
- Creating new Makefile
- Updating rules.
Status: draft needing further work.
Related Components
Section titled “Related Components”a-clone- clone components to your local machine.template-generic, … - templates for the creation of components.a-f- runs afossilcommand across all the componets- GNU Make Conventions - note that we follow the GNU Make conventions.
- GNU Make Manual - note that we use GNU Make for this process.
Intent
Section titled “Intent”- All components are typically kept in
~/a-teamwhich must be be defined in the environment variable$ASTAR. This can be a subset of all components. - Its a flat hierachy.
- Each component should be a separable part and as simple as possible.
- Provide a verifiable and repeatable build process.
Using the framework
Section titled “Using the framework”Once you have the components setup its just the usual
make targets following the
GNU Makefile Conventons, so:
% cd ~/a-team/component-x% make% make check% make install% make cleanThe initial setup is to:
- Set the environment variable
ASTARto your work directory, i.e.~/a-team. - Get a user and password pair from Phil.
- Install a version of
fossilfrom your package manager or https://fossil-scm.org. - Bootstrap the system using
fossilacross the internet.
% mkdir ~/a-team% cd ~/a-team% fossil clone https://USER@a-star-microgrid.com/a-team/COMPONENTS/a-cloneuse PASSWORD as appropriate% ls :# check it downloaded oka-clone.fossil% fossil open a-clone.fossil --workdir a-clone% cd a-clone% ./a-clone ;# clone all the componentsAfter this completes you should have the source code repositories
such a-all.fossil and the working directory with the latest version aka
as tip.
% ls $ASTARa-0-componenta-0-component.fossila-alla-all.fossila-bibliographya-bibliography.fossil...Whats in a typical A* Makefile
Section titled “Whats in a typical A* Makefile”TBA