yait

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit d62b81bcac42eb08874af40bed67cb0e1586d8c9
parent 828c99464ce3123c6f0307d93c81e0accd669b8b
Author: vx_clutch <[email protected]>
Date:   Wed, 10 Sep 2025 14:11:30 -0400

v1 README-dev
Diffstat:
MREADME-dev | 78+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 73 insertions(+), 5 deletions(-)

diff --git a/README-dev b/README-dev @@ -32,8 +32,76 @@ called the config.mak. This file is used by the Makefile to figure out GNU compilant C compiler to use, what CFLAGS and LDFLAGS to use, and where to install the binary if requested. By default these values are gcc, the release flag set, and /usr/bin/. The configuration script -supports the following flags that control CFLAGS: --release, --debug -and CFLAGS="". Release is the default, and is set for the fastest -runtime and size. Debug is for in-development programming and is the -strictest when it comes to warnings and other compiler output. -CFLAGS="" is for custom flag definition. +supports the following flags that control CFLAGS: --debug +and CFLAGS="". By default, the script uses flags for a release build. +Debug is for in-development programming and is the strictest when it +comes to warnings and other compiler output. CFLAGS="" is for custom +flag definition. For the development enviroment is it recomended to +use the --debug flag. Some examples of how you can run the configure +script: + +For default behavior: + + ./configure + +For debug use: + + ./configure --debug + +For help text: + + ./configure --help + +The help text is a more useage specific and up-to-date reference for +the configure script. + + +Makefile +-------- + +The GNU Makefile is used to build the final executable, clean up build +artifacts, and install the program. It checks for the config.mak which +is generated by the configure script. For a regular build, once you have +the configure script with desired flags, run: + + make + +This builds the executable to bin/ and build objects to build/ + + +Suggested enviroment setup +-------------------------- +It is suggested that you run do the following things to prepare you +enviroment for development. This is not a strict enforcment, but due +to the project structure it is a good starting point. + + git pull + ./tools/Cleanup + ./configure --debug + bear -- make + ./bin/yait --version + +This is to ensure that you have the most up-to-date source code, and that +there are no major problems with the source control version. + +The git pull is used to sync with the repository and prevent conflicts. +The cleanup is to ensure their are no lingering build artifacts. The +configure with debug enabled is for strict build flags and -ggdb. Bear +is used to generated compile_commands.json for the clang suite of tooling. +Finaly, run the program to ensure the chain works. + + +Pre-commit checks +----------------- + +Before you commit to source control ensure that done the following: + + * Run the cleanup scripts + + ./tools/Cleanup + + * Ensure that all changes were atomic + + * If you compted a TODO list item check it off. + + * Based on complexity, test the feature accordingly.