-CFLAGS ?= -std=c99 -pedantic -pedantic-errors -Wall -Wextra -O2
+CFLAGS ?= -std=c99 -pedantic -Wall -Wextra -O2
+
+# Don't make pedantic checks errors,
+# as vanilla libusb-1.0.8 can't live with that
+#CFLAGS += -pedantic-errors
+
+# GCC >= 4.6
+#CFLAGS += -Wunused-but-set-variable
+
CFLAGS += -fno-common \
-Wall \
-Wextra \
-Wswitch-enum \
-Wundef \
-Wunreachable-code \
- -Wunsafe-loop-optimizations \
- -Wunused-but-set-variable \
-Wwrite-strings
-CFLAGS += $(shell pkg-config --cflags libusb-1.0)
-LDFLAGS += $(shell pkg-config --libs libusb-1.0)
+ifneq ($(CC),clang)
+ CFLAGS += -Wunsafe-loop-optimizations
+endif
+
+CFLAGS += $(shell pkg-config --cflags libusb-1.0)
+LDLIBS += $(shell pkg-config --libs libusb-1.0)
PREFIX ?= /usr/local
bindir := $(PREFIX)/sbin
rm -f endian.h
./endian > endian.h
-kinect_upload_fw: endian.h kinect_upload_fw.o
+kinect_upload_fw.o: endian.h
+
+kinect_upload_fw: kinect_upload_fw.o
install: kinect_upload_fw