@@ -16,65 +16,42 @@ definitions = -std=c++11
1616# Eigen include
1717eigen_include = -I /usr/local/include/eigen3
1818
19- examples : minimal basic modern animation nonblock xkcd quiver bar surface subplot fill_inbetween fill update
19+ # Executable names for examples (w/o Eigen)
20+ example_execs = minimal basic animation nonblock xkcd quiver bar surface subplot fill_inbetween fill update
2021
21- eigen : eigen_basic eigen_modern eigen_loglog eigen_semilogx eigen_semilogy
22+ # Executable names for examples using Eigen
23+ eigen_execs = eigen loglog semilogx semilogy small
2224
23- minimal : examples/minimal.cpp matplotlibcpp.h
24- cd examples && g++ -DWITHOUT_NUMPY minimal.cpp ${includes} ${linkings} -o minimal ${definitions}
25- # cd examples && g++ minimal.cpp ${includes} ${linkings} -o minimal ${definitions}
25+ # Example targets (default if just 'make' is called)
26+ examples : $(example_execs )
2627
27- basic : examples/basic.cpp matplotlibcpp.h
28- cd examples && g++ basic.cpp ${includes} ${linkings} -o basic ${definitions}
28+ # Eigen example targets
29+ eigen : $( eigen_execs )
2930
10BC0
30- modern : examples/modern.cpp matplotlibcpp.h
31- cd examples && g++ modern.cpp ${includes} ${linkings} -o modern ${definitions}
31+ # All examples
32+ all : examples eigen
3233
33- animation : examples/animation.cpp matplotlibcpp.h
34- cd examples && g++ animation.cpp ${includes} ${linkings} -o animation ${definitions}
34+ # Run all examples
35+ run : run_examples run_eigen
3536
36- nonblock : examples/nonblock.cpp matplotlibcpp.h
37- cd examples && g++ nonblock.cpp ${includes} ${linkings} -o nonblock ${definitions}
37+ # Compiler instructions for examples
38+ $(example_execs ) : % : examples/% .cpp matplotlibcpp.h
39+ g++ $< $(includes ) $(linkings ) -o examples/$@ $(definitions )
3840
39- quiver : examples/quiver.cpp matplotlibcpp.h
40- cd examples && g++ quiver.cpp ${includes} ${linkings} -o quiver ${definitions}
41+ # Run examples
42+ run_examples :
43+ for exec in $( example_execs) ; do ./examples/$$ exec; done
4144
42- xkcd : examples/xkcd.cpp matplotlibcpp.h
43- cd examples && g++ xkcd.cpp ${includes} ${linkings} -o xkcd ${definitions}
45+ # Compiler instructions for Eigen examples
46+ $(eigen_execs ) : % : examples/% .cpp matplotlibcpp.h
47+ g++ $< $(includes ) $(eigen_include ) $(linkings ) -o examples/$@ $(definitions )
4448
45- bar : examples/bar.cpp matplotlibcpp.h
46- cd examples && g++ bar.cpp ${includes} ${linkings} -o bar ${definitions}
47-
48- surface : examples/surface.cpp matplotlibcpp.h
49- cd examples && g++ surface.cpp ${includes} ${linkings} -o surface ${definitions}
50-
51- subplot : examples/subplot.cpp matplotlibcpp.h
52- cd examples && g++ subplot.cpp ${includes} ${linkings} -o subplot ${definitions}
53-
54- fill_inbetween : examples/fill_inbetween.cpp matplotlibcpp.h
55- cd examples && g++ fill_inbetween.cpp ${includes} ${linkings} -o fill_inbetween ${definitions}
56-
57- fill : examples/fill.cpp matplotlibcpp.h
58- cd examples && g++ fill.cpp ${includes} ${linkings} -o fill ${definitions}
59-
60- update : examples/update.cpp matplotlibcpp.h
61- cd examples && g++ update.cpp ${includes} ${linkings} -o update ${definitions}
62-
63- eigen_basic : examples/eigen/basic.cpp matplotlibcpp.h
64- cd examples/eigen && g++ basic.cpp ${includes} ${eigen_include} ${linkings} -o $@ ${definitions}
65-
66- eigen_modern : examples/eigen/modern.cpp matplotlibcpp.h
67- cd examples/eigen && g++ modern.cpp ${includes} ${eigen_include} ${linkings} -o $@ ${definitions}
68-
69- eigen_loglog : examples/eigen/loglog.cpp matplotlibcpp.h
70- cd examples/eigen && g++ loglog.cpp ${includes} ${eigen_include} ${linkings} -o $@ ${definitions}
71-
72- eigen_semilogx : examples/eigen/semilogx.cpp matplotlibcpp.h
73- cd examples/eigen && g++ semilogx.cpp ${includes} ${eigen_include} ${linkings} -o $@ ${definitions}
74-
75- eigen_semilogy : examples/eigen/semilogy.cpp matplotlibcpp.h
76- cd examples/eigen && g++ semilogy.cpp ${includes} ${eigen_include} ${linkings} -o $@ ${definitions}
49+ # Run Eigen examples
50+ run_eigen :
51+ for exec in $( eigen_execs) ; do ./examples/$$ exec; done
7752
53+ # Clean all
7854clean :
79- rm -f examples/{minimal,basic,modern,animation,nonblock,xkcd,quiver,bar,surface,subplot,fill_inbetween,fill,update}
80- rm -f examples/eigen/{eigen_basic,eigen_modern,eigen_loglog}
55+ # -f to silent warnings if file does not exist
56+ for exec in $( example_execs) ; do rm -f examples/$$ exec; done
57+ for exec in $( eigen_execs) ; do rm -f examples/$$ exec; done
0 commit comments