summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorLevent Kaya <levent@dev>2025-11-04 12:42:25 +0300
committerLevent Kaya <levent@dev>2025-11-04 12:42:25 +0300
commit9fe39a2c099f8c4c4f0782716142404e6aad6080 (patch)
tree66590bfdca5dd3fb08589c56d0d1c6bb447590c8 /Makefile
parent2ce38cae044750a10127e07080168dccc1fe3534 (diff)
[build] cmake to makefile conversion
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile59
1 files changed, 59 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7861b84
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,59 @@
+# Makefile for fbglExamples
+
+# Project settings
+PROJECT = fbglExamples
+FBGL_HEADER = fbgl.h
+EXAMPLES_DIR = examples
+
+# Compiler settings
+CC = gcc
+CFLAGS = -std=c99 -Wall -Wextra -Wpedantic -I. -D_POSIX_C_SOURCE=200112L -D_DEFAULT_SOURCE
+LDFLAGS = -lm
+
+# Find freetype2 using pkg-config
+FREETYPE2_CFLAGS = $(shell pkg-config --cflags freetype2)
+FREETYPE2_LIBS = $(shell pkg-config --libs freetype2)
+
+# Combine flags
+CFLAGS += $(FREETYPE2_CFLAGS)
+LDFLAGS += $(FREETYPE2_LIBS)
+
+# Example programs
+EXAMPLES = line rectangle red texture framebuf_info text texture_show_fps circle player ray_casting
+
+# Targets
+EXAMPLE_BINS = $(EXAMPLES)
+RUN_TARGETS = $(addprefix run_, $(EXAMPLES))
+
+# Default target
+.PHONY: all
+all: $(EXAMPLE_BINS)
+
+# Build each example
+$(EXAMPLE_BINS): %: $(EXAMPLES_DIR)/%.c $(FBGL_HEADER)
+ $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
+
+# Run individual examples
+.PHONY: $(RUN_TARGETS)
+$(RUN_TARGETS): run_%: %
+ ./$<
+
+# Run all examples
+.PHONY: run-examples
+run-examples: $(RUN_TARGETS)
+
+# Clean build artifacts
+.PHONY: clean
+clean:
+ rm -f $(EXAMPLE_BINS)
+
+# Help target
+.PHONY: help
+help:
+ @echo "Available targets:"
+ @echo " all - Build all examples (default)"
+ @echo " run-examples - Run all examples"
+ @echo " run_<name> - Run specific example (e.g., make run_line)"
+ @echo " clean - Remove built executables"
+ @echo ""
+ @echo "Examples: $(EXAMPLES)" \ No newline at end of file