Makefile: ignore warnings in OpenCV headers
[experiments/opencv_trail_effect.git] / Makefile
index de166de..bd0d850 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CXXFLAGS = -ansi -pedantic -pedantic-errors -Wall -g3 -O2 -D_ANSI_SOURCE_
+CXXFLAGS = -std=c++11 -pedantic -pedantic-errors -Wall -g3 -O2 -D_ANSI_SOURCE_
 CXXFLAGS += -fno-common \
            -fvisibility=hidden \
            -Wall \
@@ -18,18 +18,29 @@ CXXFLAGS += -fno-common \
            -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
 
-CXXFLAGS += $(shell pkg-config --cflags opencv)
-LDLIBS += $(shell pkg-config --libs opencv)
+COMPILER = $(shell $(CXX) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc)
 
-opencv_trail_effect: $(wildcard *.hpp)
+ifeq ($(COMPILER), gcc)
+  CXXFLAGS += -Wunsafe-loop-optimizations \
+             -Wunused-but-set-variable
+endif
 
+ifeq ($(COMPILER), clang)
+  LDFLAGS += -Qunused-arguments
+endif
+
+CXXFLAGS += $(shell pkg-config --cflags opencv4 | sed -e 's/-I/-isystem/g')
+LDLIBS += $(shell pkg-config --libs opencv4)
+
+LINK.o = $(LINK.cpp)
+opencv_trail_effect:
+
+opencv_trail_effect.o: $(wildcard *.hpp)
 
 # Some command lines to imitate different trail styles
 
@@ -46,7 +57,7 @@ average: opencv_trail_effect
        ./opencv_trail_effect -l 10 -s background -d average -B
 
 clean:
-       rm -f opencv_trail_effect vgdump gtk.suppression
+       rm -f *.o opencv_trail_effect vgdump gtk.suppression
 
 test: opencv_trail_effect
        [ -f gtk.suppression ] || wget -nv https://people.gnome.org/~johan/gtk.suppression