2025-02-09 18:48:25 +01:00
|
|
|
PKG_CONFIG?=pkg-config
|
|
|
|
|
|
|
|
PKGS=wayland-client xkbcommon vulkan
|
|
|
|
CFLAGS+=$(shell $(PKG_CONFIG) --cflags $(PKGS))
|
|
|
|
LIBS=$(shell $(PKG_CONFIG) --libs $(PKGS))
|
|
|
|
LDFLAGS+=-lm -lglfw -rdynamic
|
|
|
|
|
|
|
|
FLAGS=-g $(CFLAGS) $(LDFLAGS) $(LIBS)
|
|
|
|
|
2025-04-04 18:52:45 +02:00
|
|
|
S=comp.c wayland.c glfw.c
|
2025-02-09 18:48:25 +01:00
|
|
|
S+=vulkan.c kitty.c
|
2025-04-04 19:58:54 +02:00
|
|
|
S+=string.c gpu_allocator.c hashmap.c util.c io.c matrix.c paw_da.c image.c types.c paw_allocator.c paw_log.c
|
|
|
|
S+=paw_object.c register.c
|
2025-02-25 18:07:03 +01:00
|
|
|
S+=Wayland/xdg-shell-protocol.c
|
2025-04-04 18:52:45 +02:00
|
|
|
S+=lang/ast.c lang/vstack.c lang/ast_disc.c lang/functable.c lang/glue.c
|
2025-02-09 18:48:25 +01:00
|
|
|
SO=$(addprefix build/,$(S:.c=.o))
|
2025-02-25 18:07:03 +01:00
|
|
|
SC=$(addprefix src/,$(S))
|
2025-02-09 18:48:25 +01:00
|
|
|
|
|
|
|
clean:
|
2025-02-25 18:07:03 +01:00
|
|
|
rm -rf build/
|
|
|
|
mkdir build
|
|
|
|
mkdir build/Wayland
|
2025-03-01 20:47:43 +01:00
|
|
|
mkdir build/lang
|
2025-02-09 18:48:25 +01:00
|
|
|
|
|
|
|
install:
|
|
|
|
./main
|
|
|
|
|
2025-02-25 18:07:03 +01:00
|
|
|
.c.o:
|
|
|
|
gcc $(FLAGS) -c -o $@ $<
|
2025-02-09 18:48:25 +01:00
|
|
|
build/%.o: %.c
|
|
|
|
gcc -c $(FLAGS) -o $@ $<
|
2025-02-25 18:07:03 +01:00
|
|
|
build/%.o: src/%.c
|
|
|
|
gcc -c $(FLAGS) -o $@ $<
|
2025-02-09 18:48:25 +01:00
|
|
|
|
2025-02-25 18:07:03 +01:00
|
|
|
main: $(SO)
|
2025-04-04 18:52:45 +02:00
|
|
|
gcc $(FLAGS) -o $@ main.c $(SO)
|
|
|
|
|
|
|
|
parser: $(SO)
|
|
|
|
gcc $(FLAGS) -o $@ src/lang/parser.c $(SO)
|
2025-02-09 18:48:25 +01:00
|
|
|
|
|
|
|
.DEFAULT_GOAL=main
|
|
|
|
.PHONY: clean
|