From fab3c9ab472f1044f8aaf5d08f398f08995ba338 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 21 Nov 2016 13:27:46 +0100 Subject: Separate python build and install steps --- build/linux/Makefile.in | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 50afc1c..865a936 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -309,14 +309,10 @@ endif ifeq ($(python),yes) py: libastra.la $(MKDIR) python/build - $(MKDIR) python/finalbuild # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. - cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install \ - --install-base=$(abs_top_builddir)/python/finalbuild --install-headers=$(abs_top_builddir)/python/finalbuild --install-purelib=$(abs_top_builddir)/python/finalbuild \ - --install-platlib=$(abs_top_builddir)/python/finalbuild --install-scripts=$(abs_top_builddir)/python/finalbuild --install-data=$(abs_top_builddir)/python/finalbuild + cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build -python-root-install: libastra.la - $(MKDIR) python/build +python-root-install: py # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install @@ -433,6 +429,11 @@ endif ifeq ($(python),yes) # TODO: This install location doesn't work well for /usr or /usr/local install-python: py + $(MKDIR) python/finalbuild + # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. + cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install \ + --install-base=$(abs_top_builddir)/python/finalbuild --install-headers=$(abs_top_builddir)/python/finalbuild --install-purelib=$(abs_top_builddir)/python/finalbuild \ + --install-platlib=$(abs_top_builddir)/python/finalbuild --install-scripts=$(abs_top_builddir)/python/finalbuild --install-data=$(abs_top_builddir)/python/finalbuild $(INSTALL_SH) -m 755 -d @prefix@/python $(INSTALL_SH) -m 755 -d @prefix@/python/astra $(INSTALL_SH) -m 755 -d @prefix@/python/astra/plugins -- cgit v1.2.3 From 7e10c16eee71c608a1dba1dd2fec8471567f6b61 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 21 Nov 2016 17:00:50 +0100 Subject: Overhaul package installation There are now three ways of installing from configure/make: ./configure --with-install-type=prefix (default) libraries go into @libdir@ matlab tools/mex go into @datadir@/astra/matlab octave tools/mex go into @datadir@/astra/octave python module goes into site-packages ./configure --with-install-type=dir libraries go into @prefix@/lib matlab tools/mex go into @prefix@/matlab octave tools/mex go into @prefix@/octave python module goes into @prefix@/python ./configure --with-install-type=module matlab tools/mex go into @prefix@/matlab octave tools/mex go into @prefix@/octave python module goes into site-packages library is installed along with the matlab/octave/python module(s), with rpath --- build/linux/Makefile.in | 183 ++++++++++++++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 69 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 865a936..1c7088e 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -1,12 +1,19 @@ +install_type=@INSTALL_TYPE@ + cuda=@HAVECUDA@ matlab=@HAVEMATLAB@ python=@HAVEPYTHON@ boostutf=@HAVEBOOSTUTF@ - MATLAB_ROOT=@MATLAB_ROOT@ octave=@HAVEOCTAVE@ +MKDIR=mkdir -p +CXX=@CXX@ +LD=@CXX@ +SHELL=@SHELL@ +INSTALL_SH=$(SHELL) $(srcdir)/install-sh + TARGETS=libastra.la ifeq ($(matlab),yes) @@ -25,6 +32,7 @@ all: $(TARGETS) prefix=@prefix@ exec_prefix=@exec_prefix@ +datarootdir=@datarootdir@ srcdir=@srcdir@ abs_top_builddir=@abs_top_builddir@ @@ -43,6 +51,8 @@ LDFLAGS+=-g CPPFLAGS+=@CPPFLAGS_OS@ +BOOSTUTF_LIBS=@LIBS_BOOSTUTF@ + ifeq ($(cuda),yes) CPPFLAGS += @CPPFLAGS_CUDA@ -DASTRA_CUDA NVCCFLAGS += @NVCCFLAGS_EXTRA@ @CPPFLAGS_CUDA@ -I$(srcdir)/../.. -I$(srcdir)/../../include -DASTRA_CUDA @@ -51,58 +61,38 @@ LIBS += -lcudart -lcufft NVCC = @NVCC@ endif -ifeq ($(octave),yes) -OCTLDFLAGS:=$(LDFLAGS) -CPPFLAGS += @OCTAVE_CPPFLAGS@ -ifeq ($(cuda),yes) -OCTFLAGS=-DASTRA_CUDA -else -OCTFLAGS= -endif -endif - ifeq ($(matlab),yes) +# TODO: Do we also want -fopenmp for octave? CPPFLAGS+=-I$(MATLAB_ROOT)/extern/include -DMATLAB_MEX_FILE CXXFLAGS+=-fopenmp LDFLAGS+=-fopenmp endif +# MODLDFLAGS are the base LDFLAGS for matlab, octave, python modules +MODLDFLAGS=$(LDFLAGS) -L$(abs_top_builddir)/.libs +ifeq ($(install_type),module) +MODLDFLAGS+=-Wl,-rpath,'\$$ORIGIN' +endif + ifeq ($(python),yes) PYTHON = @PYTHON@ -PYLIBDIR = $(shell $(PYTHON) -c 'from distutils.sysconfig import get_config_var; import six; six.print_(get_config_var("LIBDIR"))') -PYINCDIR = $(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_inc; import six; six.print_(get_python_inc())') +PYLIBDIR := $(shell $(PYTHON) -c 'from distutils.sysconfig import get_config_var; import six; six.print_(get_config_var("LIBDIR"))') +PYINCDIR := $(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_inc; import six; six.print_(get_python_inc())') PYLIBVER = `basename $(PYINCDIR)` CPPFLAGS += -DASTRA_PYTHON -I$(PYINCDIR) PYCPPFLAGS := $(CPPFLAGS) PYCPPFLAGS += -I../include -PYLDFLAGS = $(LDFLAGS) -PYLDFLAGS += -L$(abs_top_builddir)/.libs +PYLDFLAGS = $(MODLDFLAGS) endif # This is below where PYCPPFLAGS copies CPPFLAGS. The python code is built # from a different directory, so these relative includes would be wrong. CPPFLAGS+=-I$(srcdir)/../.. -I$(srcdir)/../../include -I$(srcdir)/../../lib/include -BOOST_CPPFLAGS= -BOOST_LDFLAGS= - -BOOSTUTF_LIBS=@LIBS_BOOSTUTF@ - - -CPPFLAGS+=$(BOOST_CPPFLAGS) -LDFLAGS+=$(BOOST_LDFLAGS) - - -MKDIR=mkdir -p -CXX=@CXX@ -LD=@CXX@ -SHELL=@SHELL@ -INSTALL_SH=$(SHELL) $(srcdir)/install-sh - ifeq ($(matlab),yes) MEXFLAGS = -cxx -MEXLDFLAGS='$$LDFLAGS $(LDFLAGS)' -MEXLIBS = -L.libs -lut +MEXLDFLAGS=\$$LDFLAGS $(MODLDFLAGS) +MEXLIBS = -lut MEXSUFFIX = @MEXSUFFIX@ MEX = @MEX@ @@ -111,13 +101,23 @@ MEXFLAGS += -DASTRA_CUDA endif ifeq ($(python),yes) -MEXPYLDFLAGS='$$LDFLAGS $(LDFLAGS) -L$(PYLIBDIR)' +# TODO: Why PYLIBDIR? +MEXPYLDFLAGS=\$$LDFLAGS $(MODLDFLAGS) -L$(PYLIBDIR) MEXPYLIBS=$(MEXLIBS) -l$(PYLIBVER) endif endif -LIBDIR=/usr/local/lib + +ifeq ($(octave),yes) +OCTLDFLAGS:=$(MODLDFLAGS) +CPPFLAGS += @OCTAVE_CPPFLAGS@ +ifeq ($(cuda),yes) +OCTFLAGS=-DASTRA_CUDA +else +OCTFLAGS= +endif +endif DEPDIR=.deps @@ -293,28 +293,28 @@ DEPDIRS = $(addsuffix $(DEPDIR),$(OBJECT_DIRS)) -include $(wildcard $(addsuffix /*.d,$(DEPDIRS))) LIBDIRS = $(addsuffix .libs,./ src/ cuda/2d/ cuda/3d/) +SONAME=$(shell . ${abs_top_builddir}/libastra.la; echo $$dlname) ifeq ($(matlab),yes) mex: $(MATLAB_MEX) %.$(MEXSUFFIX): %.o $(MATLAB_CXX_OBJECTS) libastra.la - $(MEX) LDFLAGS=$(MEXLDFLAGS) $(MEXFLAGS) $(LIBS) $(MEXLIBS) -lastra -output $* $*.o $(MATLAB_CXX_OBJECTS) + $(MEX) LDFLAGS="$(MEXLDFLAGS)" $(MEXFLAGS) $(LIBS) $(MEXLIBS) -lastra -output $* $*.o $(MATLAB_CXX_OBJECTS) ifeq ($(python),yes) matlab/mex/astra_mex_plugin_c.$(MEXSUFFIX): matlab/mex/astra_mex_plugin_c.o $(MATLAB_CXX_OBJECTS) libastra.la - $(MEX) LDFLAGS=$(MEXPYLDFLAGS) $(MEXFLAGS) $(LIBS) $(MEXPYLIBS) -lastra -output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) + $(MEX) LDFLAGS="$(MEXPYLDFLAGS)" $(MEXFLAGS) $(LIBS) $(MEXPYLIBS) -lastra -output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) endif endif ifeq ($(python),yes) py: libastra.la $(MKDIR) python/build - # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. - cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build - -python-root-install: py - # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. - cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install +# TODO: Avoid writing into source dir + ln -s $(abs_top_builddir)/.libs/$(SONAME) $(srcdir)/../../python/astra +# Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. + cd $(srcdir)/../../python; ASTRA_INSTALL_LIBRARY_AS_DATA=$(PYPKGDATA) CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS='${PYLDFLAGS}' $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build + rm $(srcdir)/../../python/astra/$(SONAME) endif @@ -327,7 +327,7 @@ oct: $(OCTAVE_MEX) endif libastra.la: $(ALL_OBJECTS) - ./libtool --mode=link --tag=CXX $(LD) -rpath $(LIBDIR) -o $@ $(LDFLAGS) $(LIBS) $+ + ./libtool --mode=link --tag=CXX $(LD) -rpath @libdir@ -o $@ $(LDFLAGS) $(LIBS) $+ %.o: %.cpp $(MKDIR) $(*D)/$(DEPDIR) @@ -406,32 +406,64 @@ distclean: clean rm -rf $(srcdir)/autom4te.cache rm -f $(srcdir)/configure Makefile -install: install-libraries install-matlab install-python install-octave - install-libraries: libastra.la $(INSTALL_SH) -m 755 -d @libdir@ ./libtool --mode=install $(INSTALL_SH) -m 644 libastra.la @libdir@ ./libtool --mode=finish @libdir@ -ifeq ($(matlab),yes) -# TODO: This install location doesn't work well for /usr or /usr/local -install-matlab: $(MATLAB_MEX) - $(INSTALL_SH) -m 755 -d @prefix@/matlab - $(INSTALL_SH) -m 755 -d @prefix@/matlab/mex - $(INSTALL_SH) -m 755 -d @prefix@/matlab/tools - $(INSTALL_SH) -m 644 $(MATLAB_MEX) @prefix@/matlab/mex - $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m @prefix@/matlab/tools -# TODO: docs + +# ------------------------ +# INSTALLATION +# ------------------------ + +ifeq ($(install_type),prefix) +# libraries into @libdir@, python into site-packages, mex into @datadir@ +install: install-libraries install-matlab python-root-install install-octave + +PYPKGDATA= +MATLABBASE=@datadir@/astra/matlab +OCTAVEBASE=@datadir@/astra/octave +endif + +ifeq ($(install_type),dir) +# everything into @prefix@ +install: install-libraries install-matlab install-python install-octave + +PYPKGDATA= +MATLABBASE=@prefix@/matlab +OCTAVEBASE=@prefix@/octave +PYTHONBASE=@prefix@/python +endif + +ifeq ($(install_type),module) +# python into site-packages, mex into @datadir@ +# library copied into python/mex directories +# modules built with rpath=$ORIGIN +install: install-matlab python-root-install install-octave + +PYPKGDATA=$(SONAME) +MATLABBASE=@prefix@/matlab +OCTAVEBASE=@prefix@/octave + +install-matlab-so: libastra.la + $(INSTALL_SH) -m 755 -d $(MATLABBASE)/mex + $(INSTALL_SH) -m 644 $(abs_top_builddir)/.libs/$(SONAME) $(MATLABBASE)/mex +install-octave-so: libastra.la + $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/mex + $(INSTALL_SH) -m 644 $(abs_top_builddir)/.libs/$(SONAME) $(OCTAVEBASE)/mex else -install-matlab: +install-matlab-so: +install-octave-so: endif + + ifeq ($(python),yes) # TODO: This install location doesn't work well for /usr or /usr/local install-python: py $(MKDIR) python/finalbuild # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. - cd $(srcdir)/../../python; CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install \ + cd $(srcdir)/../../python; ASTRA_INSTALL_LIBRARY_AS_DATA=$(PYPKGDATA) CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install \ --install-base=$(abs_top_builddir)/python/finalbuild --install-headers=$(abs_top_builddir)/python/finalbuild --install-purelib=$(abs_top_builddir)/python/finalbuild \ --install-platlib=$(abs_top_builddir)/python/finalbuild --install-scripts=$(abs_top_builddir)/python/finalbuild --install-data=$(abs_top_builddir)/python/finalbuild $(INSTALL_SH) -m 755 -d @prefix@/python @@ -441,23 +473,36 @@ install-python: py $(INSTALL_SH) -m 644 python/finalbuild/astra/*.py @prefix@/python/astra $(INSTALL_SH) -m 644 python/finalbuild/astra/plugins/*.py @prefix@/python/astra/plugins $(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 + +python-root-install: py +# Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. + cd $(srcdir)/../../python; ASTRA_INSTALL_LIBRARY_AS_DATA=$(PYPKGDATA) CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install else +python-root-install: install-python: endif +ifeq ($(matlab),yes) +install-matlab: $(MATLAB_MEX) install-matlab-so + $(INSTALL_SH) -m 755 -d $(MATLABBASE) + $(INSTALL_SH) -m 755 -d $(MATLABBASE)/mex + $(INSTALL_SH) -m 755 -d $(MATLABBASE)/tools + $(INSTALL_SH) -m 644 $(MATLAB_MEX) $(MATLABBASE)/mex + $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m $(MATLABBASE)/tools +# TODO: docs +else +install-matlab: +endif + + ifeq ($(octave),yes) -# TODO: This install location doesn't work well for /usr or /usr/local -install-octave: $(OCTAVE_MEX) - $(INSTALL_SH) -m 755 -d @prefix@/octave - $(INSTALL_SH) -m 755 -d @prefix@/octave/mex - $(INSTALL_SH) -m 755 -d @prefix@/octave/tools - $(INSTALL_SH) -m 644 $(OCTAVE_MEX) @prefix@/octave/mex - $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m @prefix@/octave/tools +install-octave: $(OCTAVE_MEX) install-octave-so + $(INSTALL_SH) -m 755 -d $(OCTAVEBASE) + $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/mex + $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/tools + $(INSTALL_SH) -m 644 $(OCTAVE_MEX) $(OCTAVEBASE)/mex + $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m $(OCTAVEBASE)/tools # TODO: docs else install-octave: @@ -475,7 +520,7 @@ $(srcdir)/configure: $(srcdir)/configure.ac @echo "configure.ac has been changed. Regenerating configure script" cd $(srcdir) && $(SHELL) ./autogen.sh -.PHONY: all mex test clean distclean install install-libraries py python-root-install install-python install-octave +.PHONY: all mex test clean distclean install install-libraries py python-root-install install-python install-octave install-matlab-so install-octave-so # don't remove intermediate files: .SECONDARY: -- cgit v1.2.3 From bb01a88b5176c13c6881489887ec789dd10849a0 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 22 Nov 2016 09:45:51 +0100 Subject: Build astra_mex_plugin for octave --- build/linux/Makefile.in | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 1c7088e..ecc3903 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -117,6 +117,12 @@ OCTFLAGS=-DASTRA_CUDA else OCTFLAGS= endif +ifeq ($(python),yes) +OCTPYLIBS=-l$(PYLIBVER) +else +OCTPYLIBS= +endif + endif DEPDIR=.deps @@ -270,10 +276,6 @@ MATLAB_MEX=\ matlab/mex/astra_mex_data3d_c.$(MEXSUFFIX) \ matlab/mex/astra_mex_direct_c.$(MEXSUFFIX) -ifeq ($(python),yes) -MATLAB_MEX+=matlab/mex/astra_mex_plugin_c.$(MEXSUFFIX) -endif - OCTAVE_CXX_OBJECTS=\ matlab/mex/octave_support.o @@ -288,6 +290,12 @@ OCTAVE_MEX=\ matlab/mex/astra_mex_data3d_c.mex \ matlab/mex/astra_mex_direct_c.mex +ifeq ($(python),yes) +MATLAB_MEX+=matlab/mex/astra_mex_plugin_c.$(MEXSUFFIX) +OCTAVE_MEX+=matlab/mex/astra_mex_plugin_c.mex +endif + + OBJECT_DIRS = src/ tests/ cuda/2d/ cuda/3d/ matlab/mex/ ./ DEPDIRS = $(addsuffix $(DEPDIR),$(OBJECT_DIRS)) -include $(wildcard $(addsuffix /*.d,$(DEPDIRS))) @@ -323,7 +331,12 @@ ifeq ($(octave),yes) oct: $(OCTAVE_MEX) %.mex: %.o $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) libastra.la - mkoctfile --mex $(OCTFLAGS) $(OCTLDFLAGS) $(LIBS) -L.libs -lastra --output $* $*.o $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) + mkoctfile --mex $(OCTFLAGS) $(OCTLDFLAGS) $(LIBS) -lastra --output $* $*.o $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) + +ifeq ($(python),yes) +matlab/mex/astra_mex_plugin_c.mex: matlab/mex/astra_mex_plugin_c.o $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) libastra.la + mkoctfile --mex $(OCTFLAGS) $(OCTLDFLAGS) $(LIBS) $(OCTPYLIBS) -lastra --output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) +endif endif libastra.la: $(ALL_OBJECTS) -- cgit v1.2.3 From e69de5d1f5c80c58f9351617bb9ea117fcc6cad3 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 22 Nov 2016 15:24:22 +0100 Subject: Clean up linking against libpython for oct/mex --- build/linux/Makefile.in | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index ecc3903..d760a8e 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -83,6 +83,7 @@ CPPFLAGS += -DASTRA_PYTHON -I$(PYINCDIR) PYCPPFLAGS := $(CPPFLAGS) PYCPPFLAGS += -I../include PYLDFLAGS = $(MODLDFLAGS) +MODPYLIBS=-l$(PYLIBVER) endif # This is below where PYCPPFLAGS copies CPPFLAGS. The python code is built @@ -100,12 +101,6 @@ ifeq ($(cuda),yes) MEXFLAGS += -DASTRA_CUDA endif -ifeq ($(python),yes) -# TODO: Why PYLIBDIR? -MEXPYLDFLAGS=\$$LDFLAGS $(MODLDFLAGS) -L$(PYLIBDIR) -MEXPYLIBS=$(MEXLIBS) -l$(PYLIBVER) -endif - endif @@ -117,14 +112,10 @@ OCTFLAGS=-DASTRA_CUDA else OCTFLAGS= endif -ifeq ($(python),yes) -OCTPYLIBS=-l$(PYLIBVER) -else -OCTPYLIBS= -endif endif + DEPDIR=.deps BASE_OBJECTS=\ @@ -311,7 +302,7 @@ mex: $(MATLAB_MEX) ifeq ($(python),yes) matlab/mex/astra_mex_plugin_c.$(MEXSUFFIX): matlab/mex/astra_mex_plugin_c.o $(MATLAB_CXX_OBJECTS) libastra.la - $(MEX) LDFLAGS="$(MEXPYLDFLAGS)" $(MEXFLAGS) $(LIBS) $(MEXPYLIBS) -lastra -output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) + $(MEX) LDFLAGS="$(MEXLDFLAGS)" $(MEXFLAGS) $(LIBS) $(MEXLIBS) $(MODPYLIBS) -lastra -output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) endif endif @@ -335,7 +326,7 @@ oct: $(OCTAVE_MEX) ifeq ($(python),yes) matlab/mex/astra_mex_plugin_c.mex: matlab/mex/astra_mex_plugin_c.o $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) libastra.la - mkoctfile --mex $(OCTFLAGS) $(OCTLDFLAGS) $(LIBS) $(OCTPYLIBS) -lastra --output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) + mkoctfile --mex $(OCTFLAGS) $(OCTLDFLAGS) $(LIBS) $(MODPYLIBS) -lastra --output matlab/mex/astra_mex_plugin_c $< $(MATLAB_CXX_OBJECTS) $(OCTAVE_CXX_OBJECTS) endif endif -- cgit v1.2.3 From bbda2ad4d12a839701737a98e210cef489d62177 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 22 Nov 2016 17:26:27 +0100 Subject: Avoid six for PYINCDIR in Makefile.in --- build/linux/Makefile.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index d760a8e..d248947 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -76,8 +76,7 @@ endif ifeq ($(python),yes) PYTHON = @PYTHON@ -PYLIBDIR := $(shell $(PYTHON) -c 'from distutils.sysconfig import get_config_var; import six; six.print_(get_config_var("LIBDIR"))') -PYINCDIR := $(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_inc; import six; six.print_(get_python_inc())') +PYINCDIR := $(shell $(PYTHON) -c 'from __future__ import print_function; from distutils.sysconfig import get_python_inc; print(get_python_inc())') PYLIBVER = `basename $(PYINCDIR)` CPPFLAGS += -DASTRA_PYTHON -I$(PYINCDIR) PYCPPFLAGS := $(CPPFLAGS) -- cgit v1.2.3 From 19e79122e3f58f22e96a003cc494e38ff255bb0d Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 22 Nov 2016 17:30:08 +0100 Subject: Rename python-root-install to install-python-site-packages --- build/linux/Makefile.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index d248947..0ca136a 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -421,7 +421,7 @@ install-libraries: libastra.la ifeq ($(install_type),prefix) # libraries into @libdir@, python into site-packages, mex into @datadir@ -install: install-libraries install-matlab python-root-install install-octave +install: install-libraries install-matlab install-python-site-packages install-octave PYPKGDATA= MATLABBASE=@datadir@/astra/matlab @@ -442,7 +442,7 @@ ifeq ($(install_type),module) # python into site-packages, mex into @datadir@ # library copied into python/mex directories # modules built with rpath=$ORIGIN -install: install-matlab python-root-install install-octave +install: install-matlab install-python-site-packages install-octave PYPKGDATA=$(SONAME) MATLABBASE=@prefix@/matlab @@ -478,11 +478,11 @@ install-python: py $(INSTALL_SH) -m 644 python/finalbuild/*.egg-info @prefix@/python/ # TODO: docs -python-root-install: py +install-python-site-packages: py # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. cd $(srcdir)/../../python; ASTRA_INSTALL_LIBRARY_AS_DATA=$(PYPKGDATA) CXX="${CXX}" CC="${CXX}" CPPFLAGS="${PYCPPFLAGS}" LDFLAGS="${PYLDFLAGS}" $(PYTHON) builder.py build --build-base=$(abs_top_builddir)/python/build install else -python-root-install: +install-python-site-packages: install-python: endif @@ -523,7 +523,7 @@ $(srcdir)/configure: $(srcdir)/configure.ac @echo "configure.ac has been changed. Regenerating configure script" cd $(srcdir) && $(SHELL) ./autogen.sh -.PHONY: all mex test clean distclean install install-libraries py python-root-install install-python install-octave install-matlab-so install-octave-so +.PHONY: all mex test clean distclean install install-libraries py install-python-site-packages install-python install-octave install-matlab-so install-octave-so # don't remove intermediate files: .SECONDARY: -- cgit v1.2.3 From e72b97ccd734c8bc8c4cb3cbedbb053fb0cd0849 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 22 Nov 2016 17:30:23 +0100 Subject: Remove resolved TODO --- build/linux/Makefile.in | 1 - 1 file changed, 1 deletion(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 0ca136a..d1ce5fb 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -462,7 +462,6 @@ endif ifeq ($(python),yes) -# TODO: This install location doesn't work well for /usr or /usr/local install-python: py $(MKDIR) python/finalbuild # Note: setting CC to CXX is intentional. Python uses CC for compilation even if input is C++. -- cgit v1.2.3 From 496d07d50118bd080e573686f65ed16e39be8f5b Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 23 Nov 2016 10:54:36 +0100 Subject: Make shared objects 755 --- build/linux/Makefile.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'build/linux/Makefile.in') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index d1ce5fb..ae43afa 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -450,10 +450,10 @@ OCTAVEBASE=@prefix@/octave install-matlab-so: libastra.la $(INSTALL_SH) -m 755 -d $(MATLABBASE)/mex - $(INSTALL_SH) -m 644 $(abs_top_builddir)/.libs/$(SONAME) $(MATLABBASE)/mex + $(INSTALL_SH) -m 755 $(abs_top_builddir)/.libs/$(SONAME) $(MATLABBASE)/mex install-octave-so: libastra.la $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/mex - $(INSTALL_SH) -m 644 $(abs_top_builddir)/.libs/$(SONAME) $(OCTAVEBASE)/mex + $(INSTALL_SH) -m 755 $(abs_top_builddir)/.libs/$(SONAME) $(OCTAVEBASE)/mex else install-matlab-so: install-octave-so: @@ -471,7 +471,7 @@ install-python: py $(INSTALL_SH) -m 755 -d @prefix@/python $(INSTALL_SH) -m 755 -d @prefix@/python/astra $(INSTALL_SH) -m 755 -d @prefix@/python/astra/plugins - $(INSTALL_SH) -m 644 python/finalbuild/astra/*.so @prefix@/python/astra + $(INSTALL_SH) -m 755 python/finalbuild/astra/*.so @prefix@/python/astra $(INSTALL_SH) -m 644 python/finalbuild/astra/*.py @prefix@/python/astra $(INSTALL_SH) -m 644 python/finalbuild/astra/plugins/*.py @prefix@/python/astra/plugins $(INSTALL_SH) -m 644 python/finalbuild/*.egg-info @prefix@/python/ @@ -490,7 +490,7 @@ install-matlab: $(MATLAB_MEX) install-matlab-so $(INSTALL_SH) -m 755 -d $(MATLABBASE) $(INSTALL_SH) -m 755 -d $(MATLABBASE)/mex $(INSTALL_SH) -m 755 -d $(MATLABBASE)/tools - $(INSTALL_SH) -m 644 $(MATLAB_MEX) $(MATLABBASE)/mex + $(INSTALL_SH) -m 755 $(MATLAB_MEX) $(MATLABBASE)/mex $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m $(MATLABBASE)/tools # TODO: docs else @@ -503,7 +503,7 @@ install-octave: $(OCTAVE_MEX) install-octave-so $(INSTALL_SH) -m 755 -d $(OCTAVEBASE) $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/mex $(INSTALL_SH) -m 755 -d $(OCTAVEBASE)/tools - $(INSTALL_SH) -m 644 $(OCTAVE_MEX) $(OCTAVEBASE)/mex + $(INSTALL_SH) -m 755 $(OCTAVE_MEX) $(OCTAVEBASE)/mex $(INSTALL_SH) -m 644 $(srcdir)/../../matlab/tools/*.m $(OCTAVEBASE)/tools # TODO: docs else -- cgit v1.2.3