Ele é definido em um arquivo de inclusão lido pelo programa make, por exemplo, por essa linha no final do makefile da porta:
.include <bsd.port.mk>
No meu sistema FreeBSD 10, os arquivos de inclusão estão em /usr/ports/Mk
, e grep
encontra essas correspondências:
$ fgrep -n PYTHON_REL *
bsd.python.mk:70:# PYTHON_REL - Version number in numerical format, to ease
bsd.python.mk:353:PYTHON_REL= 341
bsd.python.mk:364:PYTHON_REL= 335
bsd.python.mk:375:PYTHON_REL= 325
bsd.python.mk:386:PYTHON_REL= 278
bsd.python.mk:394:PYTHON_REL!= ${PYTHON_CMD} -c 'import sys; h = "%x" % sys.hexversion; \
bsd.python.mk:505: defined(PYTHON_REL)
bsd.python.mk:553:.if ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
bsd.python.mk:569:.endif # ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
e bsd.python.mk
estão incluídos condicionalmente ( grep
é seu amigo):
$ fgrep -n bsd.python.mk *
bsd.port.mk:398:# Implies inclusion of bsd.python.mk. (Also see
bsd.port.mk:1446:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.port.mk:1893:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.python.mk:4:# $FreeBSD: head/Mk/bsd.python.mk 362364 2014-07-20 19:47:45Z antoine $
bsd.python.mk:9:Python_Pre_Include= bsd.python.mk
bsd.python.mk:630:Python_Post_Include= bsd.python.mk
bsd.wx.mk:11:# variables (e.g. USE_PYTHON) are defined before it (this is a bsd.python.mk
e o comentário nesse arquivo diz
# USE_PYTHON - If set, this port relies on the Python language.
# Implies inclusion of bsd.python.mk. (Also see
# that file for more information on USE_PYTHON_*
# and USE_PYDISTUTILS).
e usa a configuração assim:
.if defined(USE_PYTHON) || defined(USE_PYTHON_BUILD) || defined(USE_PYTHON_RUN)
.include "${PORTSDIR}/Mk/bsd.python.mk"
.endif
Portanto, a resposta curta é que o makefile de sua porta não possui uma das configurações necessárias para incluir o arquivo que definiu PYTHON_REL
, por exemplo,
USE_PYTHON = yes
Há um bom arquivo README
na parte superior da árvore de portes, mostrando onde informações detalhadas podem ser encontradas.
Ao trabalhar com portas, talvez você queira acompanhar as alterações feitas. Por exemplo, bsd.python.mk
foi atualizado mais tarde, de acordo com o wiki do ports do FreeBSD :
Divida o bsd.python.mk em um USES para portas do consumidor e um arquivo .mk específico da árvore de portas ( 20140809: Commit r364450 )
e a variável PYTHON_REL
parece ter sido considerada obsoleta, uma vez que não estava mais definida após a confirmação (consulte arquivo ).
Se for importante para sua porta, você pode construir essa variável com algo como
PYTHON_REL = ${PYTHON3_DEFAULT:S/.//}