summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsteven-na <noreply.github@stvnc.dev>2026-07-28 02:12:43 -0700
committersteven-na <noreply.github@stvnc.dev>2026-07-28 02:12:43 -0700
commitacea02e9b90a83167d15e62741c8e8bb9f0d4b7c (patch)
tree5b9073f297a8704be194cbee4fe4775ded0ed4cc
Initial commit.
-rw-r--r--.clangd8
-rw-r--r--.gitignore7
-rw-r--r--Justfile57
-rw-r--r--README.md1
4 files changed, 73 insertions, 0 deletions
diff --git a/.clangd b/.clangd
new file mode 100644
index 0000000..d22a778
--- /dev/null
+++ b/.clangd
@@ -0,0 +1,8 @@
+CompileFlags:
+ Add: [-std=c23, -Wall, -Wextra, -Wpedantic, -Werror]
+
+---
+If:
+ PathMatch: tests/.*
+Diagnostics:
+ Suppress: [implicit-int, missing-prototypes, missing-declarations]
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9d149d8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+build/
+*.o
+*.a
+*.so
+*.out
+compile_commands.json
+.cache/
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
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..cd66aac
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# SteEZ (Steven-NA EZ library)