-targets = blerg.a blergtool http_blerg
-blerg_a_objects = database.o tags.o
-blergtool_objects = blergtool.o blerg.a
-http_blerg_objects = http_blerg.o canned_responses.o auth.o blerg.a
+ARCH=$(shell uname -m)
+CFLAGS ?= -g
+ifeq ($(ARCH),x86_64)
+ CFLAGS += -fPIC
+endif
+INCLUDES = -I. -Idatabase -Icommon -Ibuilddeps/scrypt-1.1.6/lib/crypto $(YAJL_INCLUDES)
+HTTP_INCLUDES = -Ihttp $(MHD_INCLUDES)
+CGI_INCLUDES = -Icgi $(CGI_UTIL_INCLUDES)
+LDFLAGS ?=
+HTTP_LIBDIRS = $(MHD_LIBDIR) $(YAJL_LIBDIR)
+CGI_LIBDIRS = $(CGI_UTIL_LIBDIR) $(YAJL_LIBDIR)
+
+targets = blerg.a blerg_auth.a blergtool blerglatest blerg.cgi www/build/enyo-blerg.js
+blerg_a_objects = database/database.o database/tags.o database/util.o database/subscription.o common/stringbucket.o
+blerg_auth_a_objects = common/auth.o common/md5.o
+blergtool_objects = tools/blergtool.o blerg.a
+blerglatest_objects = tools/blerglatest.o blerg.a common/json.o
+http_blerg_objects = http/http_blerg.o http/canned_responses.o common/app.o common/json.o blerg_auth.a builddeps/scrypt.a blerg.a
+cgi_blerg_objects = cgi/cgi_blerg.o cgi/canned_responses.o common/app.o common/json.o blerg_auth.a builddeps/scrypt.a blerg.a