# Package descriptions in m3makefiles

The procedures defined by m3build that are available in all `m3makefile`s fit into the following categories:

- specifying sources
- importing packages
- building programs and libraries
- changing compiler options
- compiling for profiling and coverage analysis
- overriding package locations
- importing foreign object files and libraries
- exporting other files
- explicitly setting interface visibility
- instantiating generics
- machine and operating system dependencies
- misc. builtins

The more specialized procedures are:

- emacs support
- generic lists, queues, tables, ...
- man pages
- network objects
- resources: arbitrary binary data
- zeus animations