--- /dev/null
+# Settings
+PROG = ct
+CC = gcc
+YACC = bison
+LEX = flex
+
+CFLAGS = -Wall -Werror -g --std=c99
+CPPFLAGS = $(shell pkg-config --cflags glib-2.0)
+LDFLAGS = $(shell pkg-config --libs glib-2.0)
+
+# Targets
+default: test
+
+all: $(PROG)
+
+test: $(PROG)
+ ./$(PROG) example/html.ct
+
+clean:
+ rm -f $(PROG) *.o *.a parse.h parse.c scan.c
+
+# Rules
+$(PROG): ct.o parse.o scan.o
+ $(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
+
+%.o: %.c parse.h
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+%.c: %.l parse.h
+ $(LEX) -o $@ $<
+
+%.c %.h: %.y
+ $(YACC) -d -o $*.c $*.y
+
+.SECONDARY: