-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)