-Wswitch-enum \
            -Wundef \
            -Wunreachable-code \
-           -Wunsafe-loop-optimizations \
-           -Wunused-but-set-variable \
            -Wwrite-strings \
            -Wp,-D_FORTIFY_SOURCE=2 \
            -fstack-protector \
            --param=ssp-buffer-size=4
 
+COMPILER = $(shell $(CXX) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc)
+
+ifeq ($(COMPILER), gcc)
+  CXXFLAGS += -Wunsafe-loop-optimizations \
+             -Wunused-but-set-variable
+endif
+
+ifeq ($(COMPILER), clang)
+  LDFLAGS += -Qunused-arguments
+endif
+
 CXXFLAGS += $(shell pkg-config --cflags opencv)
 LDLIBS += $(shell pkg-config --libs opencv)