@@ -15,19 +15,23 @@ The "Internal Targets" are used for building the executable and rely on abstract
This Makefile contains targets for building libraries and binaries and their associated tests.
In this file, the specific libraries/executables and their locations are listed as opposed to the `.mk` files which have purely abstract definitions.
It also contains a `clean` target for removing compiled libraries and binaries.
A target for generating an image of the control network, called `diagram`, is also present here.
A target for generating an image of the control network, called `diagram`, is also located here.
## Library Makefile
Each library needs its own Makefile. This contains a set of definitions for variables so that the abstract targets in `library.mk` can work properly and any additional targets you want to add that are specific to that library.
The following variable definitions that should be included:
- NAME: The name of the library
- TOP: a relative path to the `quad/` directory
- REQLIBS: a list of the libraries necessary to compile this library, in the form of compiler flags, i.e. `-l<name>`
Each library needs its own Makefile.
This contains a set of definitions for variables so that the abstract targets in `library.mk` can work properly and any additional targets you want to add that are specific to this library.
_Note: The REQLIBS should include the name of this library at a minimum, as any tests associated with it would need its own library to be linked in order to be useful._
The following variable definitions should be included:
-`NAME`: The name of the library
-`TOP`: a relative path to the `quad/` directory
-`REQLIBS`: a list of the libraries necessary to compile this library, in the form of compiler flags, i.e. `-l<name>`
_Note: The `REQLIBS` list should include the name of this library at a minimum, as any tests associated with it would need its own library to be linked in order to be useful._
Additionally, a line like the following should be included:
`include $(TOP)/library.mk`
This allows the library to use the targets in the `library.mk` file to be applied to this directory.
Any other make targets wanted for the library should also be included.