From a8baacb742d2da0c811c3757cc55fba5b2e67c96 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sun, 29 Dec 2024 11:46:04 +0000 Subject: [PATCH] Create demo with compile-time linking --- build.sh | 5 +++++ main.c | 22 ++++++++++++++++++++++ mod.c | 11 +++++++++++ mod.h | 11 +++++++++++ 4 files changed, 49 insertions(+) create mode 100755 build.sh create mode 100644 main.c create mode 100644 mod.c create mode 100644 mod.h diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9bbab7e --- /dev/null +++ b/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +CFLAGS="-std=c11 -pedantic -Wall -Wextra" +mkdir -p build +clang $CFLAGS -fPIC -shared mod.c -o build/libmod.so +clang $CFLAGS -Lbuild -lmod main.c -o build/demo diff --git a/main.c b/main.c new file mode 100644 index 0000000..1b6a749 --- /dev/null +++ b/main.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) Camden Dixie O'Brien + * SPDX-License-Identifier: AGPL-3.0-only + */ + +#define _POSIX_C_SOURCE 199309L + +#include "mod.h" + +#include +#include + +int main(void) +{ + const struct timespec pause = { .tv_nsec = 16666667 }; + while (1) { + printf("\33[2K\r%s", getmsg()); + fflush(stdout); + nanosleep(&pause, NULL); + } + return 0; +} diff --git a/mod.c b/mod.c new file mode 100644 index 0000000..70d9285 --- /dev/null +++ b/mod.c @@ -0,0 +1,11 @@ +/* + * Copyright (c) Camden Dixie O'Brien + * SPDX-License-Identifier: AGPL-3.0-only + */ + +#include "mod.h" + +const char *getmsg(void) +{ + return "hi"; +} diff --git a/mod.h b/mod.h new file mode 100644 index 0000000..3b18702 --- /dev/null +++ b/mod.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) Camden Dixie O'Brien + * SPDX-License-Identifier: AGPL-3.0-only + */ + +#ifndef MOD_H +#define MOD_H + +const char *getmsg(void); + +#endif