diff --git a/usr/Makefile b/usr/Makefile
index 30cd34a..125274b 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -1,3 +1,7 @@
+#
+# Makefile for tgt userspace tools
+#
+
 ifneq ($(XEN),)
 XEN_ROOT = ../..
 include $(XEN_ROOT)/tools/Rules.mk
@@ -6,9 +10,9 @@ INCLUDES += -I$(XEN_LIBXC) -I$(XEN_XENST
 INCLUDES += -I$(LINUX_ROOT)/include -I.
 LIBAIO_DIR = ../libaio/src
 AIOLIBS := $(LIBAIO_DIR)/libaio.a
-CFLAGS += -I$(XEN_LIBXC) -I$(LIBAIO_DIR)
-CFLAGS += $(INCLUDES) -I. -I../../xenstore 
-CFLAGS += -DXEN -DUSE_KERNEL
+INCLUDES += -I$(XEN_LIBXC) -I$(LIBAIO_DIR)
+INCLUDES += -I. -I../../xenstore 
+DEFINES += -DXEN -DUSE_KERNEL
 LIBS := -L. -L.. -L../lib
 LIBS += -L$(XEN_LIBXC)
 LIBS += -lxenctrl
@@ -16,7 +20,7 @@ LIBS += -L$(XEN_XENSTORE) -lxenstore $(A
 TGTD_OBJS += $(addprefix xen/, xen.o xs_api.o xenbus.o)
 TGTD_OBJS += tgtif.o bs_xen.o
 else
-INCLUDES += -I../include -I$(KERNELSRC)/include
+INCLUDES += -I../include
 LIBS += -laio
 endif
 
@@ -26,14 +30,14 @@ else
 TGTD_OBJS += spt_sgv3.o
 endif
 
-ifneq ($(IBMVIO),)
-CFLAGS += -DIBMVIO -DUSE_KERNEL
+ifeq ($(IBMVIO),1)
+DEFINES += -DIBMVIO -DUSE_KERNEL
 TGTD_OBJS += $(addprefix ibmvio/, ibmvio.o)
 TGTD_OBJS += bs_mmap.o tgtif.o
 endif
 
-ifneq ($(ISCSI),)
-CFLAGS += -DISCSI
+ifeq ($(ISCSI),1)
+DEFINES += -DISCSI
 TGTD_OBJS += $(addprefix iscsi/, conn.o param.o session.o iscsid.o target.o \
 	chap.o transport.o iscsi_tcp.o)
 TGTD_OBJS += bs_aio.o
@@ -41,7 +45,8 @@ LIBS += -lcrypto -lpthread
 endif
 
 INCLUDES += -I.
-CFLAGS += -Wall -g -O2 -Wstrict-prototypes -fPIC -D_LARGEFILE64_SOURCE $(INCLUDES)
+DEFINES += -D_LARGEFILE64_SOURCE
+CFLAGS += -Wall -g -O2 -Wstrict-prototypes -fPIC 
 
 PROGRAMS += tgtd tgtadm
 TGTD_OBJS += tgtd.o mgmt.o target.o spc.o sbc.o mmc.o osd.o spt.o scsi.o log.o \
@@ -62,3 +67,7 @@ endif
 
 clean:
 	rm -f *.o $(PROGRAMS) iscsi/*.o ibmvio/*.o xen/*.o
+
+%.o: %.c
+	$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@
+
