From 3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Tue, 24 Feb 2015 12:35:45 +0100 Subject: Added Python interface --- build/linux/Makefile.in | 45 +++++++++++++++++++++++++++++++++++++++++++-- build/linux/configure.ac | 31 ++++++++++++++++++++++++------- 2 files changed, 67 insertions(+), 9 deletions(-) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 685e1e5..fe1ba91 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -1,5 +1,7 @@ cuda=@HAVECUDA@ matlab=@HAVEMATLAB@ +python=@HAVEPYTHON@ + MATLAB_ROOT=@MATLAB_ROOT@ @@ -9,6 +11,10 @@ ifeq ($(matlab),yes) TARGETS+=mex endif +ifeq ($(python),yes) +TARGETS+=py +endif + all: $(TARGETS) prefix=@prefix@ @@ -39,6 +45,14 @@ CXXFLAGS+=-fopenmp LDFLAGS+=-fopenmp endif +ifeq ($(python),yes) +PYCPPFLAGS = ${CPPFLAGS} +PYCPPFLAGS += -I../include +PYLDFLAGS = ${LDFLAGS} +PYLDFLAGS += -L../build/linux/.libs +PYTHON = @PYTHON@ +endif + BOOST_CPPFLAGS= BOOST_LDFLAGS= @@ -53,7 +67,7 @@ LD=@CXX@ SHELL=@SHELL@ ifeq ($(matlab),yes) -MEXFLAGS = -cxx +MEXFLAGS = -cxx MEXLDFLAGS='$$LDFLAGS $(LDFLAGS)' MEXLIBS = -L.libs -lut MEXSUFFIX = @MEXSUFFIX@ @@ -226,6 +240,14 @@ mex: $(MATLAB_MEX) $(MEX) LDFLAGS=$(MEXLDFLAGS) $(MEXFLAGS) $(LIBS) $(MEXLIBS) -lastra -output $* $*.o $(MATLAB_CXX_OBJECTS) endif +ifeq ($(python),yes) +py: libastra.la + cd ../../python; CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py install \ + --install-base=./finalbuild --install-headers=./finalbuild --install-purelib=./finalbuild \ + --install-platlib=./finalbuild --install-scripts=./finalbuild --install-data=./finalbuild +endif + + libastra.la: $(ALL_OBJECTS) ./libtool --mode=link --tag=CXX $(LD) -rpath $(LIBDIR) -o $@ $(LDFLAGS) $(LIBS) $+ @@ -278,6 +300,8 @@ clean: rm -f $(addsuffix /*.d,$(DEPDIRS)) rm -f $(addsuffix /*,$(LIBDIRS)) rm -f $(TEST_OBJECTS) test.bin + rm -fr ../../python/finalbuild/ + rm -fr ../../python/build/ distclean: clean rm -f config.guess config.sub ltmain.sh libtool install-sh @@ -286,7 +310,7 @@ distclean: clean rm -rf autom4te.cache rm -f configure Makefile -install: install-libraries install-matlab +install: install-libraries install-matlab install-python install-libraries: libastra.la ./install-sh -m 755 -d @libdir@ @@ -306,6 +330,23 @@ else install-matlab: endif +ifeq ($(python),yes) +# TODO: This install location doesn't work well for /usr or /usr/local +install-python: py + ./install-sh -m 755 -d @prefix@/python + ./install-sh -m 755 -d @prefix@/python/astra + ./install-sh -m 644 ../../python/finalbuild/astra/*.so @prefix@/python/astra + ./install-sh -m 644 ../../python/finalbuild/astra/*.py @prefix@/python/astra + ./install-sh -m 644 ../../python/finalbuild/*.egg-info @prefix@/python/ + @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + @echo "To use ASTRA in Python, add @prefix@/python/ to your PYTHONPATH" + @echo "and @libdir@ to your LD_LIBRARY_PATH." + @echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" +# TODO: docs +else +install-python: +endif + Makefile: Makefile.in config.status CONFIG_HEADERS= CONFIG_LINKS= CONFIG_FILES=$@ $(SHELL) ./config.status diff --git a/build/linux/configure.ac b/build/linux/configure.ac index f99c4d3..7ad03c3 100644 --- a/build/linux/configure.ac +++ b/build/linux/configure.ac @@ -1,26 +1,26 @@ dnl ----------------------------------------------------------------------- dnl Copyright: 2010-2015, iMinds-Vision Lab, University of Antwerp dnl 2014-2015, CWI, Amsterdam -dnl +dnl dnl Contact: astra@uantwerpen.be dnl Website: http://sf.net/projects/astra-toolbox -dnl +dnl dnl This file is part of the ASTRA Toolbox. -dnl -dnl +dnl +dnl dnl The ASTRA Toolbox is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. -dnl +dnl dnl The ASTRA Toolbox is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. -dnl +dnl dnl You should have received a copy of the GNU General Public License dnl along with the ASTRA Toolbox. If not, see . -dnl +dnl dnl ----------------------------------------------------------------------- dnl $Id$ @@ -166,6 +166,23 @@ fi AC_SUBST(HAVEMATLAB) +# python + +AC_ARG_WITH(python, [[ --with-python=path path of Python (optional)]],,) + +PY_PATH=$PATH +HAVEPYTHON=no +if test x"$with_python" != x; then + PY_PATH="$with_python:$PY_PATH" + AC_PATH_PROG([PYTHON], [python], [no], [$PY_PATH]) + if test x"$PYTHON" != xno; then + HAVEPYTHON=yes + AC_SUBST(PYTHON) + fi +fi + +AC_SUBST(HAVEPYTHON) + # TODO: -- cgit v1.2.3