summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-03-10 22:21:51 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-03-10 22:21:51 +0300
commitcb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc (patch)
treeeda11dbabdf8a7297c3ac6b6ad4397241469cc63 /README.md
downloadProject-Tick-cb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc.tar.gz
Project-Tick-cb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc.zip
init Top-level monolithic build entrypoint for Project Tick BSD/Linux `bin` ports.
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'README.md')
-rw-r--r--README.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..e7931f95ae
--- /dev/null
+++ b/README.md
@@ -0,0 +1,58 @@
+# bin
+
+Top-level monolithic build entrypoint for Project Tick BSD/Linux `bin` ports.
+
+This directory provides a `./configure && make` workflow that orchestrates all
+ported subcommands while keeping each subdirectory's own `GNUmakefile` as the
+build source of truth.
+
+## Build
+
+```sh
+./configure
+make -f GNUmakefile -j"$(nproc)" all
+```
+
+Default behavior is musl-first toolchain selection (`musl-gcc`/musl-capable
+clang candidates), with generated top-level overrides for common variables
+(`CC`, `AR`, `RANLIB`, `CPPFLAGS`, `CFLAGS`, `LDFLAGS`, etc.).
+
+## Test
+
+```sh
+make -f GNUmakefile test
+```
+
+This runs each subdirectory test target through the top-level orchestrator.
+Environment-limited tests may print `SKIP` and continue.
+
+## Outputs
+
+All generated artifacts are centralized under:
+
+```text
+build/ # object and generated intermediate files
+out/ # final binaries and test helper outputs
+```
+
+Subdirectories are prepared to use these shared roots during top-level builds.
+
+## Maintenance Targets
+
+```sh
+make -f GNUmakefile clean
+make -f GNUmakefile distclean
+make -f GNUmakefile reconfigure
+```
+
+- `clean`: removes shared `build/` and `out/`
+- `distclean`: also removes generated top-level `GNUmakefile` and `config.mk`
+- `reconfigure`: regenerates top-level build files
+
+## Notes
+
+- Subdirectory `GNUmakefile` files are not replaced; the top-level file only
+ drives and overrides invocation context.
+- `GNUmakefile` and `config.mk` are generated artifacts from `./configure`.
+- For command-specific behavior, limitations, and port notes, see each
+ subdirectory `README.md`.