summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevent Kaya <levent@dev>2025-11-04 12:31:41 +0300
committerLevent Kaya <levent@dev>2025-11-04 12:31:41 +0300
commita0f757ca37cb66a0ed34ba59421721bfbd3619cc (patch)
treee2a64d7bee3e2682a70fd99617fa7996139be079
parentba0750006d48ea99156bc003bdce2f338148c70b (diff)
[feature] emu dev
-rw-r--r--emu/.gitignore2
-rw-r--r--emu/Makefile47
-rw-r--r--emu/fbgl_preload.c9
3 files changed, 58 insertions, 0 deletions
diff --git a/emu/.gitignore b/emu/.gitignore
new file mode 100644
index 0000000..cfd5574
--- /dev/null
+++ b/emu/.gitignore
@@ -0,0 +1,2 @@
+fbgl_viewer
+libfbgl_preload.so
diff --git a/emu/Makefile b/emu/Makefile
new file mode 100644
index 0000000..339b85e
--- /dev/null
+++ b/emu/Makefile
@@ -0,0 +1,47 @@
+CC = gcc
+CFLAGS = -Wall -Wextra -O2
+LDFLAGS = -lSDL2 -ldl -lm
+
+.PHONY: all clean test
+
+all: libfbgl_preload.so fbgl_viewer fbgl_run.sh
+
+libfbgl_preload.so: fbgl_preload.c
+ @echo "Building preload library..."
+ $(CC) -shared -fPIC $(CFLAGS) $< -ldl -o $@
+
+fbgl_viewer: fbgl_viewer.c
+ @echo "Building SDL viewer..."
+ $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
+
+fbgl_run.sh:
+ @echo "Making runner script executable..."
+ @chmod +x fbgl_run.sh
+
+test: all test_fbgl
+ @echo "Running test program..."
+ ./fbgl_run.sh ./test_fbgl
+
+test_fbgl: test_fbgl.c fbgl.h
+ @echo "Compiling test program..."
+ $(CC) $(CFLAGS) test_fbgl.c -lm -o test_fbgl
+
+clean:
+ @echo "Cleaning up..."
+ rm -f libfbgl_preload.so fbgl_viewer test_fbgl
+ @# Clean up shared memory
+ @ipcrm -M $$(ftok /tmp F 2>/dev/null | awk '{print $$NF}') 2>/dev/null || true
+
+install:
+ @echo "Installing to /usr/local/bin..."
+ sudo cp libfbgl_preload.so /usr/local/lib/
+ sudo cp fbgl_viewer /usr/local/bin/
+ sudo cp fbgl_run.sh /usr/local/bin/fbgl-run
+ @echo "Done! You can now run: fbgl-run ./your_program"
+
+uninstall:
+ @echo "Uninstalling..."
+ sudo rm -f /usr/local/lib/libfbgl_preload.so
+ sudo rm -f /usr/local/bin/fbgl_viewer
+ sudo rm -f /usr/local/bin/fbgl-run
+ @echo "Done!"
diff --git a/emu/fbgl_preload.c b/emu/fbgl_preload.c
new file mode 100644
index 0000000..e8771e2
--- /dev/null
+++ b/emu/fbgl_preload.c
@@ -0,0 +1,9 @@
+#define _GNU_SOURCE
+#include <dlfcn.h>
+#include <fcntl.h>
+
+int open(const char *pathname, int flags);
+
+int open(const char *pathname, int flags) {
+
+}