1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
# MAKEIT
## Goals
- To generate **native Makefiles** for the system *makeit* is running on.
To accomplish that, we transform a set of Makefile fragments and
module config files into a non-recursive Makefile that uses features
available to all reasonable versions of Make (GNU, BSD, SVR4, etc).
- If **makeit** can be called a build system, it should stay so small and
platform independent that it could be included in each project that
it helps to build.
- To include/install and setup *makeit* for your project take a look at the
INSTALL.md file.
## Module (\*.mconf) Keywords
- **name** : name of the module, just a handle
- **prog** : name of a program to link
- **lib** : name of a library to create, without the **lib** prefix
- **data** : name of a data file (symbols, pictures, text, etc.) to embed
- **asrc** : list of (.S) assembly source files
- **csrc** : list of C source files to build
- **win_asrc** : windows only list of C source files to build
- **win_csrc** : windows only list of C source files to build
- **unix_asrc** : unix only list of C source files to build
- **unix_csrc** : unix only list of C source files to build
- **depends** : list of module **name**'s that a prog or a lib depends on
- **cflags** : list of CFLAGS to add for this module
- **ldflags** : list of LDFLAGS to add for this module
- **extralibs** : list of extra libs needed by the program (e.g., -lgcc)
- **cleanfiles** : list of extra files to remove when *make clean* is called
## Implementation
- POSIX portable tools mainly awk and sh with system commands
|