Sync Mk with ports
[dports.git] / lang / perl5.12 / Makefile
1 # Created by: markm
2 # $FreeBSD$
3
4 PORTNAME=       perl
5 PORTVERSION=    ${PERL_VERSION}
6 PORTREVISION=   3
7 CATEGORIES=     lang devel perl5
8 MASTER_SITES=   CPAN \
9                 ${MASTER_SITE_LOCAL:S/$/:local/} \
10                 http://protey.ru/freebsd/distfiles/:local
11 MASTER_SITE_SUBDIR=     ../../src \
12                         skv/:local
13 DISTFILES=      ${DISTNAME}${EXTRACT_SUFX} \
14                 BSDPAN-${BSDPAN_VERSION}${EXTRACT_SUFX}:local
15 DIST_SUBDIR=    perl
16
17 MAINTAINER=     perl@FreeBSD.org
18 COMMENT=        Practical Extraction and Report Language
19
20 LICENSE=        ART10 GPLv1
21 LICENSE_COMB=   dual
22
23 CONFLICTS_INSTALL=      perl5.12-* perl5.14-* perl5.16-* perl5.18-*
24
25 OPTIONS_DEFINE= DEBUG GDBM PERL_MALLOC PERL_64BITINT THREADS PTHREAD \
26                 MULTIPLICITY SITECUSTOMIZE USE_PERL
27 OPTIONS_DEFAULT=        PERL_64BITINT THREADS PTHREAD USE_PERL
28 OPTIONS_SUB=
29 GDBM_DESC=      GDBM_File extension
30 PERL_MALLOC_DESC=       Use Perl malloc
31 PERL_64BITINT_DESC=     Use 64 bit integers (on i386)
32 THREADS_DESC=           Build threaded perl
33 PTHREAD_DESC=           Build with -pthread
34 MULTIPLICITY_DESC=      Use multiplicity
35 SITECUSTOMIZE_DESC=     Run-time customization of @INC
36 USE_PERL_DESC=          Rewrite links in /usr/bin
37
38 DEPRECATED=     Consider switching to a more recent version of Perl
39 EXPIRATION_DATE=        2014-02-14
40
41 PORTSCOUT=      limitw:1,even
42
43 PERL_VERSION=   5.12.5
44 PERL_VER=       ${PERL_VERSION:C/\.[0-9]+$//}
45 PERL_ARCH=      mach
46 SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VER}
47 SITE_PERL?=     ${LOCALBASE}/${SITE_PERL_REL}
48
49 USE_BZIP2=      yes
50 HAS_CONFIGURE=  yes
51 CONFIGURE_SCRIPT=Configure
52 CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \
53         -Darchlib=${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH} \
54         -Dprivlib=${PREFIX}/lib/perl5/${PERL_VER} \
55         -Dman3dir=${PREFIX}/lib/perl5/${PERL_VER}/perl/man/man3 \
56         -Dman1dir=${PREFIX}/man/man1 \
57         -Dsitearch=${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH} \
58         -Dsitelib=${PREFIX}/${SITE_PERL_REL} -Dscriptdir=${PREFIX}/bin \
59         -Dsiteman3dir=${PREFIX}/lib/perl5/${PERL_VER}/man/man3 \
60         -Dsiteman1dir=${PREFIX}/man/man1 \
61         -Ui_malloc -Ui_iconv -Uinstallusrbinperl \
62         -Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \
63         -Dccflags=-DAPPLLIB_EXP=\"${BSDPAN_DEST}\"
64 LOCALE_CLEANUP= LANG="" LC_ALL="" LC_COLLATE="" LC_CTYPE="" \
65                 LC_MESSAGES="" LC_MONETARY="" LC_NUMERIC="" \
66                 LC_TIME=""
67 CONFIGURE_ENV+= ${LOCALE_CLEANUP} UNAME_v="$$(uname -v | sed 'y/=/ /')"
68 MAKE_ENV+=      ${LOCALE_CLEANUP}
69
70 .include <bsd.port.pre.mk>
71 .include "${PORTSDIR}/Mk/bsd.default-versions.mk"
72
73 # if this port is default due PERL5_DEFAULT
74 # change PKGNAME to reflect this 
75 .if ${PERL_VER} == ${PERL5_DEFAULT}
76 PKGNAMESUFFIX=  ${PERL_VERSION:C/\.[0-9]+\.[0-9]+$//}
77 .else
78 # make PKGNAME unique among other lang/perl5.x
79 PKGNAMESUFFIX=  ${PERL_VER}
80 # always add default perl5 pkgname to conflicts
81 CONFLICTS_INSTALL+=     perl5-*
82 .endif
83
84 .if defined(PERL_VENDOR_PREFIX)
85 CONFIGURE_ARGS+=        \
86         -Dvendorprefix=${PERL_VENDOR_PREFIX} \
87         -Dvendorarch=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH} \
88         -Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
89         -Dvendorlib=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VER} \
90         -Dvendorman3dir=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VER}/man/man3 \
91         -Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1
92 .endif
93
94 MAN3PREFIX=     ${PREFIX}/lib/perl5/${PERL_VER}/perl
95 MANDIRS+=       ${MAN3PREFIX}
96
97 PLIST_SUB+=     PERL_VERSION=${PERL_VERSION} \
98                 PERL_VER=${PERL_VER} \
99                 PERL_ARCH=${PERL_ARCH} \
100                 MAN3=${MAN3PREFIX:S|^${LOCALBASE}/||}/man/man3 \
101                 SITE_PERL=${SITE_PERL:S|^${LOCALBASE}/||}
102
103 .if ${PORT_OPTIONS:MDEBUG}
104 CONFIGURE_ARGS+=        -Doptimize="-g" -DDEBUGGING
105 STRIP=
106 STRIP_CMD=      ${TRUE}
107 .else
108 CONFIGURE_ARGS+=        -Doptimize="${CFLAGS}"
109 .endif
110
111 .if ${PORT_OPTIONS:MGDBM}
112 CONFIGURE_ARGS+=        -Di_gdbm
113 LIB_DEPENDS+=           libgdbm.so:${PORTSDIR}/databases/gdbm
114 .else
115 CONFIGURE_ARGS+=        -Ui_gdbm
116 .endif
117
118 .if ${OSVERSION} >= 900022
119 PLIST_SUB+=     MANCONF=""
120 .else
121 PLIST_SUB+=     MANCONF="@comment "
122 .endif
123
124 .if ${PORT_OPTIONS:MTHREADS}
125 #XXX .if ${ARCH} == "x86_64"
126 #XXX IGNORE=    Threaded perl does not pass tests on ${ARCH}
127 #XXX .endif
128 CONFIGURE_ARGS+=        -Dusethreads=y
129 WITH_PTHREAD=           yes
130 # it seems perl malloc has problems with threaded perl on FreeBSD
131 PORT_OPTIONS:=  ${PORT_OPTIONS:O:u}
132 PORT_OPTIONS:=  ${PORT_OPTIONS:NPERL_MALLOC}
133 .else
134 CONFIGURE_ARGS+=        -Dusethreads=n
135 .endif
136
137 .if ${PORT_OPTIONS:MPERL_MALLOC}
138 CONFIGURE_ARGS+=        -Dusemymalloc=y
139 .else
140 CONFIGURE_ARGS+=        -Dusemymalloc=n
141 .endif
142
143 .if ${PORT_OPTIONS:MPERL_64BITINT}
144 CONFIGURE_ARGS+=        -Duse64bitint
145 .endif
146
147 .if ${PORT_OPTIONS:MMULTIPLICITY}
148 CONFIGURE_ARGS+=        -Dusemultiplicity=y
149 .endif
150
151 .if ${PORT_OPTIONS:MSITECUSTOMIZE}
152 CONFIGURE_ARGS+=        -Dusesitecustomize
153 .endif
154
155 .if ${PORT_OPTIONS:MUSE_PERL}
156 LINK_USRBIN=    yes
157 .else
158 LINK_USRBIN=    no
159 .endif
160
161 NO_LATEST_LINK= yes
162
163 BSDPAN_DEST=    ${PREFIX}/lib/perl5/${PERL_VER}/BSDPAN
164 BSDPAN_FILES=   BSDPAN.pm BSDPAN/Override.pm Config.pm \
165                 ExtUtils/MM_Unix.pm \
166                 ExtUtils/MakeMaker.pm \
167                 ExtUtils/Packlist.pm
168 BSDPAN_VERSION= 20111107
169 BSDPAN_WRKSRC=  ${WRKDIR}/BSDPAN-${BSDPAN_VERSION}
170
171 PKGINSTALL=     ${WRKDIR}/pkg-install
172 PKGDEINSTALL=   ${WRKDIR}/pkg-deinstall
173
174 post-patch:
175         ${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
176                 -e 's|%%PERL_VERSION%%|${PERL_VERSION}|g;' \
177                 -e 's|%%PERL_VER%%|${PERL_VER}|g;' \
178                 -e 's|%%PERL_ARCH%%|${PERL_ARCH}|g;' \
179                 -e 's|%%PERL5_SIGNATURE%%|${LOCALBASE}/etc/perl5_version|g;' \
180                 -e 's|%%LINK_USRBIN%%|${LINK_USRBIN}|g;' \
181                 ${FILESDIR}/use.perl \
182                 > ${WRKDIR}/use.perl
183         ${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
184                 -e 's|%%PERL_VER%%|${PERL_VER}|g;' \
185                 ${FILESDIR}/perl-man.conf \
186                 > ${WRKDIR}/perl-man.conf
187         ${CP} ${WRKDIR}/use.perl ${PKGINSTALL}
188         ${CP} ${WRKDIR}/use.perl ${PKGDEINSTALL}
189         ${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|${PERL_VER}|g;' \
190                 -e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \
191                 ${BSDPAN_WRKSRC}/ExtUtils/*.pm
192         ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
193                 ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
194 .if ${PORT_OPTIONS:MPTHREAD}
195         ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \
196                 -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \
197                 ${WRKSRC}/hints/freebsd.sh
198 .else
199         ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
200                 -e 's|%%PTHREAD_CFLAGS%%||g;' \
201                 ${WRKSRC}/hints/freebsd.sh
202 .endif
203
204 post-install:
205         @${MKDIR} ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/man/man3
206         @${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/auto
207         @${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/machine
208         @${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/sys
209         @${MKDIR} ${STAGEDIR}${SITE_PERL}/auto
210         @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
211 .if ${OSVERSION} >= 900022
212         @${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PERL_VER}.conf
213 .endif
214 .for files in ${BSDPAN_FILES}
215         ${MKDIR} ${STAGEDIR}${BSDPAN_DEST}/${files:H}
216         ${INSTALL_DATA} \
217                 ${BSDPAN_WRKSRC}/${files} ${STAGEDIR}${BSDPAN_DEST}/${files}
218 .endfor
219
220 test: build
221         @(cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness)
222
223 regression-test: test
224
225 .include <bsd.port.post.mk>