1OS := $(shell uname)
2ifeq ($(OS), Linux)
3SYSTEM = linux_amd64
4else ifeq ($(OS), Darwin)
5SYSTEM = macos
6else ifeq ($(OS), WindowsNT)
7SYSTEM = windows
8else
9SYSTEM = unknown
10endif
11
12CC ?= tcc
13# RAYLIB := raylib-5.5_linux_amd64
14RAYLIB_VER := raylib-5.5_$(SYSTEM)
15LUA := lua-5.4.8
16CFLAGS := -std=c99 -v -g -I./vendor/$(RAYLIB_VER)/include -I./vendor/$(LUA)/src
17LDFLAGS := -L./vendor/$(RAYLIB_VER)/lib -lraylib -L./vendor/$(LUA)/src -llua -lm
18STDLIB_FILES := $(wildcard stdlib/*.lua)
19FONT_FILES := $(wildcard fonts/*.ttf)
20PROG := bidi
21PROG_C := main.c
22
23# Check if macOS and then append proper CFLAGS.
24ifeq ($(SYSTEM), macos)
25CFLAGS += -framework CoreVideo -framework IOKit -framework Cocoa -framework GLUT -framework OpenGL
26endif
27
28all: info lua hexdump $(FONT_FILES:.ttf=.h) $(STDLIB_FILES:.lua=.h) $(PROG)
29
30info: # Print out information about the build
31 $(info SYSTEM : $(SYSTEM))
32 $(info RAYLIB_VER : $(RAYLIB_VER))
33 $(info CFLAGS : $(CFLAGS))
34 $(info LDFLAGS : $(LDFLAGS))
35
36%.h: %.lua
37 ./hexdump $< $(@:stdlib/%.h=%) > $@
38
39%.h: %.ttf
40 ./hexdump $< $(@:fonts/%.h=%) > $@
41
42$(PROG): $(PROG_C)
43 $(CC) $(CFLAGS) $(PROG_C) -o $(PROG) $(LDFLAGS)
44
45hexdump: hexdump.c
46 $(CC) -std=c99 -o hexdump hexdump.c
47
48lua:
49 cd vendor/$(LUA) && make
50
51clean:
52 -rm $(PROG) hexdump fonts/*.h stdlib/.*h
53 cd vendor/$(LUA) && make clean