pawengine/Makefile

42 lines
924 B
Makefile

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)
S=comp.c wayland.c glfw.c
S+=vulkan.c kitty.c
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
S+=Wayland/xdg-shell-protocol.c
S+=lang/ast.c lang/vstack.c lang/ast_disc.c lang/functable.c lang/glue.c
SO=$(addprefix build/,$(S:.c=.o))
SC=$(addprefix src/,$(S))
clean:
rm -rf build/
mkdir build
mkdir build/Wayland
mkdir build/lang
install:
./main
.c.o:
gcc $(FLAGS) -c -o $@ $<
build/%.o: %.c
gcc -c $(FLAGS) -o $@ $<
build/%.o: src/%.c
gcc -c $(FLAGS) -o $@ $<
main: $(SO)
gcc $(FLAGS) -o $@ main.c $(SO)
parser: $(SO)
gcc $(FLAGS) -o $@ src/lang/parser.c $(SO)
.DEFAULT_GOAL=main
.PHONY: clean