freebsd-ports/math/py-pandas/Makefile
Mathieu Arnold 551be3c723 Convert Python ports to FLAVORS.
Ports using USE_PYTHON=distutils are now flavored.  They will
  automatically get flavors (py27, py34, py35, py36) depending on what
  versions they support.

  There is also a USE_PYTHON=flavors for ports that do not use distutils
  but need FLAVORS to be set.  A USE_PYTHON=noflavors can be set if
  using distutils but flavors are not wanted.

  A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
  added to cope with Python ports that did not have the Python
  PKGNAMEPREFIX but are flavored.

  USES=python now also exports a PY_FLAVOR variable that contains the
  current python flavor.  It can be used in dependency lines when the
  port itself is not python flavored.  For example, deskutils/calibre.

  By default, all the flavors are generated.  To only generate flavors
  for the versions in PYTHON2_DEFAULT and PYTHON3_DEFAULT, define
  BUILD_DEFAULT_PYTHON_FLAVORS in your make.conf.

  In all the ports with Python dependencies, the *_DEPENDS entries MUST
  end with the flavor so that the framework knows which to build/use.
  This is done by appending '@${PY_FLAVOR}' after the origin (or
  @${FLAVOR} if in a Python module with Python flavors, as the content
  will be the same).  For example:

    RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}

PR:		223071
Reviewed by:	portmgr, python
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D12464
2017-11-30 15:50:30 +00:00

120 lines
5.3 KiB
Makefile

# $FreeBSD$
PORTNAME= pandas
DISTVERSION= 0.21.0
CATEGORIES= math devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= john@saltant.com
COMMENT= Flexible, high-performance data analysis in Python
LICENSE= BSD3CLAUSE
BUILD_DEPENDS= ${PYNUMPY}
RUN_DEPENDS:= ${BUILD_DEPENDS} \
${PYTHON_PKGNAMEPREFIX}dateutil>=1.5:devel/py-dateutil@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${FLAVOR}
TEST_DEPENDS:= ${RUN_DEPENDS} \
nosetests-${PYTHON_VER}:devel/py-nose \
${PYTHON_PKGNAMEPREFIX}sqlalchemy10>0:databases/py-sqlalchemy10@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}boto>0:devel/py-boto@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tables>=3.0.0:devel/py-tables@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bottleneck>0:math/py-bottleneck@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}numexpr>=2.4.6:math/py-numexpr@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}openpyxl>=2.2.0:textproc/py-openpyxl@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}xlrd>0:textproc/py-xlrd@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}xlwt>0:textproc/py-xlwt@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}XlsxWriter>0:textproc/py-xlsxwriter@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${FLAVOR}
# Note: we cannot include math/py-statsmodels in TEST_DEPENDS because it
# depends upon us for BUILD and RUN.
OPTIONS_DEFINE= MPL SCIPY
OPTIONS_GROUP= ACCEL STORAGE HTML EXCEL
OPTIONS_RADIO= SQL
OPTIONS_GROUP_ACCEL= BTLNCK NUMEXPR
OPTIONS_GROUP_STORAGE= BOTO TABLES
OPTIONS_GROUP_HTML= LXML HTML5LIB JINJA2
OPTIONS_GROUP_EXCEL= XLRD XLWT OPENPYXL XLSX
OPTIONS_RADIO_SQL= ALCHEMY10 ALCHEMY11
OPTIONS_DEFAULT= BTLNCK NUMEXPR
MPL_DESC= Support graphical plotting output via math/py-matplotlib
SCIPY_DESC= Support various statistical functions via science/py-scipy
BTLNCK_DESC= Accelerate certain NaN evals via math/py-bottleneck
NUMEXPR_DESC= Accelerate certain numerical ops via math/py-numexpr
BOTO_DESC= Support Amazon S3 storage via devel/py-boto
TABLES_DESC= Support HDF5-based storage via devel/py-tables
LXML_DESC= Parse HTML with devel/py-lxml and www/py-beautifulsoup
JINJA2_DESC= Support conditional HTML formatting with devel/py-Jinja2
HTML5LIB_DESC= Parse HTML with www/py-html5lib and www/py-beautifulsoup
OPENPYXL_DESC= Read/write MS Excel 2007+ with textproc/py-openpyxl
XLRD_DESC= Read MS Excel with textproc/py-xlrd
XLWT_DESC= Write MS Excel with textproc/py-xlwt
XLSX_DESC= Write MS Excel with textproc/py-xlsxwriter
ALCHEMY10_DESC= Support SQL databases via databases/py-sqlalchemy10
ALCHEMY11_DESC= Support SQL databases via databases/py-sqlalchemy11
ACCEL_DESC= Computation Acceleration Add-ons
STORAGE_DESC= Data Storage Add-ons
SQL_DESC= SQLAlchemy ORM Add-ons
HTML_DESC= HTML Parsing/Generation Add-ons
EXCEL_DESC= MS Excel I/O Add-ons
MPL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${FLAVOR}
SCIPY_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${FLAVOR}
BTLNCK_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bottleneck>0:math/py-bottleneck@${FLAVOR}
NUMEXPR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numexpr>=2.4.6:math/py-numexpr@${FLAVOR}
BOTO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto>0:devel/py-boto@${FLAVOR}
TABLES_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tables>=3.0.0:devel/py-tables@${FLAVOR}
LXML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${FLAVOR}
HTML5LIB_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${FLAVOR}
JINJA2_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${FLAVOR}
OPENPYXL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}openpyxl>=2.2.0:textproc/py-openpyxl@${FLAVOR}
XLRD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}xlrd>0:textproc/py-xlrd@${FLAVOR}
XLWT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}xlwt>0:textproc/py-xlwt@${FLAVOR}
XLSX_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}XlsxWriter>0:textproc/py-xlsxwriter@${FLAVOR}
ALCHEMY10_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy10>0:databases/py-sqlalchemy10@${FLAVOR}
ALCHEMY11_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy11>0:databases/py-sqlalchemy11@${FLAVOR}
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MLXML} || ${PORT_OPTIONS:MHTML5LIB}
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${FLAVOR}
.endif
SUB_FILES= pkg-message
# Official support for 2.7, 3.5, and 3.6
USES= python
USE_PYTHON= autoplist distutils cython
# Uncomment the following line to enable regression-test
# on a headless (X11-less) host (eg: RedPorts)
#USES+= display:regression-test
XUNITFILE= ${WRKDIR}/nosetests.xml
NOSE_ENV= http_proxy=${HTTP_PROXY}
NOSE_ARGS= ${PORTNAME} --exe --with-xunit --xunit-file=${XUNITFILE}
post-install:
@${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} \
-name '*.so' -exec ${STRIP_CMD} {} +
regression-test: build
@(cd ${WRKSRC} && \
${PYTHON_CMD} ${PYSETUP} build_ext --inplace && \
${PYTHON_CMD} -c 'import pandas.util.print_versions as pv; pv.show_versions()' && \
( ${SETENV} ${NOSE_ENV} nosetests-${PYTHON_VER} ${NOSE_ARGS} || ${TRUE} ) && \
${PYTHON_CMD} ${SCRIPTDIR}/print_skipped.py ${XUNITFILE} \
)
.include <bsd.port.mk>