diff options
| -rw-r--r-- | .clangd | 8 | ||||
| -rw-r--r-- | .gitignore | 7 | ||||
| -rw-r--r-- | Justfile | 57 | ||||
| -rw-r--r-- | README.md | 1 |
4 files changed, 73 insertions, 0 deletions
@@ -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) |