| # $Id$ |
| |
| PYBINDING_DEPS = tools/python-yasm/bytecode.pxi |
| PYBINDING_DEPS += tools/python-yasm/errwarn.pxi |
| PYBINDING_DEPS += tools/python-yasm/expr.pxi |
| PYBINDING_DEPS += tools/python-yasm/floatnum.pxi |
| PYBINDING_DEPS += tools/python-yasm/intnum.pxi |
| PYBINDING_DEPS += tools/python-yasm/symrec.pxi |
| PYBINDING_DEPS += tools/python-yasm/value.pxi |
| |
| EXTRA_DIST += tools/python-yasm/pyxelator/cparse.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/genpyx.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/ir.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/lexer.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/node.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/parse_core.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/work_unit.py |
| EXTRA_DIST += tools/python-yasm/pyxelator/wrap_yasm.py |
| EXTRA_DIST += tools/python-yasm/setup.py |
| EXTRA_DIST += tools/python-yasm/yasm.pyx |
| EXTRA_DIST += $(PYBINDING_DEPS) |
| |
| if HAVE_PYTHON_BINDINGS |
| |
| # Use Pyxelator to generate Pyrex function headers. |
| _yasm.pxi: ${HEADERS} |
| @rm -rf .tmp |
| @mkdir .tmp |
| $(PYTHON) $(srcdir)/tools/python-yasm/pyxelator/wrap_yasm.py \ |
| "YASM_DIR=${srcdir}" "CPP=${CPP}" "CPPFLAGS=${CPPFLAGS}" |
| @rm -rf .tmp |
| |
| CLEANFILES += _yasm.pxi |
| |
| # Need to build a local copy of the main Pyrex input file to include _yasm.pxi |
| # from the build directory. Also need to fixup the other .pxi include paths. |
| yasm.pyx: $(srcdir)/tools/python-yasm/yasm.pyx |
| sed -e 's,^include "\([^_]\),include "${srcdir}/tools/python-yasm/\1,' \ |
| $(srcdir)/tools/python-yasm/yasm.pyx > $@ |
| |
| CLEANFILES += yasm.pyx |
| |
| # Actually run Pyrex |
| yasm_python.c: yasm.pyx _yasm.pxi $(PYBINDING_DEPS) |
| $(PYTHON) -c "from Pyrex.Compiler.Main import main; main(command_line=1)" \ |
| -o $@ yasm.pyx |
| |
| CLEANFILES += yasm_python.c |
| |
| # Now the Python build magic... |
| python-setup.txt: Makefile |
| echo "includes=${DEFS} ${DEFAULT_INCLUDES} ${INCLUDES} ${AM_CPPFLAGS} ${CPPFLAGS}" > python-setup.txt |
| echo "sources=${libyasm_a_SOURCES}" >> python-setup.txt |
| echo "srcdir=${srcdir}" >> python-setup.txt |
| echo "gcc=${GCC}" >> python-setup.txt |
| |
| CLEANFILES += python-setup.txt |
| |
| .python-build: python-setup.txt yasm_python.c ${libyasm_a_SOURCES} |
| $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py build |
| touch .python-build |
| python-build: .python-build |
| |
| CLEANFILES += .python-build |
| |
| python-install: .python-build |
| $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py install "--install-lib=$(DESTDIR)$(pythondir)" |
| |
| python-uninstall: |
| rm -f `$(PYTHON) -c "import sys;sys.path.insert(0, '${DESTDIR}${pythondir}'); import yasm; print yasm.__file__"` |
| |
| else |
| |
| python-build: |
| python-install: |
| python-uninstall: |
| |
| endif |
| |
| EXTRA_DIST += tools/python-yasm/tests/Makefile.inc |
| include tools/python-yasm/tests/Makefile.inc |