239 lines
7.2 KiB
Makefile
239 lines
7.2 KiB
Makefile
# $NetBSD: Makefile,v 1.96 2021/12/08 16:05:22 adam Exp $
|
|
|
|
.include "dist.mk"
|
|
|
|
PKGNAME= python27-${PY_DISTVERSION}
|
|
PKGREVISION= 6
|
|
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!'
|
|
SUBST_NOOP_OK.findlib= yes
|
|
|
|
SUBST_CLASSES+= pkgversion
|
|
SUBST_STAGE.pkgversion= pre-configure
|
|
SUBST_FILES.pkgversion= Lib/lib2to3/pgen2/driver.py
|
|
SUBST_FILES.pkgversion+=Lib/distutils/command/install_egg_info.py
|
|
SUBST_VARS.pkgversion= PKGVERSION_NOREV
|
|
|
|
SUBST_CLASSES+= urllib
|
|
SUBST_MESSAGE.urllib= Fixing path to urllib.cfg.
|
|
SUBST_STAGE.urllib= pre-configure
|
|
SUBST_FILES.urllib= Lib/urlparse.py
|
|
SUBST_VARS.urllib= PKG_SYSCONFDIR
|
|
|
|
.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
|
|
|
|
# needed to make devel/py-readline pick up the correct readline implementation
|
|
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"
|