소스 검색

WIP: install target

Benno Evers 5 년 전
부모
커밋
e1fad58179
1개의 변경된 파일24개의 추가작업 그리고 9개의 파일을 삭제
  1. 24 9
      Makefile

+ 24 - 9
Makefile

@@ -1,16 +1,28 @@
 # Use C++11
-CXXFLAGS += -std=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)
-CXXFLAGS       += $(PYTHON_INCLUDE)
-LDFLAGS        += $(shell $(PYTHON_CONFIG) --libs)
+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
-CXXFLAGS        += $(shell $(PYTHON_BIN) $(CURDIR)/numpy_flags.py)
-WITHOUT_NUMPY   := $(findstring $(CXXFLAGS), WITHOUT_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
@@ -27,7 +39,10 @@ examples: $(EXAMPLE_TARGETS)
 # Assume every *.cpp file is a separate example
 $(EXAMPLE_TARGETS): examples/build/%: examples/%.cpp
 	mkdir -p examples/build
-	$(CXX) -o $@ $< $(CXXFLAGS) $(LDFLAGS)
+	$(CXX) -o $@ $< $(MATPLOTLIBCPP_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) $(MATPLOTLIBCPP_LDFLAGS)
 
 clean:
 	rm -f ${EXAMPLE_TARGETS}
+
+install:
+	cp matplotlibcpp.h $(DESTDIR)$(PREFIX)/include/matplotlibcpp.h