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