diff options
-rw-r--r-- | lang/perl58/DESCR | 11 | ||||
-rw-r--r-- | lang/perl58/Makefile | 202 | ||||
-rw-r--r-- | lang/perl58/Makefile.common | 12 | ||||
-rw-r--r-- | lang/perl58/PLIST | 3 | ||||
-rw-r--r-- | lang/perl58/distinfo | 5 | ||||
-rw-r--r-- | lang/perl58/patches/patch-ah | 65 |
6 files changed, 298 insertions, 0 deletions
diff --git a/lang/perl58/DESCR b/lang/perl58/DESCR new file mode 100644 index 00000000000..ace5f12f3c1 --- /dev/null +++ b/lang/perl58/DESCR @@ -0,0 +1,11 @@ +Perl is a high-level programming language with an eclectic heritage +written by Larry Wall and a cast of thousands. It derives from the +ubiquitous C programming language and to a lesser extent from sed, awk, +the Unix shell, and at least a dozen other tools and languages. Perl's +process, file, and text manipulation facilities make it particularly +well-suited for tasks involving quick prototyping, system utilities, +software tools, system management tasks, database access, graphical +programming, networking, and world wide web programming. These strengths +make it especially popular with system administrators and CGI script +authors, but mathematicians, geneticists, journalists, and even managers +also use Perl. Maybe you should, too. diff --git a/lang/perl58/Makefile b/lang/perl58/Makefile new file mode 100644 index 00000000000..6937c6256a0 --- /dev/null +++ b/lang/perl58/Makefile @@ -0,0 +1,202 @@ +# $NetBSD: Makefile,v 1.1.1.1 2002/07/22 21:50:37 jlam Exp $ + +.include "Makefile.common" + +PKGREVISION= # empty +CATEGORIES+= lang devel + +MAINTAINER= jlam@netbsd.org +HOMEPAGE= http://language.perl.com/index.html +COMMENT= Practical Extraction and Report Language + +CONFLICTS= perl-5.00* perl-base-[0-9]* \ + p5-CGI-2.66 p5-CGI-2.75 p5-CGI-2.75.[0-2] \ + p5-Data-Dumper-2.1[0-9][0-9] p5-Data-Dumper-[0-9][0-9] \ + p5-Devel-DProf-[0-9]* p5-Devel-Peek-[0-9]* \ + perl-mk-[0-9]* + +HAS_CONFIGURE= # defined +CONFIGURE_SCRIPT= ./Configure +CONFIGURE_ARGS+= -sde +CONFIGURE_ARGS+= -Dprefix="${PREFIX}" +CONFIGURE_ARGS+= -Dscriptdir="${PREFIX}/bin" +CONFIGURE_ARGS+= -Darchname="${MACHINE_ARCH}-${LOWER_OPSYS}" +CONFIGURE_ARGS+= -Doptimize="${CFLAGS}" +CONFIGURE_ARGS+= -Dcc="${CC:T}" +CONFIGURE_ARGS+= -Uusemymalloc +CONFIGURE_ARGS+= -Uinstallusrbinperl + +.include "../../mk/bsd.prefs.mk" + +.if !(defined(_USE_PERL58) && (${_USE_PERL58} == "YES")) +ONLY_FOR_PLATFORM= Darwin-*-* +.endif + +MKPIC?= yes + +.if ${OPSYS} == "Darwin" +# +# The perl build attempts to work around case-insensitivity problems on +# HFS filesystems by using GNUmakefiles, so we need to use GNU make. +# +USE_GMAKE= # defined +# +# Perl is _always_ built using shared libraries on Darwin; there's no +# way to build a statically-linked perl binary. +# +MKPIC= yes +STATIC_PERL= NO +# +# "installarchlib" and "installsitearch" have different forms between +# Darwin and NetBSD. +# +PERL5_ARCHLIB= ${PREFIX}/lib/perl5/${PERL5_DIST_VERS}/${LOWER_OPSYS} +PERL5_SITEARCH= ${PREFIX}/lib/perl5/site_perl/${PERL5_DIST_VERS}/${LOWER_OPSYS} +.endif + +# Nail down the needed libraries for each platform here to avoid hidden +# dependencies. If this isn't defined, then use the perl defaults for the +# particular operating system. +# +LIBSWANTED.Darwin= m c +LIBSWANTED.NetBSD= m crypt +LIBSWANTED.SunOS= m crypt dl socket nsl + +# Nail down the directories in which the system libraries may be found. +# If this isn't defined, then use the perl defaults for the particular +# operating system. +# +SYSLIBPATH.Darwin= /usr/lib +SYSLIBPATH.NetBSD= /usr/lib +SYSLIBPATH.SunOS= /usr/lib + +# Nail down the directories in which headers and libraries of +# locally-installed software may be found. +# +LOCLIBPATH= ${LOCALBASE}/lib +LOCINCPATH= ${LOCALBASE}/include + +# On a.out platforms, we link with "ld" and on ELF platforms, we link with +# "cc", so we need to use different options to pass the run-time search path +# flags to the link command in the right way. +# +.if ${OBJECT_FMT} == "a.out" +LOCLIBRPATHFLAGS= ${LOCLIBPATH:S/^/-R/g} +.elif ${OBJECT_FMT} == "ELF" +LOCLIBRPATHFLAGS= ${LOCLIBPATH:S/^/-Wl,-R/g} +.else +LOCLIBRPATHFLAGS= # empty +.endif + +.if defined(LIBSWANTED.${OPSYS}) +CONFIGURE_ARGS+= -Dlibswanted="${LIBSWANTED.${OPSYS}}" +.endif + +.if (${OPSYS} == "NetBSD") +. if !exists(/usr/libexec/ld.so) && !exists(/usr/libexec/ld.elf_so) +MKPIC= no +. endif +. if (${MACHINE_ARCH} == "sparc64") +# The toolchain on sparc64 is not really production-quality right now, but +# gcc-2.96 is supposed to fix most problems. Passing -g to the configure +# process triggers -DDEBUGGING, which plays the real trick and circumvents +# code-generation bugs, so we add -g to CFLAGS to at least have a really +# debuggable build. +# +CFLAGS+= -g -msoft-quad-float -O2 +. endif +.elif (${OPSYS} == "SunOS") +CFLAGS= +.endif + +.if (${MKPIC} == "yes") +CONFIGURE_ARGS+= -Duseshrplib +.endif + +PERL5= ${PREFIX}/bin/perl${PERL5_DIST_VERS} +PERL5_ARCHLIB?= ${PREFIX}/lib/perl5/${PERL5_DIST_VERS}/${MACHINE_ARCH}-${LOWER_OPSYS} +PERL5_SITEARCH?= ${PREFIX}/lib/perl5/site_perl/${PERL5_DIST_VERS}/${MACHINE_ARCH}-${LOWER_OPSYS} +PERL5_PACKLIST= ${PERL5_ARCHLIB}/.packlist + +# It's tough to guess which hints file will be used, so add our modifications +# to all of them: +# +# - Don't install any manpages in man3; make user use perldoc (to prevent +# confusion/conflicts with similarly named man2/man3 pages). +# +# - Explicitly set the local compiler search paths to contain only the +# pkgsrc-controlled directories. +# +pre-configure: + hintdir="${WRKSRC}/hints"; \ + for hints in $${hintdir}/*.sh; do \ + ${CHMOD} +w $${hints}; \ + ( ${ECHO} ''; \ + ${ECHO} 'man1dir="$${prefix}/man/man1"'; \ + ${ECHO} 'man3dir=none'; \ + ${ECHO} 'locincpth="${LOCINCPATH}"'; \ + ${ECHO} 'loclibpth="${LOCLIBPATH}"'; \ + ${ECHO} 'ldflags="${LOCLIBRPATHFLAGS} $$ldflags"'; \ + ) >> $${hints}; \ + done +.if defined(SYSLIBPATH.${OPSYS}) + hintdir="${WRKSRC}/hints"; \ + for hints in $${hintdir}/*.sh; do \ + ( ${ECHO} "glibpth='${SYSLIBPATH.${OPSYS}}'"; \ + ) >> $${hints}; \ + done +.endif + +# By default, on platforms that build shared libraries, rebuild the perl +# binary as a statically-linked binary as a speed optimization. Performance +# increase is only by word-of-mouth -- no actual benchmarks have been +# produced. However, it has been remarked that the advantage of having a +# statically-linked perl is pretty much non-existent on any platform with +# any reasonable number of registers. These platforms should be added to +# the list below to bypass the build of the statically-linked perl. +# +.if (${MKPIC} == "yes") +. for _arch_ in mipsel mipseb +. if !empty(MACHINE_ARCH:M${_arch_}) +STATIC_PERL?= NO +. endif +. endfor +.endif +STATIC_PERL?= YES + +.if defined(STATIC_PERL) && (${STATIC_PERL} == "YES") +STATIC_WRKDIR= ${WRKDIR}/static +STATIC_MAKEFLAGS= MKPIC=no STATIC_PERL=NO +STATIC_MAKEFLAGS+= WRKDIR=${STATIC_WRKDIR} +STATIC_MAKEFLAGS+= ALL_TARGET=perl + +post-build: + cd ${.CURDIR} && ${MAKE} build ${STATIC_MAKEFLAGS} +.endif + +post-install: +.if defined(STATIC_PERL) && (${STATIC_PERL} == "YES") + ${RM} -f ${PERL5} + ${INSTALL_PROGRAM} ${STATIC_WRKDIR}/${WRKSRC:T}/perl ${PERL5} +.endif + ${RM} -f ${PREFIX}/bin/perl + ${LN} -f ${PERL5} ${PREFIX}/bin/perl + strip ${PERL5} + if [ -x ${PREFIX}/bin/a2p ]; then \ + strip ${PREFIX}/bin/a2p; \ + fi + ${RMDIR} -p ${PERL5_SITEARCH} 2>/dev/null || ${TRUE} + ${RM} -f ${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installsitelib 2>/dev/null` && \ + echo PERL5_SITELIB=$$installsitelib >>${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installsitearch 2>/dev/null` && \ + echo PERL5_SITEARCH=$$installsitearch >>${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installarchlib 2>/dev/null` && \ + echo PERL5_ARCHLIB=$$installarchlib >>${WRKDIR}/bsd.perl.mk + ${INSTALL_DATA} ${WRKDIR}/bsd.perl.mk ${PREFIX}/share/mk/bsd.perl.mk + +test: + -@cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} test + +.include "../../mk/bsd.pkg.mk" diff --git a/lang/perl58/Makefile.common b/lang/perl58/Makefile.common new file mode 100644 index 00000000000..ccf16048ff9 --- /dev/null +++ b/lang/perl58/Makefile.common @@ -0,0 +1,12 @@ +# $NetBSD: Makefile.common,v 1.1.1.1 2002/07/22 21:50:37 jlam Exp $ + +DISTNAME= perl-${PERL5_DIST_VERS} +CATEGORIES+= perl5 +MASTER_SITES_DEVEL= \ + http://www.iki.fi/jhi/ \ + ftp://ftp.funet.fi/pub/languages/perl/snap/ +MASTER_SITES+= ftp://ftp.funet.fi/pub/languages/perl/CPAN/src/ \ + ftp://ftp.ruhr-uni-bochum.de/mirrors/ftp.funet.fi/pub/languages/perl/CPAN/src/ + +# version number on the distfile +PERL5_DIST_VERS= 5.8.0 diff --git a/lang/perl58/PLIST b/lang/perl58/PLIST new file mode 100644 index 00000000000..f4bf36a23fd --- /dev/null +++ b/lang/perl58/PLIST @@ -0,0 +1,3 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2002/07/22 21:50:37 jlam Exp $ +share/mk/bsd.perl.mk +@unexec ${RM} -f %D/${PERL5_ARCHLIB}/perllocal.pod diff --git a/lang/perl58/distinfo b/lang/perl58/distinfo new file mode 100644 index 00000000000..895e707d0de --- /dev/null +++ b/lang/perl58/distinfo @@ -0,0 +1,5 @@ +$NetBSD: distinfo,v 1.1.1.1 2002/07/22 21:50:37 jlam Exp $ + +SHA1 (perl-5.8.0.tar.gz) = be1e05876ca734464f8a770d61b1f15cca555719 +Size (perl-5.8.0.tar.gz) = 11023084 bytes +SHA1 (patch-ah) = 72f8f113eacd913f72cf50dc37ac0bb95615b102 diff --git a/lang/perl58/patches/patch-ah b/lang/perl58/patches/patch-ah new file mode 100644 index 00000000000..362e86c18f5 --- /dev/null +++ b/lang/perl58/patches/patch-ah @@ -0,0 +1,65 @@ +$NetBSD: patch-ah,v 1.1.1.1 2002/07/22 21:50:37 jlam Exp $ + +--- perl.c.orig Sat Jun 15 12:40:21 2002 ++++ perl.c +@@ -3673,12 +3673,32 @@ + } + + /* Use the ~-expanded versions of APPLLIB (undocumented), +- ARCHLIB PRIVLIB SITEARCH SITELIB VENDORARCH and VENDORLIB ++ SITEARCH SITELIB ARCHLIB PRIVLIB VENDORARCH and VENDORLIB + */ + #ifdef APPLLIB_EXP + incpush(APPLLIB_EXP, TRUE, TRUE); + #endif + ++#ifdef SITEARCH_EXP ++ /* sitearch is always relative to sitelib on Windows for ++ * DLL-based path intuition to work correctly */ ++# if !defined(WIN32) ++ incpush(SITEARCH_EXP, FALSE, FALSE); ++# endif ++#endif ++ ++#ifdef SITELIB_EXP ++# if defined(WIN32) ++ incpush(SITELIB_EXP, TRUE, FALSE); /* this picks up sitearch as well */ ++# else ++ incpush(SITELIB_EXP, FALSE, FALSE); ++# endif ++#endif ++ ++#ifdef SITELIB_STEM /* Search for version-specific dirs below here */ ++ incpush(SITELIB_STEM, FALSE, TRUE); ++#endif ++ + #ifdef ARCHLIB_EXP + incpush(ARCHLIB_EXP, FALSE, FALSE); + #endif +@@ -3710,26 +3730,6 @@ + incpush(PRIVLIB_EXP, TRUE, FALSE); + #else + incpush(PRIVLIB_EXP, FALSE, FALSE); +-#endif +- +-#ifdef SITEARCH_EXP +- /* sitearch is always relative to sitelib on Windows for +- * DLL-based path intuition to work correctly */ +-# if !defined(WIN32) +- incpush(SITEARCH_EXP, FALSE, FALSE); +-# endif +-#endif +- +-#ifdef SITELIB_EXP +-# if defined(WIN32) +- incpush(SITELIB_EXP, TRUE, FALSE); /* this picks up sitearch as well */ +-# else +- incpush(SITELIB_EXP, FALSE, FALSE); +-# endif +-#endif +- +-#ifdef SITELIB_STEM /* Search for version-specific dirs below here */ +- incpush(SITELIB_STEM, FALSE, TRUE); + #endif + + #ifdef PERL_VENDORARCH_EXP |