mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-01 23:28:08 -07:00
dev-python/pypy-bin: Sync to dev-python/pypy
This commit is contained in:
@@ -99,60 +99,14 @@ src_compile() {
|
||||
mv pypy/module/cpyext/include/* include/ || die
|
||||
mv pypy/module/cpyext/parse/*.h include/ || die
|
||||
|
||||
use doc && emake -C pypy/doc/ html
|
||||
#needed even without jit :( also needed in both compile and install phases
|
||||
pax-mark m pypy-c libpypy-c.so
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# (unset)
|
||||
local -x PYTHONDONTWRITEBYTECODE
|
||||
use doc && emake -C pypy/doc html
|
||||
|
||||
./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest=/usr/$(get_libdir)/pypy
|
||||
einfo "Installing PyPy ..."
|
||||
insinto "${dest}"
|
||||
doins -r include lib_pypy lib-python pypy-c libpypy-c.so
|
||||
fperms a+x ${dest}/pypy-c ${dest}/libpypy-c.so
|
||||
pax-mark m "${ED%/}${dest}/pypy-c" "${ED%/}${dest}/libpypy-c.so"
|
||||
dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
|
||||
dodoc README.rst
|
||||
|
||||
if ! use gdbm; then
|
||||
rm -r "${ED%/}${dest}"/lib_pypy/gdbm.py \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_gdbm.py || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${ED%/}${dest}"/lib-python/*2.7/sqlite3 \
|
||||
"${ED%/}${dest}"/lib_pypy/_sqlite3.py \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_sqlite.py || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED%/}${dest}"/lib-python/*2.7/{idlelib,lib-tk} \
|
||||
"${ED%/}${dest}"/lib_pypy/_tkinter \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
|
||||
fi
|
||||
|
||||
# Install docs
|
||||
use doc && dodoc -r pypy/doc/_build/html
|
||||
|
||||
einfo "Generating caches and byte-compiling ..."
|
||||
|
||||
local -x PYTHON=${ED%/}${dest}/pypy-c
|
||||
local -x LD_LIBRARY_PATH="${ED%/}${dest}"
|
||||
# we can't use eclass function since PyPy is dumb and always gives
|
||||
# paths relative to the interpreter
|
||||
local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy/site-packages
|
||||
python_export pypy EPYTHON
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
einfo "Generating caches and CFFI modules ..."
|
||||
|
||||
# Generate Grammar and PatternGrammar pickles.
|
||||
"${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
|
||||
./pypy-c -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
|
||||
|| die "Generation of Grammar and PatternGrammar pickles failed"
|
||||
|
||||
# Generate cffi modules
|
||||
@@ -174,15 +128,63 @@ src_install() {
|
||||
local t
|
||||
# all modules except tkinter output to .
|
||||
# tkinter outputs to the correct dir ...
|
||||
cd "${ED%/}${dest}"/lib_pypy || die
|
||||
cd lib_pypy || die
|
||||
for t in "${cffi_targets[@]}"; do
|
||||
# tkinter doesn't work via -m
|
||||
"${PYTHON}" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
|
||||
../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
|
||||
done
|
||||
|
||||
# Cleanup temporary objects
|
||||
find "${ED%/}${dest}" -name "_cffi_*.[co]" -delete || die
|
||||
find "${ED%/}${dest}" -type d -empty -delete || die
|
||||
find -name "_cffi_*.[co]" -delete || die
|
||||
find -type d -empty -delete || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# (unset)
|
||||
local -x PYTHONDONTWRITEBYTECODE
|
||||
|
||||
./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest=/usr/$(get_libdir)/pypy
|
||||
einfo "Installing PyPy ..."
|
||||
exeinto "${dest}"
|
||||
doexe pypy-c libpypy-c.so
|
||||
pax-mark m "${ED%/}${dest}/pypy-c" "${ED%/}${dest}/libpypy-c.so"
|
||||
insinto "${dest}"
|
||||
doins -r include lib_pypy lib-python
|
||||
dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
|
||||
dodoc README.rst
|
||||
|
||||
if ! use gdbm; then
|
||||
rm -r "${ED%/}${dest}"/lib_pypy/gdbm.py \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_gdbm.py || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${ED%/}${dest}"/lib-python/*2.7/sqlite3 \
|
||||
"${ED%/}${dest}"/lib_pypy/_sqlite3.py \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_sqlite.py || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED%/}${dest}"/lib-python/*2.7/{idlelib,lib-tk} \
|
||||
"${ED%/}${dest}"/lib_pypy/_tkinter \
|
||||
"${ED%/}${dest}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
|
||||
fi
|
||||
|
||||
# Install docs
|
||||
use doc && dodoc -r pypy/doc/_build/html
|
||||
|
||||
local -x PYTHON=${ED%/}${dest}/pypy-c
|
||||
# we can't use eclass function since PyPy is dumb and always gives
|
||||
# paths relative to the interpreter
|
||||
local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy/site-packages
|
||||
python_export pypy EPYTHON
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
einfo "Byte-compiling Python standard library..."
|
||||
|
||||
# compile the installed modules
|
||||
python_optimize "${ED%/}${dest}"
|
||||
|
||||
Reference in New Issue
Block a user