CC = gcc PKGCONFIG = $(shell which pkg-config) CFLAGS = `$(PKGCONFIG) --cflags gtk+-3.0` LIBS = `$(PKGCONFIG) --libs gtk+-3.0` GLIB_COMPILE_RESOURCES = `$(PKGCONFIG) --variable=glib_compile_resources gio-2.0` GLIB_COMPILE_SCHEMAS = `$(PKGCONFIG) --variable=glib_compile_schemas gio-2.0` SRC = resources.c exampleapp.c exampleappwin.c exampleappprefs.c main.c OBJS = $(SRC:.c=.o) all: exampleapp org.gtk.exampleapp.gschema.valid: org.gtk.exampleapp.gschema.xml $(GLIB_COMPILE_SCHEMAS) --strict --dry-run --schema-file=$< && mkdir -p $(@D) && touch $@ gschemas.compiled: org.gtk.exampleapp.gschema.valid $(GLIB_COMPILE_SCHEMAS) . resources.c: exampleapp.gresource.xml window.ui app-menu.ui $(GLIB_COMPILE_RESOURCES) exampleapp.gresource.xml --target=$@ --sourcedir=. --generate-source %.o: %.c $(CC) -c -o $(@F) $(CFLAGS) $< exampleapp: $(OBJS) gschemas.compiled $(CC) -o $(@F) $(LIBS) $(OBJS) clean: rm -f org.gtk.exampleapp.gschema.valid rm -f gschemas.compiled rm -f resources.c rm -f $(OBJS) rm -f exampleapp