Gateware build system revised
On the sequence of internal discussions triggered by #61 (closed) and of the DI/OT Developers Meeting #1, a revision of the Gateware build system is proposed.
This merge request contains the following main features:
- Incremental compilation while keeping CI-compatibility intact
- Build TCL script granularized so that it can be externally called stage by stage
- Build system is capable of detecting for up-to-date synthesis/implementation
- Force regenerate block design is now possible (target
force_bd
) - Three levels of cleaning are now possible:
-
clean
: for cleaning immediate Vivado synthesis and implementation results -
mrproper
: for cleaning the created Vivado project -
distclean
: for cleaning the complete build folder
-
- Build system now utilizes sentinel files to aid the tracking of project state
- TCL sources are tracked and the user is warned and urged to recreate the project if any TCL source is newer than the project
- Other small general make system cleanup and improvements
For block design generation, the system is still not capable of tracking changes in the source files. This is to be worked upon the acceptance of this MR. This same condition applies to the submission of the changes to the gateware organization (block design containers).
Edited by Andre Pinho