1-
21# Use C++11
32CXXFLAGS += -std=c++11
43
@@ -10,19 +9,25 @@ CXXFLAGS += $(PYTHON_INCLUDE)
109LDFLAGS += $(shell $(PYTHON_CONFIG ) --libs)
1110
1211# Either finds numpy or set -DWITHOUT_NUMPY
13- CURRENT_DIR : = $(abspath $(dir $(lastword $( MAKEFILE_LIST ) ) ) )
14- CXXFLAGS + = $(shell $(PYTHON_BIN ) $( CURRENT_DIR ) /numpy_flags.py )
12+ CXXFLAGS + = $(shell $(PYTHON_BIN ) $(CURDIR ) /numpy_flags.py )
13+ WITHOUT_NUMPY : = $(findstring $(CXXFLAGS ) , WITHOUT_NUMPY )
1514
16- # Assume every *.cpp file is a separate example
17- SOURCES ?= $(wildcard examples/* .cpp)
18- EXECUTABLES := $(foreach exec,$(basename $(SOURCES ) ) ,$(exec ) )
15+ # Examples requiring numpy support to compile
16+ EXAMPLES_NUMPY := surface
17+ EXAMPLES := minimal basic modern animation nonblock xkcd quiver bar fill_inbetween fill update subplot2grid \
18+ $(if WITHOUT_NUMPY,,$(EXAMPLES_NUMPY ) )
19+
20+ # Prefix every example with 'examples/build/'
21+ EXAMPLE_TARGETS := $(patsubst % ,examples/build/% ,$(EXAMPLES ) )
1922
2023.PHONY : examples
2124
22- examples : $(EXECUTABLES )
25+ examples : $(EXAMPLE_TARGETS )
2326
24- $(EXECUTABLES ) : % : % .cpp
27+ # Assume every *.cpp file is a separate example
28+ $(EXAMPLE_TARGETS ) : examples/build/% : examples/% .cpp
29+ mkdir -p examples/build
2530$(CXX ) -o $@ $< $(CXXFLAGS ) $(LDFLAGS )
2631
2732clean :
28- rm -f ${EXECUTABLES }
33+ rm -f ${EXAMPLE_TARGETS }
0 commit comments