diff --git a/Makefile b/Makefile index b164e24..9ae61a0 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,14 @@ CC = gcc CFLAGS = -std=c99 -O0 LDFLAGS = -lm -all: claro +all: claro claro.exe claro: src/claro.c $(CC) $(CFLAGS) -o claro src/claro.c $(LDFLAGS) +claro.exe: src/claro.c + $(CC) $(CFLAGS) -o claro.exe src/claro.c $(LDFLAGS) + test: claro ./claro test diff --git a/README.md b/README.md index 545c4cc..d80b0d3 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ python3 tools/validate_package_security.py python3 tools/validate_ci_workflow.py ``` -The CI workflow validator also requires its own command to remain in an executable `run` step, so the release-gate check cannot silently disappear from CI. +The CI workflow validator also requires its own command to remain in an executable `run` step, so the release-gate check cannot silently disappear from CI. `make` builds both `claro` and `claro.exe`, allowing the version validator to exercise the same source build on every platform. ## Beginner-first syntax diff --git a/docs/CURRENT_STATUS.md b/docs/CURRENT_STATUS.md index b3ed103..7d23bf4 100644 --- a/docs/CURRENT_STATUS.md +++ b/docs/CURRENT_STATUS.md @@ -102,6 +102,7 @@ Ready now: - `claro package add/list/remove/doctor/lock` - local project files such as `claro.project`, `claro.lock`, and `packages/` - starter projects from `claro new` now use the same manifest-version and lock-version headers as `claro package init` +- the default `make` target builds both `claro` and `claro.exe`, so cross-platform release validators exercise freshly built executables - project-name safety checks for `claro new`, so unsafe names such as `../bad` are rejected before Claro creates folders - package-name safety checks when adding packages, including the 64-character package-name limit, when `claro package doctor` audits an existing `claro.project`, when `claro package lock` writes lockfile data, when `claro package list` shows existing packages, when `claro package init` sees unsafe names already present in `claro.project`, when `claro package add` sees unsafe names already present in `claro.project`, when `claro package remove` refreshes the lockfile after an edit, when learners need to remove an unsafe package entry that is already present, when `claro package doctor` verifies lockfile checksums for listed packages, and when `claro package doctor` rejects lockfile package entries that are not listed in `claro.project` - `claro package doctor` rejects a listed package manifest whose `name:` does not match the package name in `claro.project`