Update lang/seed7 to version 05.20160430
[dports.git] / lang / perl5.18 / Makefile
1 # Created by: mat
2 # $FreeBSD$
3
4 PORTNAME=       perl
5 PORTVERSION=    ${PERL_VERSION}
6 PORTREVISION=   22
7 CATEGORIES=     lang devel perl5
8 MASTER_SITES=   CPAN/../../src/5.0
9 DIST_SUBDIR=    perl
10
11 MAINTAINER=     perl@FreeBSD.org
12 COMMENT=        Practical Extraction and Report Language
13
14 LICENSE=        ART10 GPLv1
15 LICENSE_COMB=   dual
16 LICENSE_FILE_ART10=     ${WRKSRC}/Artistic
17 LICENSE_FILE_GPLv1=     ${WRKSRC}/Copying
18
19 DEPRECATED=     Unsupported, please upgrade to a more recent version of Perl
20 EXPIRATION_DATE=2016-12-31
21
22 TEST_TARGET=    test_harness
23 TEST_ENV=       ${MAKE_ENV} TEST_JOBS=${MAKE_JOBS_NUMBER} \
24                 LD_LIBRARY_PATH=${WRKSRC}
25
26 OPTIONS_DEFINE= DEBUG GDBM PERL_64BITINT PTHREAD \
27                 MULTIPLICITY SITECUSTOMIZE USE_PERL
28 # it seems perl malloc has problems with threaded perl on FreeBSD
29 OPTIONS_RADIO=  EXCLUSIVE
30 OPTIONS_RADIO_EXCLUSIVE=        THREADS PERL_MALLOC
31 OPTIONS_DEFAULT=        PERL_64BITINT THREADS PTHREAD USE_PERL MULTIPLICITY
32
33 EXCLUSIVE_DESC= Exclusive OPTIONS
34 GDBM_DESC=      GDBM_File extension
35 PERL_MALLOC_DESC=       Use Perl malloc
36 PERL_64BITINT_DESC=     Use 64 bit integers (on i386)
37 THREADS_DESC=           Build threaded perl
38 PTHREAD_DESC=           Build with -lpthread
39 MULTIPLICITY_DESC=      Use multiplicity
40 SITECUSTOMIZE_DESC=     Run-time customization of @INC
41 USE_PERL_DESC=          Rewrite links in /usr/bin
42
43 #OPTIONS_EXCLUDE_AMD64= THREADS
44 OPTIONS_SUB=            yes
45 DEBUG_CONFIGURE_ON=     -Doptimize="-g" -DDEBUGGING
46 DEBUG_CONFIGURE_OFF=    -Doptimize="${CFLAGS}"
47 GDBM_CONFIGURE_ON=      -Di_gdbm
48 GDBM_CONFIGURE_OFF=     -Ui_gdbm
49 GDBM_LIB_DEPENDS=       libgdbm.so:databases/gdbm
50 PERL_64BITINT_CONFIGURE_ON=     -Duse64bitint
51 MULTIPLICITY_CONFIGURE_ON=      -Dusemultiplicity=y
52 MULTIPLICITY_CONFIGURE_OFF=     -Dusemultiplicity=n
53 SITECUSTOMIZE_CONFIGURE_ON=     -Dusesitecustomize
54 THREADS_CONFIGURE_ON=   -Dusethreads=y
55 THREADS_CONFIGURE_OFF=  -Dusethreads=n
56 PERL_MALLOC_CONFIGURE_ON=       -Dusemymalloc=y
57 PERL_MALLOC_CONFIGURE_OFF=      -Dusemymalloc=n
58 USE_PERL_SUB_LIST=      LINK_USRBIN=yes
59 USE_PERL_SUB_LIST_OFF=  LINK_USRBIN=no
60
61 PORTSCOUT=      limit:^${PERL_VER}.
62
63 .include "version.mk"
64 PERL_VER=       ${PERL_VERSION:C/\.[0-9]+$//}
65 PERL_ARCH=      mach
66 SITE_PERL_REL?= lib/perl5/site_perl
67 SITE_PERL?=     ${PREFIX}/${SITE_PERL_REL}
68 SITE_ARCH_REL?= ${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER}
69 SITE_ARCH?=     ${PREFIX}/${SITE_ARCH_REL}
70 SITE_MAN_PREFIX=        ${SITE_PERL_REL}
71 SITE_MAN3_REL?= ${SITE_MAN_PREFIX}/man/man3
72 SITE_MAN3?=     ${PREFIX}/${SITE_MAN3_REL}
73 SITE_MAN1_REL?= ${SITE_MAN_PREFIX}/man/man1
74 SITE_MAN1?=     ${PREFIX}/${SITE_MAN1_REL}
75
76 _PRIV_LIB=      lib/perl5/${PERL_VER}
77 _ARCH_LIB=      ${_PRIV_LIB}/${PERL_ARCH}
78
79 USES=   cpe tar:bzip2
80
81 HAS_CONFIGURE=  yes
82 CONFIGURE_SCRIPT=Configure
83 CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \
84         -Dlibperl=libperl.so.${PERL_VERSION} \
85         -Darchlib=${PREFIX}/${_ARCH_LIB} \
86         -Dprivlib=${PREFIX}/${_PRIV_LIB} \
87         -Dman3dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man3 \
88         -Dman1dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man1 \
89         -Dsitearch=${SITE_ARCH} \
90         -Dsitelib=${SITE_PERL} -Dscriptdir=${PREFIX}/bin \
91         -Dsiteman3dir=${SITE_MAN3} \
92         -Dsiteman1dir=${SITE_MAN1} \
93         -Dotherlibdirs=${PREFIX}/lib/perl5/site_perl/${PERL_VER}:${PREFIX}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH} \
94         -Ui_malloc -Ui_iconv -Uinstallusrbinperl -Dusenm=n \
95         -Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \
96         -Dcf_by=${MAINTAINER:C,@.*,,} -Dcf_email=${MAINTAINER} \
97         -Dcf_time="`env LANG=C ${STAT} -t \"%a %b %d %T %Z %Y\" -f %Sm ${_DISTDIR}/${DISTNAME}${EXTRACT_SUFX}`"
98 # Keep the following two in sync.
99 # lddlflags is used for all .so linking
100 # shrpldflags is used for libperl.so, so remove all the extra bits inherited from lddlflags.
101 CONFIGURE_ARGS+= \
102         -Alddlflags='-L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -lperl' \
103         -Dshrpldflags='$$(LDDLFLAGS:N-L${WRKSRC}:N-L${PREFIX}/${_ARCH_LIB}/CORE:N-lperl) -Wl,-soname,$$(LIBPERL:R)'
104
105 # Give a hint of where libperl.so can be found.
106 USE_LDCONFIG=   ${PREFIX}/${_ARCH_LIB}/CORE
107
108 LOCALE_CLEANUP= LANG="" LC_ALL="" LC_COLLATE="" LC_CTYPE="" \
109                 LC_MESSAGES="" LC_MONETARY="" LC_NUMERIC="" \
110                 LC_TIME=""
111 CONFIGURE_ENV+= ${LOCALE_CLEANUP} UNAME_v="$$(uname -v | sed 'y/=/ /')"
112 MAKE_ENV+=      ${LOCALE_CLEANUP}
113
114 SUB_LIST+=      PERL_VERSION=${PERL_VERSION} \
115                 PERL_VER=${PERL_VER} \
116                 SITE_PERL=${SITE_PERL_REL} \
117                 PRIV_LIB=${_PRIV_LIB} \
118                 PERLMANPREFIX=${PERLMANPREFIX_REL} \
119                 SITEMANPREFIX=${SITE_MAN_PREFIX} \
120                 PERL_ARCH=${PERL_ARCH}
121
122 SUB_FILES=      use.perl perl-man.conf
123
124 PKGINSTALL=     ${WRKDIR}/use.perl
125 PKGDEINSTALL=   ${WRKDIR}/use.perl
126 INSTALL_TARGET= install-strip
127
128 _PERL5_DEFAULT_FILE=    /tmp/PERL5_DEFAULT
129
130 # bsd.default-versions.mk needs to know LOCALBASE for Perl, so
131 # bsd.port.options.mk is needed before including it.
132 .include <bsd.port.options.mk>
133 .sinclude "${_PERL5_DEFAULT_FILE}"
134 .include "${.CURDIR}/../../Mk/bsd.default-versions.mk"
135
136 # if this port is default due PERL5_DEFAULT
137 # change PKGNAME to reflect this
138 .if ${PERL_VER} == ${PERL5_DEFAULT}
139 PKGNAMESUFFIX=  5
140 IAMDEFAULTPERL= yes
141 .else
142 # make PKGNAME unique among other lang/perl5.x
143 PKGNAMESUFFIX=  ${PERL_VER}
144 .endif
145
146 # Am I building the default Perl ?
147 .if defined(IAMDEFAULTPERL)
148 PLIST_SUB+=     DEFAULT="" BINSUFFIX=""
149 .else
150 BINSUFFIX=      ${PERL_VERSION}
151 PLIST_SUB+=     DEFAULT="@comment " BINSUFFIX=${PERL_VERSION}
152 CONFIGURE_ARGS+=-Dversiononly
153 .endif
154
155 .if !defined(IAMDEFAULTPERL)
156 pre-everything::
157         @${ECHO_MSG} "##################################################"
158         @${ECHO_MSG} ""
159         @${ECHO_MSG} "      This is *NOT* the DEFAULT perl version"
160         @${ECHO_MSG} ""
161         @${ECHO_MSG} "It will *NOT* install ${PREFIX}/bin/perl"
162         @${ECHO_MSG} ""
163         @${ECHO_MSG} "It will *ONLY* install ${PREFIX}/bin/perl${PERL_VERSION}"
164         @${ECHO_MSG} ""
165         @${ECHO_MSG} "The default Perl version currently is ${PERL5_DEFAULT}."
166         @${ECHO_MSG} ""
167         @${ECHO_MSG} "If you want to use this version as the default,"
168         @${ECHO_MSG} "stop the build now, add this line to your"
169         @${ECHO_MSG} "/etc/make.conf, and then restart the build."
170         @${ECHO_MSG} ""
171         @${ECHO_MSG} "DEFAULT_VERSIONS+=perl5=${PERL_VER}"
172         @${ECHO_MSG} ""
173         @${ECHO_MSG} "##################################################"
174 .  if !(defined(PACKAGE_BUILDING) || defined(BATCH))
175         @sleep 30
176 .  endif
177 .endif
178
179 .if defined(PERL_VENDOR_PREFIX)
180 CONFIGURE_ARGS+=        \
181         -Dvendorprefix=${PERL_VENDOR_PREFIX} \
182         -Dvendorarch=${PERL_VENDOR_PREFIX}/${_ARCH_LIB} \
183         -Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
184         -Dvendorlib=${PERL_VENDOR_PREFIX}/${_PRIV_LIB} \
185         -Dvendorman3dir=${PERL_VENDOR_PREFIX}/${_PRIV_LIB}/man/man3 \
186         -Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1
187 .endif
188
189 # http://perl5.git.perl.org/perl.git/commit/b83080de5c4254
190 # PERLIOBUF_DEFAULT_BUFSIZ size in bytes (default: 8192 bytes)
191 .if defined(PERLIOBUF_DEFAULT_BUFSIZ)
192 CONFIGURE_ARGS+=        \
193     -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=${PERLIOBUF_DEFAULT_BUFSIZ}
194 .endif
195
196 PERLMANPREFIX_REL=      ${_PRIV_LIB}/perl
197 PERLMANPREFIX=  ${PREFIX}/${PERLMANPREFIX_REL}
198 MANDIRS+=       ${PERLMANPREFIX}/man
199
200 PLIST_SUB+=     PERL_VERSION=${PERL_VERSION} \
201                 PERL_VER=${PERL_VER} \
202                 PERL_ARCH=${PERL_ARCH} \
203                 MAN1=${PERLMANPREFIX_REL}/man/man1 \
204                 MAN3=${PERLMANPREFIX_REL}/man/man3 \
205                 PERLMANPREFIX=${PERLMANPREFIX_REL} \
206                 SITEMANPREFIX=${SITE_MAN_PREFIX} \
207                 SITE_PERL=${SITE_PERL_REL} \
208                 SITE_ARCH=${SITE_ARCH_REL} \
209                 PRIV_LIB=${_PRIV_LIB} \
210                 PKGNAMESUFFIX=${PKGNAMESUFFIX} \
211                 ARCH_LIB=${_ARCH_LIB}
212
213 # Put a symlink to the future libperl.so.x.yy so that -lperl works.
214 # Also, save PERL5_DEFAULT in case someone is not using the default Perl
215 # version whilst not having set DEFAULT_VERSIONS=perl5=blah.  While upgrading,
216 # portmaster/portupgrade will remove the installed Perl version, and it will
217 # remove any way to guess what the default Perl version is needed.
218 post-extract:
219         ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so
220         ${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER}
221 .if !defined(PACKAGE_BUILDING)
222         @${ECHO_CMD} "PERL5_DEFAULT=${PERL5_DEFAULT}" > ${_PERL5_DEFAULT_FILE}
223 .endif
224
225 .if !defined(PACKAGE_BUILDING)
226 post-clean:
227         @${RM} ${_PERL5_DEFAULT_FILE}
228 .endif
229
230 post-patch:
231         ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
232                 ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
233 .if !defined(IAMDEFAULTPERL)
234         ${REINPLACE_CMD} -e '/do_installprivlib = 0 if .versiononly/d; \
235                 /^if.*nopods.*versiononly || /s/.*/if (1) {/' \
236                 ${WRKSRC}/installperl
237 .endif
238 post-patch-PTHREAD-on:
239         ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lpthread|g;' \
240                 ${WRKSRC}/hints/freebsd.sh
241 post-patch-PTHREAD-off:
242         ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
243                 ${WRKSRC}/hints/freebsd.sh
244
245 post-build:
246         @${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \
247                 ${WRKSRC}/lib/Config_heavy.pl
248 .if ${CC} == /nxb-bin/usr/bin/cc
249         @${REINPLACE_CMD} -e 's=/nxb-bin==' \
250                 ${WRKSRC}/lib/Config.pm ${WRKSRC}/lib/Config_heavy.pl
251 # Restore Config.pm's timestamp so that Perl's build system does not think it
252 # needs to rebuild everything.
253         @${TOUCH} -r ${WRKSRC}/lib/Config.pm.bak ${WRKSRC}/lib/Config.pm
254 .endif
255
256 post-install:
257         ${MKDIR} ${STAGEDIR}${SITE_MAN1} ${STAGEDIR}${SITE_MAN3}
258         ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto
259         ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto
260         ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5
261         ${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so
262         ${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VER}
263         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
264         ${FIND} ${STAGEDIR} -name '*.bs' -size 0 -delete
265         ${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine
266         ${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys
267         # h2ph needs perl, but perl is not installed, it's only
268         # staged, so, use the one in WRKDIR
269         (cd /usr/include && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
270                 ${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph${BINSUFFIX} \
271                 -d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null)
272         @${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST}
273         ${FIND} ${STAGEDIR} -name '*.so*' -type f | while read f; \
274                 do \
275                         ${CHMOD} 644 $$f; \
276                         ${STRIP_CMD} $$f; \
277                         ${CHMOD} 444 $$f; \
278                 done
279         ${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PKGNAMESUFFIX}.conf
280
281 .include <bsd.port.mk>