123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # Use C++11
- MATPLOTLIBCPP_CXXFLAGS = -std=c++11
- # Default to using system's default version of python
- PYTHON_BIN := python
- PYTHON_CONFIG := $(PYTHON_BIN)-config
- PYTHON_INCLUDE ?= $(shell $(PYTHON_CONFIG) --includes)
- MATPLOTLIBCPP_CXXFLAGS += $(PYTHON_INCLUDE)
- MATPLOTLIBCPP_LDFLAGS += $(shell $(PYTHON_CONFIG) --libs)
- # If these checks have false positives, please remove this check and file a github issue.
- $(if $(PYTHON_INCLUDE),,$(error \
- Could not auto-detect python development headers. \
- Please install python-dev or similar, or manually \
- specify PYTHON_INCLUDE=...))
- # If we have to add 1-2 more of these checks, I'll probably eventually bite the
- # bullet and switch to cmake/autoconf.
- test_matplotlib != $(PYTHON_BIN) -c 'import matplotlib'
- WITH_MATPLOTLIB = $(.SHELLSTATUS)
- $(ifeq $(WITH
- # Either finds numpy or set -DWITHOUT_NUMPY
- MATPLOTLIBCPP_CXXFLAGS += $(shell $(PYTHON_BIN) $(CURDIR)/numpy_flags.py)
- WITHOUT_NUMPY := $(findstring $(CXXFLAGS), WITHOUT_NUMPY)
- # Examples requiring numpy support to compile
- EXAMPLES_NUMPY := surface
- EXAMPLES := minimal basic modern animation nonblock xkcd quiver bar fill_inbetween fill update subplot2grid \
- $(if WITHOUT_NUMPY,,$(EXAMPLES_NUMPY))
- # Prefix every example with 'examples/build/'
- EXAMPLE_TARGETS := $(patsubst %,examples/build/%,$(EXAMPLES))
- .PHONY: examples
- examples: $(EXAMPLE_TARGETS)
- # Assume every *.cpp file is a separate example
- $(EXAMPLE_TARGETS): examples/build/%: examples/%.cpp
- mkdir -p examples/build
- $(CXX) -o $@ $< $(MATPLOTLIBCPP_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) $(MATPLOTLIBCPP_LDFLAGS)
- clean:
- rm -f ${EXAMPLE_TARGETS}
- install:
- cp matplotlibcpp.h $(DESTDIR)$(PREFIX)/include/matplotlibcpp.h
|