SUMMARY="An interpreted, interactive, object-oriented programming language"
DESCRIPTION="Python is a programming language that lets you work more quickly \
and integrate your systems more effectively. You can learn to use Python and \
see almost immediate gains in productivity and lower maintenance costs.
Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \
and .NET virtual machines.
Python is free to use, even for commercial products, because of its \
OSI-approved open source license."
HOMEPAGE="https://www.python.org/"
COPYRIGHT="1990-2018 Python Software Foundation"
LICENSE="Python"
REVISION="2"
SOURCE_URI="https://www.python.org/ftp/python/$portVersion/Python-$portVersion.tar.xz"
CHECKSUM_SHA256="b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43"
SOURCE_DIR="Python-$portVersion"
PATCHES="python-$portVersion.patchset"

ARCHITECTURES="all"

GLOBAL_WRITABLE_FILES="
	non-packaged/lib/python2.7/site-packages directory keep-old
	"

PROVIDES="
	python = $portVersion compat >= 2.7
	cmd:2to3 = $portVersion compat >= 2.7
	cmd:idle = $portVersion compat >= 2.7
	cmd:pydoc = $portVersion compat >= 2.7
	cmd:python = $portVersion compat >= 2.7
	cmd:python2 = $portVersion compat >= 2.7
	cmd:python2.7 = $portVersion compat >= 2.7
	cmd:python2.7_config = $portVersion compat >= 2.7
	cmd:python2_config = $portVersion compat >= 2.7
	cmd:python_config = $portVersion compat >= 2.7
	cmd:smtpd.py = $portVersion compat >= 2.7
	devel:libpython2.7 = 1.0
	lib:libpython2.7 = 1.0
	"
REQUIRES="
	haiku
	lib:libbz2
	lib:libffi
	lib:libintl
	lib:libncurses
	lib:libedit
	lib:libsqlite3
	lib:libssl
	lib:libz
	"

BUILD_REQUIRES="
	devel:libbz2
	devel:libffi
	devel:libncurses
	devel:libedit
	devel:libsqlite3
	devel:libssl
	devel:libz
	"
BUILD_PREREQUIRES="
	haiku_devel
	cmd:aclocal
	cmd:autoconf
	cmd:find
	cmd:gcc
	cmd:ld
	cmd:libtoolize
	cmd:make
	cmd:pkg_config
	"

BUILD()
{
	cd Modules/_ctypes/libffi
	libtoolize --force --copy --install
	cd ../../..

	libtoolize --force --copy --install
	aclocal
	autoconf
	runConfigure ./configure --with-system-ffi \
		--enable-shared \
		--enable-unicode=ucs4

	# prevent make from rebuilding stuff that requires python
	touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h \
		Python/opcode_targets.h

	make $jobArgs
}

INSTALL()
{
	make install

	prepareInstalledDevelLibs libpython2.7
	fixPkgconfig

	mkdir -p $prefix/lib/python2.7/vendor-packages
	echo 'This directory contains packaged python modules.' \
		>$prefix/lib/python2.7/vendor-packages/README

	mkdir -p $prefix/non-packaged/lib/python2.7
	mv $prefix/lib/python2.7/site-packages $prefix/non-packaged/lib/python2.7/
}

TEST()
{
	make $jobArgs test
}
