**Basic Overview** This is a lightweight/dependency free C build system built entirely around standard POSIX tools. It introduces a python style virtual environment for your C projects using a simple shell script. It tracks your compiler, linker flags, and build options in a local state file without needing cmake or other heavy build generators. **Example Use** To get started with a fresh project create your directory and run the initialization command. `make init` Next activate your virtual environment by sourcing the configuration script into your current shell session. `. config/activate` (or `source config/activate`) the former is simply POSIX compliant. Once you are inside the environment you can run your builds and clean up whenever you want. `make debug` `make build` `make release` `make clean` **What Each Build Target Does** * init sets up the required folder structure and generates the activation script * debug compiles your code with debug symbols enabled and optimization turned off * build compiles your code for regular development use using your custom flags * release updates the internal version timestamp and compiles an optimized production binary * clean removes all intermediate object files and generated makefiles **Example env_set Commands** You can adjust your toolchain and compiler options dynamically using the `env_set` function while the environment is active. Example uses: ``` env_set CC cc env_set CFLAGS -std=c17 -pedantic -Wall -Wextra env_set DEBUG_FLAGS -g3 -O0 env_set RELEASE_FLAGS -O2 -DNDEBUG env_set LIBS -lm ```