1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278
|
# Makefile.in
#
# Copyright © 2012, 2013 Brandon Invergo <brandon@invergo.net>
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
# This Makefile contains targets that fail if run in parallel
.NOTPARALLEL:
# List whatever files you want to include in your source distribution here.
# You can include whole directories but note that *everything* under that
# directory will be included
DISTFILES = PKG-INFO Makefile.in configure setup.py install-sh
DESTDIR =
VPATH = @srcdir@
SED = @SED@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_DISTNAME = ${PACKAGE_NAME}-${PACKAGE_VERSION}
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PYTHON = @PYTHON@
VIRTUALENV = @VIRTUALENV@
SPHINXBUILD = @SPHINXBUILD@
SHELL = @SHELL@
MKDIR_P = @MKDIR_P@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
prefix = @prefix@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
pythondir = @pythondir@
pyexecdir = @pyexecdir@
pkgdatadir = $(datadir)/@PACKAGE_NAME@
pkgincludedir = $(includedir)/@PACKAGE_NAME@
pkgpythondir = @pkgpythondir@
pkgpyexecdir = @pkgpyexecdir@
PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir)
SWIG=@SWIG@
CFITSIO_CFLAGS = @CFITSIO_CFLAGS@
CFITSIO_LIBS = @CFITSIO_LIBS@
XERCES_CFLAGS = @XERCES_CFLAGS@
XERCES_LIBS = @XERCES_LIBS@
UDUNITS_CFLAGS = @UDUNITS_CFLAGS@
UDUNITS_CPPFLAGS = @UDUNITS_CPPFLAGS@
UDUNITS_LDFLAGS = @UDUNITS_LDFLAGS@
UDUNITS_LIBS = @UDUNITS_LIBS@
CXX=@CXX@
CC=$(CXX)
PYTHON = @PYTHON@
PYTHON_ABI_FLAGS = @PYTHON_ABI_FLAGS@
PYTHON_CFLAGS = @PYTHON_CFLAGS@
PYTHON_CONFIG = @PYTHON_CONFIG@
PYTHON_EXTENSION_SUFFIX = @PYTHON_EXTENSION_SUFFIX@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
PYTHON_LIBS = @PYTHON_LIBS@
PYTHON_PREFIX = @PYTHON_PREFIX@
CPPFLAGS=-I../include -I$(top_srcdir)/include $(CFITSIO_CFLAGS) $(XERCES_CFLAGS) $(UDUNITS_CFLAGS)
CXXFLAGS=@CXXFLAGS@ $(CFITSIO_CFLAGS) $(XERCES_CFLAGS) $(UDUNITS_CFLAGS)
CFLAGS=$(CXXFLAGS)
SWIG_CMD = $(SWIG) -I../include -I$(srcdir)/../include -c++ -python -outdir swig_output
export LDFLAGS
export CFLAGS
export CPPFLAGS
export CXXFLAGS
export CXX
export CC
GYOTO_EXTENSIONS = gyoto/_core$(PYTHON_EXTENSION_SUFFIX) \
gyoto/_std$(PYTHON_EXTENSION_SUFFIX)
GYOTO_PYFILES = gyoto/core.py gyoto/std.py
GYOTO_SWIGFILES = $(srcdir)/gyoto.i $(srcdir)/gyoto_std.i gyoto_doc.i $(srcdir)/numpy.i $(srcdir)/gyoto_swig.h $(srcdir)/gyoto_std_swig.h
@HAVE_LORENE_TRUE@GYOTO_EXTENSIONS += gyoto/_lorene$(PYTHON_EXTENSION_SUFFIX)
@HAVE_LORENE_TRUE@GYOTO_PYFILES += gyoto/lorene.py
@HAVE_LORENE_TRUE@GYOTO_SWIGFILES += $(srcdir)/gyoto_lorene.i
all: $(GYOTO_PYFILES) $(GYOTO_EXTENSIONS) directories setup-check
setup-check:
cp -f build/lib.*/gyoto/*.so gyoto/
directories:
mkdir -p dist
mkdir -p Gyoto.egg-info
../doc/xml/index.xml:
cd ../doc; $(MAKE) doxygen.stamp
gyoto_doc.i.orig: ../doc/xml/index.xml
$(PYTHON) $(srcdir)/doxy2swig.py --no-function-definition $< $@ || rm $@
gyoto_doc.i: gyoto_doc.i.orig
$(SED) -e 's/Gyoto::Screen::Angles/Angles/' \
-e 's/Gyoto::Screen::Bucket/Bucket/' \
-e 's/Gyoto::Screen::Coord1dSet/Coord1dSet/' \
-e 's/Gyoto::Screen::Coord2dSet/Coord2dSet/' \
-e 's/Gyoto::Screen::Empty/Empty/' \
-e 's/Gyoto::Screen::Grid/Grid/' \
-e 's/Gyoto::Screen::Indices/Indices/' \
-e 's/Gyoto::Screen::Range/Range/' \
-e 's/Gyoto::Screen::RepeatAngle/RepeatAngle/' \
$< > $@
gyoto/_core$(PYTHON_EXTENSION_SUFFIX): core_wrap.cxx
$(PYTHON) setup.py build
gyoto/_std$(PYTHON_EXTENSION_SUFFIX): std_wrap.cxx
$(PYTHON) setup.py build
gyoto/_lorene$(PYTHON_EXTENSION_SUFFIX): lorene_wrap.cxx
$(PYTHON) setup.py build
gyoto/core.py: $(srcdir)/headers/core swig_output/core.py
$(MKDIR_P) `dirname $@`
cat $^ > $@
gyoto/std.py: $(srcdir)/headers/std swig_output/std.py
$(MKDIR_P) `dirname $@`
cat $^ > $@
gyoto/lorene.py: $(srcdir)/headers/lorene swig_output/lorene.py
$(MKDIR_P) `dirname $@`
cat $^ > $@
swig_output/core.py core_wrap.cxx: gyoto.i gyoto_doc.i $(top_srcdir)/include/*.h $(builddir)/../include/*.h
$(MKDIR_P) swig_output
$(SWIG_CMD) -o core_wrap.cxx $(srcdir)/gyoto.i
swig_output/std.py std_wrap.cxx: gyoto_std.i gyoto.i gyoto_doc.i $(top_srcdir)/include/*.h $(builddir)/../include/*.h
$(MKDIR_P) swig_output
$(SWIG_CMD) -o std_wrap.cxx $(srcdir)/gyoto_std.i
swig_output/lorene.py lorene_wrap.cxx: gyoto_lorene.i gyoto.i gyoto_doc.i $(top_srcdir)/include/*.h $(builddir)/../include/*.h
$(MKDIR_P) swig_output
$(SWIG_CMD) -o lorene_wrap.cxx $(srcdir)/gyoto_lorene.i
.PHONY: all setup-check install uninstall distclean info install-html html install-pdf pdf install-dvi dvi install-ps ps clean dist check installdirs
# Since installing to a virtualenv is all the rage these days, support it here. If the VIRTUALENV
# variable is set to anything other than "no", set up a new virtualenv and install there, otherwise
# install as usual from setup.py
install: all installdirs
ifneq ($(VIRTUALENV),no)
$(VIRTUALENV) $(VIRTUALENV_FLAGS) $(DESTDIR)$(prefix) || $(VIRTUALENV) $(DESTDIR)$(prefix)
$(DESTDIR)$(prefix)/bin/python setup.py install --prefix=$(DESTDIR)$(prefix)
else
$(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix) --record=gyoto_installed.txt
endif
$(INSTALL_DATA) $(GYOTO_SWIGFILES) $(DESTDIR)$(pkgincludedir)
# setup.py doesn't (yet) support an uninstall command, so until it does, you
# must manually remove everything that was installed here. The following example
# should remove a basic package installed via setup.py, but please double- and
# triple-check it so that you don't remove something you shouldn't!
# Be sure to remove any extra files you install, such as binaries or documentation!
uninstall:
-cd $(DESTDIR)$(pkgincludedir) ; \
for file in $(GYOTO_SWIGFILES) numpy.i gyoto_swig.h ; do \
rm `basename $$file` ;\
done
-rm -rvf $(DESTDIR)$(pkgpythondir)
-cat gyoto_*installed.txt | xargs rm
-rmdir $(DESTDIR)$(pkgincludedir)
# Just use the usual setup.py clean command
clean:
$(PYTHON) setup.py clean
-rm -Rf build dist swig_output $(GYOTO_PYFILES) $(GYOTO_EXTENSIONS)
-rm *.pyc gyoto_doc.i gyoto_doc.i.orig
-rm -f doxygen_sqlite3.db gyoto_*installed.txt
-rm -f tests/*.pyc *_wrap.cxx gyoto/*.pyc gyoto/*.so
-rm -Rf _gyoto*.so Gyoto*.egg-info _*.so
-rm -Rf dist gyoto/__pycache__/ tests/__pycache__/ .eggs/ __pycache__/
# Clean up the output of configure
distclean: clean
-rm -v $(builddir)/setup*.py
-rm -v $(builddir)/Makefile
# You can either use the setup.py sdist command or you can roll your own here
dist:
# $(PYTHON) setup.py sdist
mkdir $(PACKAGE_DISTNAME)
cp -r $(DISTFILES) $(PACKAGE_DISTNAME)
tar -czf $(PACKAGE_DISTNAME).tar.gz $(PACKAGE_DISTNAME)
rm -rf $(PACKAGE_DISTNAME)
# Use the setup.py test command
check:
LD_LIBRARY_PATH=../lib/.libs:$$LD_LIBRARY_PATH PYTHONPATH=.:$$PYTHONPATH $(PYTHON) -m unittest discover -s tests -p "*.py"
# setup.py might complain if a directory doesn't exist so just in case, make the directory
# here
installdirs:
$(MKDIR_P) $(DESTDIR)$(pkgpythondir)
$(MKDIR_P) $(DESTDIR)$(pkgincludedir)
# The following show how to install documentation. In this example,
# docs are built from a separate Makefile contained in the docs
# directory which uses the SPHINXBUILD variable to store the location
# of the sphinx-build (Python doc tool) binary to use.
# $(DESTDIR)$(infodir)/foo.info: docs/build/texinfo/foo.info
# $(POST_INSTALL)
# $(INSTALL_DATA) @< $(DESTDIR)$@
# if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then
# install-info --dir-file=$(DESTDIR)$(infodir)/dir \
# $(DESTDIR)$(infodir)/foo.info;
# else true; fi
#
# info: docs/build/texinfo/foo.info
#
# docs/build/texinfo/foo.info: $(wildcard docs/source/*)
# ifneq ($(SPHINXBUILD),no)
# $(MAKE) -C docs info SPHINXBUILD=$(SPHINXBUILD)
# endif
#
#
# install-html: html installdirs
# $(INSTALL_DATA) docs/build/html/* $(DESTDIR)$(htmldir)
#
# html: docs/build/html/index.html
#
# docs/build/html/index.html: $(wildcard $(srcdir)/docs/source/*)
# ifneq ($(SPHINXBUILD),no)
# $(MAKE) -C docs html SPHINXBUILD=$(SPHINXBUILD)
# endif
#
#
# install-pdf: pdf installdirs
# $(INSTALL_DATA) docs/build/latex/foo.pdf $(DESTDIR)$(pdfdir)
#
# pdf: docs/build/latex/Foo.pdf
#
# docs/build/latex/foo.pdf: $(wildcard $(srcdir)/docs/source/*)
# ifneq ($(SPHINXBUILD),no)
# $(MAKE) -C docs latexpdf SPHINXBUILD=$(SPHINXBUILD)
# endif
#
#
# install-dvi:
#
# dvi:
#
# install-ps:
#
# ps:
|