diff options
| author | steven-na <noreply.github@stvnc.dev> | 2026-07-28 02:12:43 -0700 |
|---|---|---|
| committer | steven-na <noreply.github@stvnc.dev> | 2026-07-28 02:12:43 -0700 |
| commit | acea02e9b90a83167d15e62741c8e8bb9f0d4b7c (patch) | |
| tree | 5b9073f297a8704be194cbee4fe4775ded0ed4cc /Justfile | |
Initial commit.
Diffstat (limited to 'Justfile')
| -rw-r--r-- | Justfile | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..8343372 --- /dev/null +++ b/Justfile @@ -0,0 +1,57 @@ +lib := "steez" +src_dir := "src" +test_dir := "tests" +build_dir := "build" +cc := "cc" +cflags := "-Wall -Wextra -Wpedantic -Werror -std=c23 -fPIC" +lflags := "" +prefix := "/usr/local" + +default: + @just --list + +build: build-static build-shared + +build-static: + mkdir -p {{build_dir}} + cd {{build_dir}} && {{cc}} {{cflags}} -c ../{{src_dir}}/*.c + ar rcs {{build_dir}}/lib{{lib}}.a {{build_dir}}/*.o + +build-shared: + mkdir -p {{build_dir}} + cd {{build_dir}} && {{cc}} {{cflags}} -c ../{{src_dir}}/*.c + {{cc}} -shared -o {{build_dir}}/lib{{lib}}.so {{build_dir}}/*.o {{lflags}} + +build-release: + mkdir -p {{build_dir}} + cd {{build_dir}} && {{cc}} {{cflags}} -O3 -DNDEBUG -c ../{{src_dir}}/*.c + ar rcs {{build_dir}}/lib{{lib}}-release.a {{build_dir}}/*.o + {{cc}} -shared -o {{build_dir}}/lib{{lib}}-release.so {{build_dir}}/*.o {{lflags}} + +build-debug: + mkdir -p {{build_dir}} + cd {{build_dir}} && {{cc}} {{cflags}} -g -O0 -fsanitize=address,undefined -fno-omit-frame-pointer -c ../{{src_dir}}/*.c + ar rcs {{build_dir}}/lib{{lib}}-debug.a {{build_dir}}/*.o + {{cc}} -shared -fsanitize=address,undefined -o {{build_dir}}/lib{{lib}}-debug.so {{build_dir}}/*.o {{lflags}} + +install: build + sudo mkdir -p {{prefix}}/include/{{lib}} {{prefix}}/lib + sudo cp {{src_dir}}/*.h {{prefix}}/include/{{lib}}/ + sudo cp {{build_dir}}/lib{{lib}}.a {{build_dir}}/lib{{lib}}.so {{prefix}}/lib/ + sudo ldconfig + +uninstall: + sudo rm -rf {{prefix}}/include/{{lib}} + sudo rm -f {{prefix}}/lib/lib{{lib}}.a {{prefix}}/lib/lib{{lib}}.so + sudo ldconfig + +test-all: + mkdir -p {{build_dir}} + {{cc}} {{cflags}} {{test_dir}}/*.c {{src_dir}}/*.c -o {{build_dir}}/test -lcriterion {{lflags}} + ./{{build_dir}}/test + +clean: + rm -rf {{build_dir}} + +compiledb: + bear -- just build |