Changeset View
Changeset View
Standalone View
Standalone View
lang/perl5.20/Makefile
# Created by: mat | # Created by: mat | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= perl | PORTNAME= perl | ||||
PORTVERSION= ${PERL_VERSION} | PORTVERSION= ${PERL_VERSION} | ||||
PORTREVISION= 6 | PORTREVISION= 7 | ||||
CATEGORIES= lang devel perl5 | CATEGORIES= lang devel perl5 | ||||
MASTER_SITES= CPAN/../../src/5.0 | MASTER_SITES= CPAN/../../src/5.0 | ||||
DIST_SUBDIR= perl | DIST_SUBDIR= perl | ||||
MAINTAINER= perl@FreeBSD.org | MAINTAINER= perl@FreeBSD.org | ||||
COMMENT= Practical Extraction and Report Language | COMMENT= Practical Extraction and Report Language | ||||
LICENSE= ART10 GPLv1 | LICENSE= ART10 GPLv1 | ||||
LICENSE_COMB= dual | LICENSE_COMB= dual | ||||
LICENSE_FILE_ART10= ${WRKSRC}/Artistic | LICENSE_FILE_ART10= ${WRKSRC}/Artistic | ||||
LICENSE_FILE_GPLv1= ${WRKSRC}/Copying | LICENSE_FILE_GPLv1= ${WRKSRC}/Copying | ||||
CONFLICTS_INSTALL= perl5.*-* | |||||
OPTIONS_DEFINE= DEBUG GDBM PERL_64BITINT PTHREAD \ | OPTIONS_DEFINE= DEBUG GDBM PERL_64BITINT PTHREAD \ | ||||
MULTIPLICITY SITECUSTOMIZE | MULTIPLICITY SITECUSTOMIZE | ||||
# it seems perl malloc has problems with threaded perl on FreeBSD | # it seems perl malloc has problems with threaded perl on FreeBSD | ||||
OPTIONS_RADIO= EXCLUSIVE | OPTIONS_RADIO= EXCLUSIVE | ||||
OPTIONS_RADIO_EXCLUSIVE= THREADS PERL_MALLOC | OPTIONS_RADIO_EXCLUSIVE= THREADS PERL_MALLOC | ||||
OPTIONS_DEFAULT= PERL_64BITINT THREADS PTHREAD MULTIPLICITY | OPTIONS_DEFAULT= PERL_64BITINT THREADS PTHREAD MULTIPLICITY | ||||
EXCLUSIVE_DESC= Exclusive OPTIONS | EXCLUSIVE_DESC= Exclusive OPTIONS | ||||
▲ Show 20 Lines • Show All 116 Lines • ▼ Show 20 Lines | PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \ | ||||
ARCH_LIB=${_ARCH_LIB} | ARCH_LIB=${_ARCH_LIB} | ||||
.include "${.CURDIR}/../../Mk/bsd.default-versions.mk" | .include "${.CURDIR}/../../Mk/bsd.default-versions.mk" | ||||
# if this port is default due PERL5_DEFAULT | # if this port is default due PERL5_DEFAULT | ||||
# change PKGNAME to reflect this | # change PKGNAME to reflect this | ||||
.if ${PERL_VER} == ${PERL5_DEFAULT} | .if ${PERL_VER} == ${PERL5_DEFAULT} | ||||
PKGNAMESUFFIX= ${PERL_VERSION:C/\.[0-9]+\.[0-9]+$//} | PKGNAMESUFFIX= ${PERL_VERSION:C/\.[0-9]+\.[0-9]+$//} | ||||
IAMDEFAULTPERL= yes | |||||
.else | .else | ||||
# make PKGNAME unique among other lang/perl5.x | # make PKGNAME unique among other lang/perl5.x | ||||
PKGNAMESUFFIX= ${PERL_VER} | PKGNAMESUFFIX= ${PERL_VER} | ||||
# always add default perl5 pkgname to conflicts | |||||
CONFLICTS_INSTALL+= perl5-* | |||||
.endif | .endif | ||||
# Am I building the default Perl ? | |||||
.if defined(IAMDEFAULTPERL) | |||||
PLIST_SUB+= DEFAULT="" BINSUFFIX="" MAN1SUFFIX="1" | |||||
.else | |||||
BINSUFFIX= ${PERL_VERSION} | |||||
PLIST_SUB+= DEFAULT="@comment " BINSUFFIX=${PERL_VERSION} \ | |||||
MAN1SUFFIX=1p${PERL_VER:S/.//} | |||||
CONFIGURE_ARGS+=-Dman1ext=1p${PERL_VER:S/.//} \ | |||||
-Dversiononly | |||||
.endif | |||||
.if !defined(IAMDEFAULTPERL) && !defined(PACKAGE_BUILDING) | |||||
pre-everything:: | |||||
@${ECHO_MSG} "##################################################" | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} " This is *NOT* the DEFAULT perl version" | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "It will *NOT* install ${PREFIX}/bin/perl" | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "It will *ONLY* install ${PREFIX}/bin/perl${PERL_VERSION}" | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "The default Perl version currently is ${PERL5_DEFAULT}." | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "If you want to use this version as the default," | |||||
@${ECHO_MSG} "stop the build now, add this line to your" | |||||
@${ECHO_MSG} "/etc/make.conf, and then restart the build." | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "DEFAULT_VERSIONS+=perl5=${PERL_VER}" | |||||
@${ECHO_MSG} "" | |||||
@${ECHO_MSG} "##################################################" | |||||
@sleep 30 | |||||
.endif | |||||
# Put a symlink to the future libperl.so.x.yy so that -lperl works. | # Put a symlink to the future libperl.so.x.yy so that -lperl works. | ||||
post-extract: | post-extract: | ||||
${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so | ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so | ||||
${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER} | ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER} | ||||
.if !defined(MAKING_PATCHES) | .if !defined(MAKING_PATCHES) | ||||
# make clean patch makepatch MAKING_PATCHES= | # make clean patch makepatch MAKING_PATCHES= | ||||
post-patch: | post-patch: | ||||
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ | ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ | ||||
${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh | ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh | ||||
.if !defined(IAMDEFAULTPERL) | |||||
${REINPLACE_CMD} -e '/do_installprivlib = 0 if .versiononly/d; \ | |||||
/^if.*nopods.*versiononly || /s/.*/if (1) {/' \ | |||||
${WRKSRC}/installperl | |||||
.endif | |||||
post-patch-PTHREAD-on: | post-patch-PTHREAD-on: | ||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lpthread|g;' \ | ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lpthread|g;' \ | ||||
${WRKSRC}/hints/freebsd.sh | ${WRKSRC}/hints/freebsd.sh | ||||
post-patch-PTHREAD-off: | post-patch-PTHREAD-off: | ||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \ | ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \ | ||||
${WRKSRC}/hints/freebsd.sh | ${WRKSRC}/hints/freebsd.sh | ||||
.endif | .endif | ||||
post-install: | post-install: | ||||
${MKDIR} ${STAGEDIR}${SITE_MAN3} | ${MKDIR} ${STAGEDIR}${SITE_MAN3} | ||||
${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto | ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto | ||||
${MKDIR} ${STAGEDIR}${SITE_PERL}/auto | ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto | ||||
${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 | ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 | ||||
${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so | ${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so | ||||
${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VER} | ${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VER} | ||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} | ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} | ||||
${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc | ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc | ||||
${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine | ${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine | ||||
${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys | ${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys | ||||
# h2ph needs perl, but perl is not installed, it's only | # h2ph needs perl, but perl is not installed, it's only | ||||
# staged, so, use the one in WRKDIR | # staged, so, use the one in WRKDIR | ||||
(cd /usr/include && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ | (cd /usr/include && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ | ||||
${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph \ | ${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph${BINSUFFIX} \ | ||||
-d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null) | -d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null) | ||||
@${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST} | @${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST} | ||||
${FIND} ${STAGEDIR} -name '*.so*' -type f | while read f; \ | ${FIND} ${STAGEDIR} -name '*.so*' -type f | while read f; \ | ||||
do \ | do \ | ||||
${CHMOD} 644 $$f; \ | ${CHMOD} 644 $$f; \ | ||||
${STRIP_CMD} $$f; \ | ${STRIP_CMD} $$f; \ | ||||
${CHMOD} 444 $$f; \ | ${CHMOD} 444 $$f; \ | ||||
done | done | ||||
${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PERL_VER}.conf | ${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PERL_VER}.conf | ||||
test: build | test: build | ||||
(cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness) | (cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness) | ||||
regression-test: test | regression-test: test | ||||
.include <bsd.port.mk> | .include <bsd.port.mk> |