From acea02e9b90a83167d15e62741c8e8bb9f0d4b7c Mon Sep 17 00:00:00 2001 From: steven-na Date: Tue, 28 Jul 2026 02:12:43 -0700 Subject: Initial commit. --- Justfile | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Justfile (limited to 'Justfile') 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 -- cgit v1.2.3