summaryrefslogtreecommitdiff
path: root/emu/Makefile
blob: 339b85e99c8134d6883ed9321901842c812b32db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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!"