aboutsummaryrefslogtreecommitdiff
path: root/lang/perl5.32/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'lang/perl5.32/Makefile')
-rw-r--r--lang/perl5.32/Makefile293
1 files changed, 293 insertions, 0 deletions
diff --git a/lang/perl5.32/Makefile b/lang/perl5.32/Makefile
new file mode 100644
index 000000000000..bb20591af385
--- /dev/null
+++ b/lang/perl5.32/Makefile
@@ -0,0 +1,293 @@
+# $FreeBSD$
+
+PORTNAME= perl
+DISTVERSION= ${PERL_VERSION}-RC1
+PORTREVISION= 0
+CATEGORIES= lang devel perl5
+MASTER_SITES= CPAN/../../src/5.0
+DIST_SUBDIR= perl
+
+MAINTAINER= mat@FreeBSD.org
+COMMENT= Practical Extraction and Report Language
+
+LICENSE= ART10 GPLv1+
+LICENSE_COMB= dual
+LICENSE_FILE_ART10= ${WRKSRC}/Artistic
+LICENSE_FILE_GPLv1+ = ${WRKSRC}/Copying
+
+# Uncomment when the default Perl is switched to 5.3(X+2)
+#DEPRECATED= Support end three years after .0 release, please upgrade to a more recent version of Perl
+#EXPIRATION_DATE=<Release date of .0 + 3 years>
+
+USES= cpe tar:xz
+
+# Give a hint of where libperl.so can be found.
+USE_LDCONFIG= ${PREFIX}/${_ARCH_LIB}/CORE
+
+TEST_TARGET= test_harness
+TEST_ENV= ${MAKE_ENV} \
+ LD_LIBRARY_PATH=${WRKSRC} \
+ TEST_JOBS=${MAKE_JOBS_NUMBER}
+
+PORTSCOUT= limit:^${PERL_VER}.
+
+HAS_CONFIGURE= yes
+CONFIGURE_SCRIPT= Configure
+CONFIGURE_ARGS= -Darchlib=${PREFIX}/${_ARCH_LIB} \
+ -Dcc="${CC}" \
+ -Dcf_by=${MAINTAINER:C,@.*,,} \
+ -Dcf_email=${MAINTAINER} \
+ -Dcf_time="`${STAT} -t \"%a %b %d %T %Z %Y\" -f %Sm ${_DISTDIR}/${DISTNAME}${EXTRACT_SUFX}`" \
+ -Dinc_version_list=none \
+ -Dlibperl=libperl.so.${PERL_VERSION} \
+ -Dman1dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man1 \
+ -Dman3dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man3 \
+ -Dprefix=${PREFIX} \
+ -Dprivlib=${PREFIX}/${_PRIV_LIB} \
+ -Dscriptdir=${PREFIX}/bin \
+ -Dsitearch=${SITE_ARCH} \
+ -Dsitelib=${SITE_PERL} \
+ -Dsiteman1dir=${SITE_MAN1} \
+ -Dsiteman3dir=${SITE_MAN3} \
+ -Dusenm=n \
+ -Duseshrplib \
+ -sde \
+ -Ui_iconv \
+ -Ui_malloc \
+ -Uinstallusrbinperl
+# Keep the following two in sync.
+# lddlflags is used for all .so linking
+# shrpldflags is used for libperl.so, so remove all the extra bits inherited from lddlflags.
+CONFIGURE_ARGS+= -Alddlflags='-L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -lperl' \
+ -Dshrpldflags='$$(LDDLFLAGS:N-L${WRKSRC}:N-L${PREFIX}/${_ARCH_LIB}/CORE:N-lperl) -Wl,-soname,$$(LIBPERL:R)'
+
+# When built from a git repository, newvers.sh can put a = in the version.
+CONFIGURE_ENV= UNAME_v="$$(uname -v | sed 'y/=/ /')"
+
+SUB_FILES= perl-man.conf
+
+INSTALL_TARGET= install-strip
+
+.if defined(PERL_VENDOR_PREFIX)
+CONFIGURE_ARGS+= -Dvendorarch=${PERL_VENDOR_PREFIX}/${_ARCH_LIB} \
+ -Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
+ -Dvendorlib=${PERL_VENDOR_PREFIX}/${_PRIV_LIB} \
+ -Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1 \
+ -Dvendorman3dir=${PERL_VENDOR_PREFIX}/${_PRIV_LIB}/man/man3 \
+ -Dvendorprefix=${PERL_VENDOR_PREFIX}
+.endif
+
+# http://perl5.git.perl.org/perl.git/commit/b83080de5c4254
+# PERLIOBUF_DEFAULT_BUFSIZ size in bytes (default: 8192 bytes)
+.if defined(PERLIOBUF_DEFAULT_BUFSIZ)
+CONFIGURE_ARGS+= -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=${PERLIOBUF_DEFAULT_BUFSIZ}
+.endif
+
+PLIST_SUB= ARCH_LIB=${_ARCH_LIB} \
+ MAN1=${PERLMANPREFIX_REL}/man/man1 \
+ MAN3=${PERLMANPREFIX_REL}/man/man3 \
+ PERL_ARCH=${PERL_ARCH} \
+ PERL_ARCH_regex=\b${PERL_ARCH}\b \
+ PERL_VER=${PERL_VER} \
+ PERL_VERSION=${PERL_VERSION} \
+ PERLMANPREFIX=${PERLMANPREFIX_REL} \
+ PERLMANPREFIX_regex=${PERLMANPREFIX_REL}\b \
+ PKGNAMESUFFIX=${PKGNAMESUFFIX} \
+ PRIV_LIB=${_PRIV_LIB} \
+ SITE_ARCH=${SITE_ARCH_REL} \
+ SITE_PERL=${SITE_PERL_REL} \
+ SITEMANPREFIX=${SITE_MAN_PREFIX}
+
+SUB_LIST= PERL_ARCH=${PERL_ARCH} \
+ PERL_VER=${PERL_VER} \
+ PERL_VERSION=${PERL_VERSION} \
+ PERLMANPREFIX=${PERLMANPREFIX_REL} \
+ PRIV_LIB=${_PRIV_LIB} \
+ SITE_PERL=${SITE_PERL_REL} \
+ SITEMANPREFIX=${SITE_MAN_PREFIX}
+
+.include "version.mk"
+PERL_VER?= ${PERL_VERSION:C/\.[0-9]+$//}
+PERL_ARCH= mach
+SITE_PERL_REL?= lib/perl5/site_perl
+SITE_PERL?= ${PREFIX}/${SITE_PERL_REL}
+SITE_ARCH_REL?= ${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER}
+SITE_ARCH?= ${PREFIX}/${SITE_ARCH_REL}
+SITE_MAN_PREFIX= ${SITE_PERL_REL}
+SITE_MAN3_REL?= ${SITE_MAN_PREFIX}/man/man3
+SITE_MAN3?= ${PREFIX}/${SITE_MAN3_REL}
+SITE_MAN1_REL?= ${SITE_MAN_PREFIX}/man/man1
+SITE_MAN1?= ${PREFIX}/${SITE_MAN1_REL}
+
+_PRIV_LIB= lib/perl5/${PERL_VER}
+_ARCH_LIB= ${_PRIV_LIB}/${PERL_ARCH}
+
+PERLMANPREFIX_REL= ${_PRIV_LIB}/perl
+PERLMANPREFIX= ${PREFIX}/${PERLMANPREFIX_REL}
+MANDIRS= ${PERLMANPREFIX}/man
+
+OPTIONS_DEFINE= DEBUG DOT_INC DTRACE GDBM MULTIPLICITY PERL_64BITINT \
+ PERL_MALLOC SITECUSTOMIZE THREADS
+OPTIONS_DEFAULT= DTRACE MULTIPLICITY PERL_64BITINT THREADS
+
+.if !exists(/usr/sbin/dtrace)
+OPTIONS_EXCLUDE= DTRACE
+.endif
+.for a in aarch64 arm armv6 armv7 \
+ mips mips64 mips64el mips64elhf mips64hf mipsel mipselhf mipshf mipsn32 \
+ powerpc powerpc64 powerpcspe \
+ riscv64 riscv64sf sparc64
+OPTIONS_EXCLUDE_${a}= DTRACE
+.endfor
+OPTIONS_SUB= yes
+
+DOT_INC_DESC= Add '.' to @INC (unsafe)
+GDBM_DESC= GDBM_File extension
+MULTIPLICITY_DESC= Use multiplicity
+PERL_64BITINT_DESC= Use 64 bit integers (on i386)
+PERL_MALLOC_DESC= Use Perl malloc
+SITECUSTOMIZE_DESC= Run-time customization of @INC
+THREADS_DESC= Build threaded perl
+
+DEBUG_CONFIGURE_ON= -DDEBUGGING \
+ -Doptimize="-g"
+DEBUG_CONFIGURE_OFF= -Doptimize="${CFLAGS}"
+DOT_INC_CONFIGURE_ON= -Ddefault_inc_excludes_dot=n
+DTRACE_CONFIGURE_ON= -Dusedtrace
+DTRACE_CONFIGURE_OFF= -Uusedtrace
+GDBM_CONFIGURE_ON= -Di_gdbm
+GDBM_CONFIGURE_OFF= -Ui_gdbm
+GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
+MULTIPLICITY_CONFIGURE_ON= -Dusemultiplicity=y
+MULTIPLICITY_CONFIGURE_OFF= -Dusemultiplicity=n
+PERL_64BITINT_CONFIGURE_ON= -Duse64bitint
+PERL_MALLOC_CONFIGURE_ON= -Dusemymalloc=y
+PERL_MALLOC_CONFIGURE_OFF= -Dusemymalloc=n
+SITECUSTOMIZE_CONFIGURE_ON= -Dusesitecustomize
+THREADS_CONFIGURE_ON= -Dusethreads=y
+THREADS_CONFIGURE_OFF= -Dusethreads=n
+
+# Why this is required is explained in:
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227356#c5
+_PERL5_DEFAULT_FILE= /tmp/PERL5_DEFAULT
+
+# Get the default version, and possibly, overwrite it.
+.include <bsd.port.options.mk>
+.sinclude "${_PERL5_DEFAULT_FILE}"
+
+.if ${OSVERSION} >= 1200004
+CONFIGURE_ARGS+= -Accflags='-DUSE_THREAD_SAFE_LOCALE'
+.endif
+
+# if this port is default due PERL5_DEFAULT
+# change PKGNAME to reflect this
+.if ${PERL_VER} == ${PERL5_DEFAULT}
+PKGNAMESUFFIX= 5
+IAMDEFAULTPERL= yes
+.else
+# make PKGNAME unique among other lang/perl5.x
+PKGNAMESUFFIX= ${PERL_VER}
+.endif
+
+# Am I building the default Perl ?
+.if defined(IAMDEFAULTPERL)
+PLIST_SUB+= BINSUFFIX="" \
+ DEFAULT=""
+.else
+BINSUFFIX= ${PERL_VERSION}
+PLIST_SUB+= BINSUFFIX=${PERL_VERSION} \
+ DEFAULT="@comment "
+CONFIGURE_ARGS+= -Dversiononly
+.endif
+
+.if !defined(IAMDEFAULTPERL)
+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} "##################################################"
+. if !(defined(PACKAGE_BUILDING) || defined(BATCH))
+ @sleep 30
+. endif
+.endif
+
+# Put a symlink to the future libperl.so.x.yy so that -lperl works.
+# Also, save PERL5_DEFAULT in case someone is not using the default Perl
+# version whilst not having set DEFAULT_VERSIONS=perl5=blah. While upgrading,
+# portmaster/portupgrade will remove the installed Perl version, and it will
+# remove any way to guess what the default Perl version is needed.
+post-extract:
+ ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so
+ ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER}
+.if !defined(PACKAGE_BUILDING)
+ @${ECHO_CMD} "PERL5_DEFAULT=${PERL5_DEFAULT}" > ${_PERL5_DEFAULT_FILE}
+.endif
+
+.if !defined(PACKAGE_BUILDING)
+post-clean:
+ @${RM} ${_PERL5_DEFAULT_FILE}
+.endif
+
+post-patch:
+ ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ ${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-install:
+ @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \
+ ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+ @${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+ @${RM} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak
+.if ${CC} == /nxb-bin/usr/bin/cc
+ @${REINPLACE_CMD} -e 's=/nxb-bin==' \
+ ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+# Restore Config.pm's timestamp so that Perl's build system does not think it
+# needs to rebuild everything.
+ @${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm
+ @${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+ @${RM} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak
+.endif
+
+ ${MKDIR} ${STAGEDIR}${SITE_MAN1} ${STAGEDIR}${SITE_MAN3}
+ ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto
+ ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto
+.if defined(IAMDEFAULTPERL)
+ ${LN} -sf perl ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
+.endif
+ ${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}
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
+ ${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine
+ ${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys
+# h2ph needs perl, but perl is not installed, it's only
+# staged, so, use the one in WRKDIR
+ (cd /usr/include && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
+ ${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph${BINSUFFIX} \
+ -d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null)
+ @${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST}
+ ${FIND} ${STAGEDIR} -name '*.so*' -type f | while read f; \
+ do \
+ ${CHMOD} 644 $$f; \
+ ${STRIP_CMD} $$f; \
+ ${CHMOD} 444 $$f; \
+ done
+ ${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PKGNAMESUFFIX}.conf
+
+.include <bsd.port.mk>