1GTKPKG = gtk+-3.0
2KEYBPKG = keybinder-3.0
3GTK_CFLAGS = $(shell pkg-config --cflags $(GTKPKG))
4GTK_LDFLAGS = $(shell pkg-config --libs $(GTKPKG))
5
6LUA_CFLAGS = $(shell pkg-config --cflags lua5.1)
7LUA_LDFLAGS = $(shell pkg-config --libs lua5.1)
8
9KEYB_FLAGS = $(shell pkg-config --cflags --libs $(KEYBPKG))
10
11CFLAGS ?= -g -O2
12
13VALAC = valac
14
15all: main lua vala
16
17lua: minigtk.so keybinder.so
18
19# Example C program with libkeybinder
20main: main.c
21	$(CC) $(KEYB_FLAGS) $(CFLAGS) $< -o $@
22
23# Lua "minigtk" library
24keybinder.so: lkeybinder.c
25	$(CC) $(KEYB_FLAGS) $(CFLAGS) \
26		$(LUA_CFLAGS) $(LUA_LDFLAGS) $< -shared -o $@
27
28minigtk.so: lminigtk.c
29	$(CC) $(GTK_CFLAGS) $(GTK_LDFLAGS) \
30		$(LUA_CFLAGS) $(LUA_LDFLAGS) $< -shared -o $@
31
32vala: vexample
33
34vexample: vexample.vala keybinder.vapi
35	$(VALAC) --pkg $(GTKPKG) --pkg keybinder --vapidir=. $<
36
37clean:
38	rm -f *.so *.lo main vexample
39
40.PHONY: clean all lua vala
41