[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / lang / python27

File: [cvs.NetBSD.org] / pkgsrc / lang / python27 / Makefile (download)

Revision 1.80, Thu Apr 25 15:59:54 2019 UTC (4 years, 11 months ago) by roy
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2
Changes since 1.79: +2 -4 lines

python: Don't install nis_failed.so if no yp headers

Because python won't even try to build it.
You only see nis_failed.so if there is an error building it, when
it wanted to build it, and that should be fixed accordingly.

In a nutshell, if the yp headers are installed, python will build
the nis module, otherwise it won't.

On netbsd systems at least, if you have the yp headers installed and
subsequently re-install over the top with MKYP=no you get into the state
where the headers are installed, but the functions are no longer in libc.
This is an error with *your* system - either rebuild with MKYP=yes OR
remove the yp headers from include/rpc and include/rpcsvc.

Follow on fix for PR pkg/53673.

# $NetBSD: Makefile,v 1.80 2019/04/25 15:59:54 roy Exp $

.include "dist.mk"

PKGNAME=	python27-${PY_DISTVERSION}
CATEGORIES=	lang python

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://www.python.org/
COMMENT=	Interpreted, interactive, object-oriented programming language
LICENSE=	python-software-foundation

DEPENDS=	mozilla-rootcerts>=1.0.20150804nb1:../../security/mozilla-rootcerts

CONFLICTS+=	python-[0-9]*

USE_LANGUAGES=		c c++
GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--enable-shared
CONFIGURE_ARGS+=	--with-dbmliborder=ndbm:bdb
CONFIGURE_ARGS+=	--with-system-ffi
CONFIGURE_ARGS+=	--with-threads
CONFIGURE_ENV+=		MKDIR_P=${MKDIR:Q}
CONFIGURE_ENV+=		OPT=${CFLAGS:M*:Q}
PKGCONFIG_OVERRIDE+=	Misc/python.pc.in

LDFLAGS+=		-L${WRKSRC}

# $RANDOM usage there is fine
CHECK_PORTABILITY_SKIP=	Tools/faqwiz/move-faqwiz.sh

PTHREAD_OPTS+=		require
PTHREAD_AUTO_VARS=	yes
.include "../../mk/pthread.buildlink3.mk"
.if ${PTHREAD_TYPE} == "pth"
CONFIGURE_ARGS+=	--with-pth
.endif

.include "../../mk/compiler.mk"

# Clang needs -fwrapv
.if !empty(PKGSRC_COMPILER:Mclang)
CFLAGS+=	-fwrapv
.endif

.include "../../mk/bsd.prefs.mk"

# fdatasync()
LIBS.SunOS+=		-lrt

PY_VER_SUFFIX=		2.7

.if ${OPSYS} == "NetBSD"
# XXX work around a botched autoconf check which ignores libintl
CONFIGURE_ENV+=		ac_cv_func_bind_textdomain_codeset=yes
.endif

.if ${OPSYS} == "Cygwin" || ${OPSYS} == "Darwin" || ${OPSYS} == "Interix"
PY_PLATNAME=	${LOWER_OPSYS}
USE_TOOLS+=	gmake
.elif ${OPSYS} == "IRIX"
PY_PLATNAME=	${LOWER_OPSYS:C/\..*//}
.elif ${OPSYS} == "SunOS"
PY_PLATNAME=	sunos${OS_VERSION:C/\..*//}
.elif ${OPSYS} == "HPUX"
PY_PLATNAME=	hp-ux11
.elif ${OPSYS} == "Linux"
PY_PLATNAME=	linux2
.elif ${OS_VARIANT} == "SCOOSR5"
PY_PLATNAME=	sco_sv3
.else
PY_PLATNAME=	${LOWER_OPSYS}${OS_VERSION:C/\..*//}
.endif
PLIST_SUBST+=	PY_PLATNAME=${PY_PLATNAME:Q}

.if !empty(LP64PLATFORMS:@.PLAT.@${MACHINE_PLATFORM:M${.PLAT.}}@) || \
    (defined(ABI) && ${ABI} == "64")
IS_64BIT_PLATFORM?=	yes
.else
IS_64BIT_PLATFORM?=	no
.endif

PLIST_VARS+=	dl dll extra-so nis qt

# the dl module isn't built for 64 bit archs
.if empty(IS_64BIT_PLATFORM:M[yY][eE][sS])
PLIST.dl=	yes
.endif

# setup.py causes some modules to be built if the platform is *not* 64bit.
.if !empty(IS_64BIT_PLATFORM:M[nN][oO])
PLIST.extra-so=	yes
.endif

# For Xcode 5 we need to search the SDK path for headers, otherwise certain
# modules will not be built.
.if ${OPSYS} == "Darwin"
.  if exists(${OSX_SDK_PATH}/usr/include)
CFLAGS+=	-I${OSX_SDK_PATH:Q}/usr/include
.  endif
.  if exists(${OSX_SDK_PATH}/System/Library/Frameworks/QuickTime.framework)
PLIST.qt=	yes
.  endif
.endif

.if ${OPSYS} != "IRIX"
PLIST.dll=	yes
.endif

.for incdir in ${_OPSYS_INCLUDE_DIRS}
.  if (exists(${incdir}/rpc/rpc.h) || exists(${incdir}/tirpc/rpc/rpc.h))
HAVE_RPC_H=	yes
.  endif
.  if (exists(${incdir}/rpcsvc/yp_prot.h) || exists(${incdir}/nsl/rpcsvc/yp_prot.h))
HAVE_YP_PROT_H=	yes
.  endif
.endfor
.if (${HAVE_RPC_H:Uno} == yes && ${HAVE_YP_PROT_H:Uno} == yes)
PLIST.nis=	yes
.endif

# configure complains about buggy getaddrinfo()
CONFIGURE_ARGS.OSF1+=	--disable-ipv6

PLIST_SUBST+=	PY_VER_SUFFIX=${PY_VER_SUFFIX:Q}

TEST_TARGET=	test
INSTALL_TARGET=	altinstall

REPLACE_INTERPRETER+=	py27
REPLACE.py27.old=	.*python[^ ]*
REPLACE.py27.new=	${PREFIX}/bin/python${PY_VER_SUFFIX}
REPLACE_FILES.py27=	Lib/UserString.py
REPLACE_FILES.py27+=	Lib/base64.py
REPLACE_FILES.py27+=	Lib/cProfile.py
REPLACE_FILES.py27+=	Lib/cgi.py
REPLACE_FILES.py27+=	Lib/encodings/rot_13.py
REPLACE_FILES.py27+=	Lib/idlelib/PyShell.py
REPLACE_FILES.py27+=	Lib/keyword.py
REPLACE_FILES.py27+=	Lib/lib2to3/pgen2/token.py
REPLACE_FILES.py27+=	Lib/lib2to3/tests/data/different_encoding.py
REPLACE_FILES.py27+=	Lib/lib2to3/tests/data/false_encoding.py
REPLACE_FILES.py27+=	Lib/lib2to3/tests/pytree_idempotency.py
REPLACE_FILES.py27+=	Lib/mimify.py
REPLACE_FILES.py27+=	Lib/pdb.py
REPLACE_FILES.py27+=	Lib/plat-mac/appletrunner.py
REPLACE_FILES.py27+=	Lib/plat-mac/bundlebuilder.py
REPLACE_FILES.py27+=	Lib/platform.py
REPLACE_FILES.py27+=	Lib/profile.py
REPLACE_FILES.py27+=	Lib/pydoc.py
REPLACE_FILES.py27+=	Lib/quopri.py
REPLACE_FILES.py27+=	Lib/smtpd.py
REPLACE_FILES.py27+=	Lib/smtplib.py
REPLACE_FILES.py27+=	Lib/symbol.py
REPLACE_FILES.py27+=	Lib/tabnanny.py
REPLACE_FILES.py27+=	Lib/test/bisect_cmd.py
REPLACE_FILES.py27+=	Lib/test/curses_tests.py
REPLACE_FILES.py27+=	Lib/test/re_tests.py
REPLACE_FILES.py27+=	Lib/test/pystone.py
REPLACE_FILES.py27+=	Lib/test/regrtest.py
REPLACE_FILES.py27+=	Lib/timeit.py
REPLACE_FILES.py27+=	Lib/trace.py
REPLACE_FILES.py27+=	Lib/uu.py
REPLACE_FILES.py27+=	Lib/webbrowser.py

SUBST_CLASSES+=		libffi
SUBST_MESSAGE.libffi=	Fixing libffi include path on Darwin.
SUBST_STAGE.libffi=	pre-configure
SUBST_FILES.libffi=	setup.py
SUBST_SED.libffi=	-e 's,/usr/include/ffi,${BUILDLINK_PREFIX.libffi}/include,'

# XXX: It might be needed to add manually more paths like ${PREFIX}/qt5/lib
# Test: python -c 'from ctypes.util import find_library; print(find_library("ffi"));'
SUBST_CLASSES+=		findlib
SUBST_MESSAGE.findlib=	Fixing find_library().
SUBST_STAGE.findlib=	pre-configure
SUBST_FILES.findlib=	Lib/ctypes/macholib/dyld.py
SUBST_FILES.findlib+=	Lib/ctypes/util.py
SUBST_FILES.findlib+=	Lib/distutils/unixccompiler.py
SUBST_SED.findlib=	-e 's,/usr/local,${PREFIX},'
SUBST_SED.findlib+=	-e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!'

.include "options.mk"

SUBST_CLASSES+=		sslbase
SUBST_MESSAGE.sslbase=	Fixing find-file for openssl with SSLBASE.
SUBST_STAGE.sslbase=	pre-configure
SUBST_FILES.sslbase=	setup.py
SUBST_VARS.sslbase=	SSLBASE

SUBST_CLASSES+=		cacert
SUBST_MESSAGE.cacert=	Configuring location of default CA certificate file.
SUBST_STAGE.cacert=	pre-configure
SUBST_FILES.cacert=	Modules/_ssl.c
SUBST_VARS.cacert=	PREFIX

post-extract:
	${LN} -s ${WRKSRC}/Lib/smtpd.py ${WRKSRC}/Tools/scripts/smtpd${PY_VER_SUFFIX}.py
	${MV} ${WRKSRC}/Tools/scripts/pydoc ${WRKSRC}/Tools/scripts/pydoc${PY_VER_SUFFIX}
	${MV} ${WRKSRC}/Tools/scripts/2to3 ${WRKSRC}/Tools/scripts/2to3-${PY_VER_SUFFIX}

.if ${OPSYS} == "HPUX"
post-install:
	${LN} -fs ${DESTDIR}${PREFIX}/lib/libpython2.7.sl \
		${DESTDIR}${PREFIX}/lib/libpython2.7.sl.1.0
.endif

.if ${OS_VARIANT} == "SCOOSR5"
# SCO OpenServer 5.0.7/3.2 has no socklen_t in system headers, but has in
# GNU pth's header. It should be used in this case.
CONFIGURE_ENV+=		ac_cv_type_socklen_t=yes
.endif

BUILDLINK_DEPMETHOD.readline=		build

.include "../../archivers/bzip2/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/libffi/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bdb.buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"