source: trunk/dports/lang/php/Portfile

Last change on this file was 154343, checked in by ryandesign@…, 9 months ago

php: Update php71 to 7.1.0RC5

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 47.9 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 154343 2016-10-28 10:01:06Z ryandesign@macports.org $
3
4PortSystem              1.0
5PortGroup               php 1.1
6PortGroup               compiler_blacklist_versions 1.0
7
8name                    php
9platforms               darwin freebsd
10maintainers             ryandesign
11license                 PHP-3.01
12default master_sites    {php:get/[lindex ${distfiles} 0]/from/this/mirror?dummy=}
13use_parallel_build      yes
14livecheck.type          none
15
16description             PHP: Hypertext Preprocessor
17
18long_description        PHP is a widely-used general-purpose scripting \
19                        language that is especially suited for developing \
20                        web sites, but can also be used for command-line \
21                        scripting.
22
23# The list of PHP branches this port provides.
24php.branches            5.2 5.3 5.4 5.5 5.6 7.0 7.1
25
26# Fix for users specifying the subport name with the wrong case.
27set subport             [string tolower ${subport}]
28
29# Get rootname from subport.
30regexp {^php\d+-(.+)$} ${subport} -> php.rootname
31
32# Returns true if the subport is a SAPI, false otherwise (extension, stub port).
33proc is_sapi_subport {} {
34    global name subport php.rootname
35    if {${name} eq ${subport}} {
36        return no
37    }
38    if {[regexp {^php\d+$} ${subport}]} {
39        return yes
40    }
41    return [expr {-1 != [lsearch -exact [list apache2handler cgi fpm] ${php.rootname}]}]
42}
43
44# Returns true if the subport is an extension, false otherwise (SAPI, stub port).
45proc is_extension_subport {} {
46    global name subport
47    if {${name} eq ${subport}} {
48        return no
49    }
50    return [expr {![is_sapi_subport]}]
51}
52
53if {![is_extension_subport]} {
54    categories          lang www
55    homepage            http://www.php.net/
56}
57
58set subport_branch      [php.branch_from_subport]
59
60# Remember to increment revision of ${php}-eaccelerator when updating version of ${php}.
61switch ${subport_branch} {
62    5.2 {
63        version         5.2.17
64        master_sites    http://museum.php.net/php5/
65        use_bzip2       yes
66        set suhosin_available       yes
67        set suhosin_patch_version   5.2.16-0.9.7
68        set suhosin_patch           suhosin-patch-${suhosin_patch_version}.patch.gz
69        checksums       ${distname}${extract.suffix} \
70                        md5     b27947f3045220faf16e4d9158cbfe13 \
71                        rmd160  567fa8d718b93fb83a89494c83a8bec224ac99e9 \
72                        sha256  e81beb13ec242ab700e56f366e9da52fd6cf18961d155b23304ca870e53f116c \
73                        ${suhosin_patch} \
74                        rmd160  b28b70faf136b3e04c5b483da0f4c2279378f43a \
75                        sha256  aae115a318d80b3f32cedf876e7a8e4b932febb1b0c743c0b398003ebe122f91
76    }
77    5.3 {
78        version         5.3.29
79        use_bzip2       yes
80        set suhosin_available       yes
81        set suhosin_patch_version   5.3.9-0.9.10
82        set suhosin_patch           suhosin-patch-${suhosin_patch_version}.patch.gz
83        checksums       ${distname}${extract.suffix} \
84                        md5     9469e240cbe6ac865aeaec89b253dd30 \
85                        rmd160  e57beb4fdda41bca81b5856161bc97f3c5e3e9da \
86                        sha256  c4e1cf6972b2a9c7f2777a18497d83bf713cdbecabb65d3ff62ba441aebb0091 \
87                        ${suhosin_patch} \
88                        rmd160  ce43921fd9b183b154713ecda98294f6c68d5f22 \
89                        sha256  4438caeab0a10c6c94aee9f7eaa703f5799f97d4e0579f43a947bb7314e38317
90    }
91    5.4 {
92        epoch           1
93        version         5.4.45
94        use_bzip2       yes
95        checksums       rmd160  352a0ea8fb75a447301c1434609ac0e4b96acc0c \
96                        sha256  4e0d28b1554c95cfaea6fa2b64aac85433f158ce72bb571bcd5574f98f4c6582
97    }
98    5.5 {
99        epoch           2
100        version         5.5.36
101        use_xz          yes
102        checksums       rmd160  a2ac1cd00db5b69e68856f2a887a85ea716e59c2 \
103                        sha256  e1bbe33d6b4da66b15c483131520a9fc505eeb6629fa70c5cfba79590a1d0801
104    }
105    5.6 {
106        epoch           2
107        version         5.6.27
108        use_xz          yes
109        checksums       rmd160  db27b268d28f5c7dce06cfaa39fa84104074c90b \
110                        sha256  16eb544498339d1d855292826e2e547ab01a31600141094959073e5e10e93ab5
111    }
112    7.0 {
113        epoch           2
114        version         7.0.12
115        use_xz          yes
116        checksums       rmd160  bfad5c87eb76ea4e5ee2958e14b906be057512b0 \
117                        sha256  f3d6c49e1c242e5995dec15e503fde996c327eb86cd7ec45c690e93c971b83ff
118    }
119    7.1 {
120        # When this becomes a stable version, remove the overrides for homepage,
121        # master_sites and livecheck, and update php.latest_stable_branch in the
122        # php-1.1 portgroup.
123        epoch           1
124        version         7.1.0RC5
125        homepage        https://qa.php.net/
126        master_sites    https://downloads.php.net/~krakjoe/
127        use_xz          yes
128        checksums       md5     1d195b0aeb63914a308fb215671445a5 \
129                        rmd160  1a0d51b3518e1b5bb958ff775626d4de4ec3685b \
130                        sha256  55a1b47cfa090760bb26438eb4faa7c62cd16eca4e527759e3941b38941f8f14
131        livecheck.url   ${homepage}
132        livecheck.regex php-([strsed ${subport_branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*(?:(?:alpha|beta|RC)\\d+|-latest))\\.tar
133    }
134}
135
136# Iterate through branches in reverse order, so that the list of subports in
137# "port info" will show newer versions before older versions.
138set i [llength ${php.branches}]
139while {[incr i -1] >= 0} {
140
141set branch              [lindex ${php.branches} ${i}]
142set major               [lindex [split ${branch} .] 0]
143set php                 php[php.suffix_from_branch ${branch}]
144
145if {[regexp "^${php}" ${subport}]} {
146
147if {[vercmp ${major} 5] > 0} {
148    dist_subdir         ${php}
149} else {
150    dist_subdir         php${major}
151}
152
153if {[is_sapi_subport]} {
154   
155    depends_build       port:pkgconfig
156   
157    if {${subport} ne ${php}} {
158        depends_lib     port:${php}
159    }
160   
161    depends_lib-append  path:bin/gsed:gsed \
162                        port:libiconv \
163                        port:libxml2 \
164                        port:bzip2 \
165                        port:mhash \
166                        port:pcre \
167                        port:zlib
168   
169    # Use -p1 to accommodate the Suhosin patch
170    patch.pre_args      -p1
171    patchfiles          patch-${php}-scripts-php-config.in.diff
172   
173    if {[vercmp ${branch} 5.2] <= 0} {
174        patchfiles-append \
175                        patch-${php}-libxml-2.9.diff \
176                        patch-${php}-pcre-8.30.diff
177    }
178
179    # https://trac.macports.org/ticket/31590
180    # Tested all subports (except oracle) and they built with clang-425.  The reported failure was with Xcode 4.2.
181    # Xcode 4.3 may work, but leaving it blacklisted due to lack of testing
182    compiler.blacklist  {clang < 400}
183   
184    set phpinidir       ${prefix}/etc/${php}
185    set extraphpinidir  ${prefix}/var/db/${php}
186   
187    configure.args      --mandir=${prefix}/share/man \
188                        --infodir=${prefix}/share/info \
189                        --program-suffix=[php.suffix_from_branch ${branch}] \
190                        --includedir=${prefix}/include/${php} \
191                        --libdir=${prefix}/lib/${php} \
192                        --with-config-file-path=${phpinidir} \
193                        --with-config-file-scan-dir=${extraphpinidir} \
194                        --disable-all \
195                        --enable-bcmath \
196                        --enable-ctype \
197                        --enable-dom \
198                        --enable-filter \
199                        --enable-hash \
200                        --enable-json \
201                        --enable-libxml \
202                        --enable-pdo \
203                        --enable-session \
204                        --enable-simplexml \
205                        --enable-tokenizer \
206                        --enable-xml \
207                        --enable-xmlreader \
208                        --enable-xmlwriter \
209                        --with-bz2=${prefix} \
210                        --with-mhash=${prefix} \
211                        --with-pcre-regex=${prefix} \
212                        --with-libxml-dir=${prefix} \
213                        --with-zlib=${prefix} \
214                        --without-pear \
215                        --disable-cgi \
216                        --disable-cli
217   
218    if {[vercmp ${branch} 5.3] >= 0} {
219        configure.args-append \
220                        --enable-fileinfo \
221                        --enable-phar \
222                        --disable-fpm
223       
224        # ${php}-mysql +mysqlnd needs mysqlnd support compiled into the SAPI
225        configure.env-append \
226                        PHP_MYSQLND_ENABLED=yes
227    }
228   
229    if {[vercmp ${branch} 5.4] == 0} {
230        # https://bugs.php.net/bug.php?id=68114
231        configure.args-append ac_cv_decimal_fp_supported=no
232    }
233   
234    configure.universal_args-delete --disable-dependency-tracking
235   
236    test.run            yes
237   
238    destroot.args       INSTALL_ROOT=${destroot}
239   
240    variant debug description {Enable debug support (useful to analyze a PHP-related core dump)} {
241        configure.args-append   --enable-debug
242    }
243   
244    if {[vercmp ${branch} 5.3] <= 0} {
245    variant suhosin description {Add Suhosin patch} {
246        pre-fetch {
247            if {${os.platform} eq "darwin" && ${os.major} < 9} {
248                ui_error "The suhosin variant requires Mac OS X 10.5 or greater."
249                return -code error "incompatible Mac OS X version"
250            }
251            if {!${suhosin_available}} {
252                ui_error "There is no suhosin patch for PHP ${version} yet. Please check back later."
253            }
254            if {![file exists ${extraphpinidir}/suhosin.ini]} {
255                ui_msg "You may also be interested in the suhosin extension, a related but different piece of software. See the ${php}-suhosin port."
256            }
257            if {!${suhosin_available}} {
258                return -code error "unavailable variant"
259            }
260        }
261        patch_sites-append          http://download.suhosin.org/
262        if {${suhosin_available}} {
263            if {[vercmp ${branch} 5.3] >= 0} {
264                patchfiles-append   patch-${php}-suhosin-before.diff
265            }
266            patchfiles-append       ${suhosin_patch}
267            if {[vercmp ${branch} 5.3] >= 0} {
268                patchfiles-append   patch-${php}-suhosin-after.diff
269            }
270        }
271    }
272    }
273   
274    if {${subport} ne ${php}} {
275        notes-append "If this is your first install, you need to enable ${subport} in your web server."
276    }
277   
278}
279
280}
281
282### CLI SAPI ###
283
284subport ${php} {
285    PortGroup               select 1.0
286   
287    switch -- ${version} {
288        5.2.17              {revision 11}
289        5.3.29              {revision 1}
290    }
291   
292    depends_run             port:php_select
293   
294    select.group            php
295    select.file             ${filespath}/${subport}
296   
297    configure.args-replace  --disable-cli --enable-cli
298   
299    destroot.target         install-cli install-build install-headers install-programs
300   
301    destroot.keepdirs       ${destroot}${extraphpinidir}
302   
303    post-destroot {
304        # Copy the default php.ini files.
305        xinstall -m 755 -d ${destroot}${phpinidir}
306        if {[vercmp ${branch} 5.3] >= 0} {
307            xinstall -m 644 -W ${worksrcpath} \
308                php.ini-development \
309                php.ini-production \
310                ${destroot}${phpinidir}
311        } else {
312            xinstall -m 644 -W ${worksrcpath} \
313                php.ini-dist \
314                php.ini-recommended \
315                ${destroot}${phpinidir}
316        }
317       
318        if {[vercmp ${branch} 5.3] >= 0} {
319            # Copy mysqlnd headers.
320            xinstall -d ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
321            xinstall -m 644 {*}[glob ${worksrcpath}/ext/mysqlnd/*.h] ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
322        }
323    }
324   
325    # Include the readline extension http://www.php.net/readline directly in
326    # the PHP CLI SAPI because until PHP 6 the interactive mode "php -a" won't
327    # work with a separately built readline extension.
328    # https://bugs.php.net/bug.php?id=53878
329    # Users might prefer readline over libedit because only readline supports
330    # readline_list_history() (http://www.php.net/readline-list-history).
331    # On the other hand we want libedit to be the default because its license
332    # is compatible with PHP's which means PHP can be distributable.
333    variant libedit conflicts readline description {Build readline extension using libedit library} {
334        depends_lib-append      port:libedit port:ncurses
335        configure.args-append   --with-libedit=${prefix}
336    }
337    variant readline conflicts libedit description {Build readline extension using readline library} {
338        depends_lib-append      port:ncurses port:readline
339        configure.args-append   --with-readline=${prefix}
340    }
341    if {![variant_isset readline]} {
342        default_variants +libedit
343    }
344   
345    if {[vercmp ${branch} 5.5] < 0} {
346        notes-append "
347PHP ${branch} has reached end-of-life. Please upgrade to PHP 5.5 or newer. The newest stable version is ${php.latest_stable_branch}.
348
349To learn how to update your code, please read the following guides:
350
351    http://php.net/manual/en/migration[php.suffix_from_branch ${php.latest_stable_branch}].php
352
353
354"
355    }
356   
357    if {[vercmp ${branch} ${php.latest_stable_branch}] > 0} {
358        notes-append "${php} @${version}_${revision} is a development preview—do not use it in production!\n\n\n"
359    }
360   
361    if {![file exists ${phpinidir}/php.ini]} {
362        if {[vercmp ${branch} 5.3] >= 0} {
363            notes-append "
364To customize ${php}, copy\
365${phpinidir}/php.ini-development (if this is a development server) or\
366${phpinidir}/php.ini-production (if this is a production server) to\
367${phpinidir}/php.ini and then make changes.
368"
369        } else {
370            notes-append "
371To customize ${php}, copy ${phpinidir}/php.ini-recommended to\
372${phpinidir}/php.ini and then make changes.
373"
374        }
375    } else {
376        if {[vercmp ${branch} 5.3] >= 0} {
377            notes-append "
378You may need to update your php.ini for any changes that have been made\
379in this version of ${php}. Compare ${phpinidir}/php.ini with\
380${phpinidir}/php.ini-development (if this is a development server) or\
381${phpinidir}/php.ini-production (if this is a production server).
382"
383        } else {
384            notes-append "
385You may need to update your php.ini for any changes that have been made\
386in this version of ${php}. Compare ${phpinidir}/php.ini with\
387${phpinidir}/php.ini-recommended.
388"
389        }
390    }
391   
392    # Enable livecheck for the two most recent stable PHP branches and the development branch.
393    if {[vercmp ${branch} [lindex ${php.branches} end-2]] >= 0} {
394        livecheck.type      regex
395        default livecheck.url   ${homepage}downloads.php
396        default livecheck.regex {get/php-([strsed ${branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*)\\.tar}
397    }
398}
399
400### Apache 2 handler SAPI ###
401
402subport ${php}-apache2handler {
403    PortGroup               active_variants 1.1
404   
405    description             ${php} Apache 2 Handler SAPI
406   
407    long_description        ${description}
408   
409    homepage                http://www.php.net/install.unix.apache2
410   
411    depends_lib-append      port:apache2
412   
413    require_active_variants apache2 preforkmpm
414   
415    set apxs ${prefix}/apache2/bin/apxs
416    set confdir ${prefix}/apache2/conf
417    set moduledir ${prefix}/apache2/modules
418   
419    configure.args-append   --with-apxs2=${apxs}
420   
421    build.target            libs/libphp${major}.bundle
422   
423    destroot.violate_mtree  yes
424   
425    destroot {
426        xinstall -m 755 -d ${destroot}${moduledir} ${destroot}${confdir}/extra
427        xinstall -m 644 ${worksrcpath}/libs/libphp${major}.so ${destroot}${moduledir}/mod_${php}.so
428        xinstall -m 644 ${filespath}/mod_php.conf.in ${destroot}${confdir}/extra/mod_${php}.conf
429        reinplace s/@MAJOR@/${major}/g ${destroot}${confdir}/extra/mod_${php}.conf
430    }
431   
432    notes-append "
433
434To enable ${subport}, run:
435
436    cd ${moduledir}
437    sudo ${apxs} -a -e -n php${major} mod_${php}.so
438"
439}
440
441### CGI SAPI ###
442
443subport ${php}-cgi {
444    description             ${php} CGI SAPI
445   
446    long_description        ${description}
447   
448    homepage                http://www.php.net/install.unix.commandline
449   
450    configure.args-delete   --disable-cgi
451    if {[vercmp ${branch} 5.3] >= 0} {
452        configure.args-append --enable-cgi
453    } else {
454        configure.args-append --enable-fastcgi --enable-force-cgi-redirect
455    }
456   
457    if {[vercmp ${branch} 5.4] >= 0} {
458        build.target        cgi
459        destroot.target     install-cgi
460    } else {
461        destroot {
462            xinstall ${worksrcpath}/sapi/cgi/php-cgi ${destroot}${prefix}/bin/php-cgi[php.suffix_from_branch ${branch}]
463        }
464    }
465   
466}
467
468### FPM SAPI ###
469
470if {[vercmp ${branch} 5.3] >= 0} {
471subport ${php}-fpm {
472    description             ${php} FPM SAPI
473   
474    long_description        ${description}
475   
476    homepage                http://www.php.net/install.fpm
477   
478    set fpmuser             nobody
479    set fpmgroup            nobody
480   
481    patchfiles-append       patch-${php}-sapi-fpm-php-fpm.conf.in.diff
482   
483    post-patch {
484        reinplace "s|@PHP@|${php}|g" ${worksrcpath}/sapi/fpm/php-fpm.conf.in
485    }
486   
487    configure.args-replace  --disable-fpm --enable-fpm
488    configure.args-append   --datadir=${prefix}/share/examples/${php} \
489                            --sysconfdir=${phpinidir} \
490                            --with-fpm-user=${fpmuser} \
491                            --with-fpm-group=${fpmgroup}
492   
493    build.target            fpm
494   
495    destroot.target         install-fpm
496   
497    destroot.keepdirs       ${destroot}${prefix}/var/log/${php} \
498                            ${destroot}${prefix}/var/run/${php}
499   
500    post-destroot {
501        xinstall -d -o ${fpmuser} -g ${fpmgroup} ${destroot}${prefix}/var/log/${php} ${destroot}${prefix}/var/run/${php}
502    }
503   
504    startupitem.create      yes
505    startupitem.executable  ${prefix}/sbin/php-fpm[php.suffix_from_branch ${branch}]
506   
507    if {![file exists ${phpinidir}/php-fpm.conf]} {
508        notes-append "
509
510To use ${subport}, copy\
511${phpinidir}/php-fpm.conf.default to\
512${phpinidir}/php-fpm.conf and make changes if desired.
513"
514    } else {
515        notes-append "
516
517You may need to update your php-fpm.conf for any changes that have been made\
518in this version of ${subport}. Compare ${phpinidir}/php-fpm.conf with\
519${phpinidir}/php-fpm.conf.default.
520"
521    }
522}
523}
524
525### Bundled extensions ###
526
527subport ${php}-calendar {
528    description             a PHP extension for converting between different \
529                            calendar formats
530   
531    long_description        ${description}
532}
533
534subport ${php}-curl {
535    categories-append       net www
536   
537    description             a PHP interface to the curl library, which lets you \
538                            download files from servers with a variety of protocols
539   
540    long_description        ${description}
541   
542    depends_lib-append      port:curl
543   
544    configure.args-append   --with-curl=${prefix}
545}
546
547subport ${php}-dba {
548    categories-append       databases
549   
550    description             a PHP interface for accessing DBM databases such as \
551                            BerkeleyDB
552   
553    long_description        ${description}
554   
555    variant gdbm conflicts qdbm description {Add GDBM support} {
556        depends_lib-append      port:gdbm
557        configure.args-append   --with-gdbm=${prefix}
558    }
559   
560    variant qdbm conflicts gdbm description {Add QDBM support} {
561        depends_lib-append      port:qdbm
562        configure.args-append   --with-qdbm=${prefix}
563    }
564}
565
566if {[vercmp ${branch} 5.3] >= 0} {
567subport ${php}-enchant {
568    categories-append       textproc devel
569   
570    description             a PHP interface to enchant
571   
572    long_description        ${name} is ${description}, a common API for many spell libraries.
573   
574    depends_lib-append      port:enchant
575   
576    configure.args-append   --with-enchant=${prefix}
577   
578    post-destroot {
579        set docdir ${prefix}/share/doc/${subport}
580        xinstall -d ${destroot}${docdir}
581        xinstall -m 644 -W ${destroot.dir} CREDITS ${destroot}${docdir}
582       
583        set examplesdir ${prefix}/share/examples/${subport}
584        xinstall -d ${destroot}${examplesdir}
585        xinstall -m 644 ${destroot.dir}/docs/examples/example1.php \
586            ${destroot}${examplesdir}
587    }
588}
589}
590
591subport ${php}-exif {
592    categories-append       graphics
593   
594    description             a PHP interface to the EXIF image metadata functions
595   
596    long_description        ${description}
597}
598
599subport ${php}-ftp {
600    categories-append       net
601   
602    description             a PHP extension for accessing file servers using the \
603                            File Transfer Protocol
604   
605    long_description        ${description}
606   
607    depends_lib-append      path:lib/libssl.dylib:openssl
608   
609    configure.args-append   --with-openssl-dir=${prefix}
610}
611
612subport ${php}-gd {
613    categories-append       graphics
614   
615    description             a PHP interface to the gd library
616   
617    long_description        ${description}
618   
619    depends_lib-append      port:freetype \
620                            port:jpeg \
621                            port:libpng \
622                            port:zlib
623   
624    patchfiles-append       patch-${php}-ext-gd-config.m4.diff
625   
626    configure.args-append   --with-freetype-dir=${prefix} \
627                            --with-jpeg-dir=${prefix} \
628                            --with-png-dir=${prefix} \
629                            --with-zlib-dir=${prefix} \
630                            --enable-gd-native-ttf
631
632    if {[vercmp ${branch} 7.0] >= 0} {
633        depends_lib-append  port:webp
634        configure.args-append --with-webp-dir=${prefix}
635    }
636   
637    if {[vercmp ${branch} 7] < 0} {
638    variant t1lib description {Add PostScript Type 1 font support with t1lib} {
639        depends_lib-append      port:t1lib
640        configure.args-append   --with-t1lib=${prefix}
641    }
642    }
643}
644
645subport ${php}-gettext {
646    categories-append       devel
647   
648    description             a PHP interface to the gettext natural language \
649                            support functions
650   
651    long_description        ${description}
652   
653    depends_lib-append      port:gettext
654   
655    configure.args-append   --with-gettext=${prefix}
656}
657
658subport ${php}-gmp {
659    categories-append       devel math
660   
661    description             a PHP interface to GMP, the GNU multiprocessing \
662                            library through which you can work with \
663                            arbitrary-length integers
664   
665    long_description        ${description}
666   
667    depends_lib-append      port:gmp
668   
669    if {[vercmp ${branch} 5.2] <= 0} {
670        patchfiles-append   patch-${php}-ext-gmp-gmp.c.diff
671    }
672   
673    configure.args-append   --with-gmp=${prefix}
674}
675
676subport ${php}-iconv {
677    categories-append       textproc
678   
679    description             a PHP interface to the libiconv character encoding \
680                            conversion functions
681   
682    long_description        ${description}
683   
684    depends_lib-append      port:libiconv
685   
686    configure.args-append   --with-iconv=${prefix}
687}
688
689subport ${php}-imap {
690    categories-append       mail
691   
692    description             a PHP interface to the IMAP protocol
693   
694    long_description        ${description}
695   
696    depends_build-append    port:cclient
697   
698    depends_lib-append      port:kerberos5 \
699                            port:libcomerr
700   
701    configure.args-append   --with-imap=${prefix} \
702                            --with-imap-ssl=${prefix} \
703                            --with-kerberos=${prefix}
704}
705
706if {[vercmp ${branch} 5.3] >= 0} {
707subport ${php}-intl {
708    switch -- ${version} {
709        5.3.29              {revision 2}
710    }
711   
712    categories-append       devel
713   
714    description             internationalization extension for PHP
715   
716    long_description        Internationalization extension implements ICU \
717                            library functionality in PHP.
718   
719    depends_lib-append      port:icu
720}
721}
722
723subport ${php}-ipc {
724    php.extensions          shmop sysvmsg sysvsem sysvshm
725   
726    description             interprocess communication extensions for PHP
727   
728    long_description        PHP extensions for interprocess communication (IPC), including the \
729                            shmop, sysvmsg, sysvsem, and sysvshm extensions.
730}
731
732subport ${php}-ldap {
733    categories-append       databases
734   
735    description             a PHP interface to LDAP
736
737    long_description        ${subport} is ${description}, the Lightweight Directory \
738                            Access Protocol, which is used to access Directory \
739                            Servers.
740   
741    depends_lib-append      port:openldap \
742                            port:cyrus-sasl2
743   
744    configure.args-append   --with-ldap=${prefix} \
745                            --with-ldap-sasl=${prefix}
746}
747
748subport ${php}-mbstring {
749    categories-append       textproc
750   
751    description             a PHP extension for manipulating strings in multibyte \
752                            encodings
753   
754    long_description        ${description}
755}
756
757subport ${php}-mcrypt {
758    categories-append       security
759   
760    description             a PHP interface to the mcrypt library, which offers \
761                            a wide variety of algorithms
762   
763    long_description        ${description}
764   
765    depends_lib-append      port:libmcrypt
766   
767    # The mcrypt extension may be using libtool unnecessarily; monitor
768    # https://bugs.php.net/bug.php?id=54500
769    depends_lib-append      port:libtool
770   
771    configure.args-append   --with-mcrypt=${prefix}
772}
773
774if {[vercmp ${branch} 7] < 0} {
775subport ${php}-mssql {
776    php.extensions          mssql pdo_dblib
777   
778    categories-append       databases
779   
780    description             a PHP interface to MSSQL using FreeTDS, including \
781                            the mssql and pdo_dblib extensions
782   
783    long_description        ${description}
784   
785    depends_lib-append      port:freetds
786   
787    configure.args-append   --with-mssql=${prefix} \
788                            --with-pdo-dblib=${prefix}
789}
790}
791
792subport ${php}-mysql {
793    php.extensions          mysqli pdo_mysql
794    if {[vercmp ${branch} 7] < 0} {
795        php.extensions-prepend mysql
796    }
797   
798    categories-append       databases
799   
800    description             a PHP interface to MySQL databases, including the
801    if {[vercmp ${branch} 7] < 0} {
802        description-append  mysql,
803    }
804    description-append      mysqli and pdo_mysql extensions
805   
806    long_description        ${description}
807   
808    depends_lib-append      port:zlib
809   
810    configure.args-append   --with-zlib-dir=${prefix}
811   
812    if {[vercmp ${branch} 5.3] >= 0} {
813    variant mysqlnd conflicts mysql4 mysql5 mysql51 mysql55 mysql56 mariadb percona description {Use MySQL Native Driver} {
814        configure.args-append   --with-mysql=mysqlnd \
815                                --with-mysqli=mysqlnd \
816                                --with-pdo-mysql=mysqlnd
817       
818        configure.cppflags-append   -I${worksrcpath}
819       
820        set phpini ${prefix}/etc/${php}/php.ini
821        notes "
822To use mysqlnd with a local MySQL server, edit ${phpini} and set\
823mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket\
824to the path to your MySQL server's socket file.
825
826For mysql5, use ${prefix}/var/run/mysql5/mysqld.sock
827For mysql51, use ${prefix}/var/run/mysql51/mysqld.sock
828For mysql55, use ${prefix}/var/run/mysql55/mysqld.sock
829For mysql56, use ${prefix}/var/run/mysql56/mysqld.sock
830For mariadb, use ${prefix}/var/run/mariadb/mysqld.sock
831For percona, use ${prefix}/var/run/percona/mysqld.sock
832"
833    }
834    }
835   
836    variant mysql4 conflicts mysqlnd mysql5 mysql51 mysql55 mysql56 mariadb percona description {Use MySQL 4 libraries} {
837        depends_lib-append      port:mysql4
838       
839        configure.args-append   --with-mysql=${prefix} \
840                                --with-pdo-mysql=${prefix}
841    }
842   
843    variant mysql5 conflicts mysqlnd mysql4 mysql51 mysql55 mysql56 mariadb percona description {Use MySQL 5 libraries} {
844        depends_lib-append      path:bin/mysql_config5:mysql5
845       
846        post-extract {
847            file mkdir ${workpath}/mysql5
848            file link -symbolic ${workpath}/mysql5/lib ${prefix}/lib/mysql5
849            file link -symbolic ${workpath}/mysql5/include ${prefix}/include/mysql5
850        }
851       
852        configure.args-append   --with-mysql=${workpath}/mysql5 \
853                                --with-mysqli=${prefix}/bin/mysql_config5 \
854                                --with-pdo-mysql=${prefix}/bin/mysql_config5 \
855                                --with-mysql-sock=${prefix}/var/run/mysql5/mysqld.sock
856    }
857   
858    variant mysql51 conflicts mysqlnd mysql4 mysql5 mysql55 mysql56 mariadb percona description {Use MySQL 5.1 libraries} {
859        depends_lib-append      port:mysql51
860       
861        post-extract {
862            file mkdir ${workpath}/mysql51
863            file link -symbolic ${workpath}/mysql51/lib ${prefix}/lib/mysql51
864            file link -symbolic ${workpath}/mysql51/include ${prefix}/include/mysql51
865        }
866       
867        configure.args-append   --with-mysql=${workpath}/mysql51 \
868                                --with-mysqli=${prefix}/lib/mysql51/bin/mysql_config \
869                                --with-pdo-mysql=${prefix}/lib/mysql51/bin/mysql_config \
870                                --with-mysql-sock=${prefix}/var/run/mysql51/mysqld.sock
871    }
872   
873    variant mysql55 conflicts mysqlnd mysql4 mysql5 mysql51 mysql56 mariadb percona description {Use MySQL 5.5 libraries} {
874        depends_lib-append      port:mysql55
875       
876        post-extract {
877            file mkdir ${workpath}/mysql55
878            file link -symbolic ${workpath}/mysql55/lib ${prefix}/lib/mysql55
879            file link -symbolic ${workpath}/mysql55/include ${prefix}/include/mysql55
880        }
881       
882        configure.args-append   --with-mysql=${workpath}/mysql55 \
883                                --with-mysqli=${prefix}/lib/mysql55/bin/mysql_config \
884                                --with-pdo-mysql=${prefix}/lib/mysql55/bin/mysql_config \
885                                --with-mysql-sock=${prefix}/var/run/mysql55/mysqld.sock
886    }
887   
888    variant mysql56 conflicts mysqlnd mysql4 mysql5 mysql51 mysql55 mariadb percona description {Use MySQL 5.6 libraries} {
889        depends_lib-append      port:mysql56
890       
891        post-extract {
892            file mkdir ${workpath}/mysql56
893            file link -symbolic ${workpath}/mysql56/lib ${prefix}/lib/mysql56
894            file link -symbolic ${workpath}/mysql56/include ${prefix}/include/mysql56
895        }
896       
897        configure.args-append   --with-mysql=${workpath}/mysql56 \
898                                --with-mysqli=${prefix}/lib/mysql56/bin/mysql_config \
899                                --with-pdo-mysql=${prefix}/lib/mysql56/bin/mysql_config \
900                                --with-mysql-sock=${prefix}/var/run/mysql56/mysqld.sock
901    }
902   
903    variant mariadb conflicts mysqlnd mysql4 mysql5 mysql51 mysql55 mysql56 percona description {Use MariaDB libraries} {
904        depends_lib-append      port:mariadb
905       
906        post-extract {
907            file mkdir ${workpath}/mariadb
908            file link -symbolic ${workpath}/mariadb/lib ${prefix}/lib/mariadb
909            file link -symbolic ${workpath}/mariadb/include ${prefix}/include/mariadb
910        }
911       
912        configure.args-append   --with-mysql=${workpath}/mariadb \
913                                --with-mysqli=${prefix}/lib/mariadb/bin/mysql_config \
914                                --with-pdo-mysql=${prefix}/lib/mariadb/bin/mysql_config \
915                                --with-mysql-sock=${prefix}/var/run/mariadb/mysqld.sock
916    }
917   
918    variant percona conflicts mysqlnd mysql4 mysql5 mysql51 mysql55 mysql56 mariadb description {Use Percona libraries} {
919        depends_lib-append      port:percona
920       
921        post-extract {
922            file mkdir ${workpath}/percona
923            file link -symbolic ${workpath}/percona/lib ${prefix}/lib/percona
924            file link -symbolic ${workpath}/percona/include ${prefix}/include/percona
925        }
926       
927        configure.args-append   --with-mysql=${workpath}/percona \
928                                --with-mysqli=${prefix}/lib/percona/bin/mysql_config \
929                                --with-pdo-mysql=${prefix}/lib/percona/bin/mysql_config \
930                                --with-mysql-sock=${prefix}/var/run/percona/mysqld.sock
931    }
932   
933    if {![variant_isset mysql4] && ![variant_isset mysql5] && ![variant_isset mysql51] && ![variant_isset mysql55] && ![variant_isset mysql56] && ![variant_isset mariadb] && ![variant_isset percona]} {
934        if {[vercmp ${branch} 5.3] >= 0} {
935            default_variants +mysqlnd
936        } else {
937            default_variants +mariadb
938        }
939    }
940}
941
942subport ${php}-odbc {
943    php.extensions          odbc pdo_odbc
944   
945    categories-append       databases
946   
947    description             a PHP interface for accessing databases via Open \
948                            DataBase Connectivity (ODBC)
949   
950    long_description        ${description}
951   
952    variant iodbc conflicts unixodbc description {Use iODBC} {
953        depends_lib-append      port:libiodbc
954       
955        patchfiles-append       patch-${php}-iODBC.diff
956       
957        configure.args-append   --with-iODBC=${prefix} \
958                                --with-pdo-odbc=iODBC,${prefix}
959    }
960   
961    variant unixodbc conflicts iodbc description {Use unixODBC} {
962        depends_lib-append      port:unixODBC
963       
964        patchfiles-append       patch-${php}-unixODBC.diff
965       
966        configure.args-append   --with-unixODBC=${prefix} \
967                                --with-pdo-odbc=unixODBC,${prefix}
968    }
969   
970    if {![variant_isset iodbc] && ![variant_isset unixodbc]} {
971        default_variants +unixodbc
972    }
973}
974
975if {[vercmp ${branch} 5.5] >= 0} {
976    subport ${php}-opcache {
977        php.extensions.zend opcache
978       
979        description         OPcache improves PHP performance by storing precompiled \
980                            script bytecode in shared memory, thereby removing the \
981                            need for PHP to load and parse scripts on each request.
982       
983        long_description    ${description}
984       
985        configure.args-append --enable-opcache
986       
987        post-destroot {
988            set docdir ${destroot}${prefix}/share/doc/${subport}
989            xinstall -d ${docdir}
990            xinstall -W ${destroot.dir} -m 644 README ${docdir}
991        }
992    }
993}
994
995subport ${php}-openssl {
996    categories-append       devel security
997   
998    description             a PHP interface to OpenSSL signature-generation \
999                            and -verification and data-encryption and \
1000                            -decryption functions
1001   
1002    long_description        ${description}
1003   
1004    depends_lib-append      port:kerberos5 \
1005                            port:libcomerr \
1006                            path:lib/libssl.dylib:openssl
1007   
1008    post-extract {
1009        move ${php.build_dirs}/config0.m4 ${php.build_dirs}/config.m4
1010    }
1011   
1012    configure.args-append   --with-kerberos=${prefix} \
1013                            --with-openssl=${prefix}
1014}
1015
1016subport ${php}-oracle {
1017    php.extensions          oci8 pdo_oci
1018   
1019    categories-append       databases
1020   
1021    description             a PHP interface to Oracle, including the oci8 and \
1022                            pdo_oci extensions
1023   
1024    long_description        ${description}
1025   
1026    depends_lib-append      port:oracle-instantclient
1027   
1028    if {[vercmp ${branch} 5.2] <= 0} {
1029        patchfiles-append   patch-${php}-ext-pdo_oci-config.m4.diff
1030    }
1031   
1032    set lib_dir             ${prefix}/lib/oracle
1033    pre-configure {
1034        regexp {\.dylib\.(.+)$} [glob -directory ${lib_dir} libclntsh.dylib.*] -> library_version
1035        configure.args-append \
1036                            --with-oci8=instantclient,${lib_dir} \
1037                            --with-pdo-oci=instantclient,${lib_dir},${library_version}
1038    }
1039}
1040
1041subport ${php}-pcntl {
1042    categories-append       sysutils
1043   
1044    description             a PHP interface to Unix-style process creation, \
1045                            program execution, signal handling and process \
1046                            termination functions
1047   
1048    long_description        ${description}
1049   
1050    notes "
1051${subport} should not be enabled within a web server environment.\
1052Unexpected results may occur if any process control functions are used within\
1053a web server environment.
1054"
1055}
1056
1057subport ${php}-posix {
1058    categories-append       sysutils
1059   
1060    description             a PHP interface to additional POSIX functions
1061   
1062    long_description        a PHP interface to those functions defined in the \
1063                            IEEE 1003.1 (POSIX.1) standards document which are \
1064                            not accessible through other means
1065}
1066
1067subport ${php}-postgresql {
1068    php.extensions          pgsql pdo_pgsql
1069   
1070    categories-append       databases
1071   
1072    homepage                http://www.php.net/pgsql
1073   
1074    description             a PHP interface to PostgreSQL, including \
1075                            the pgsql and pdo_pgsql extensions
1076   
1077    long_description        ${description}
1078   
1079    variant postgresql82 conflicts postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 8.2 libraries} {
1080        depends_lib-append      port:postgresql82
1081       
1082        configure.args-append   --with-pgsql=${prefix}/lib/postgresql82/bin \
1083                                --with-pdo-pgsql=${prefix}/lib/postgresql82/bin
1084    }
1085   
1086    variant postgresql83 conflicts postgresql82 postgresql84 postgresql90 postgresql91 postgresql92 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 8.3 libraries} {
1087        depends_lib-append      port:postgresql83
1088       
1089        configure.args-append   --with-pgsql=${prefix}/lib/postgresql83/bin \
1090                                --with-pdo-pgsql=${prefix}/lib/postgresql83/bin
1091    }
1092   
1093    variant postgresql84 conflicts postgresql82 postgresql83 postgresql90 postgresql91 postgresql92 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 8.4 libraries} {
1094        depends_lib-append      port:postgresql84
1095       
1096        configure.args-append   --with-pgsql=${prefix}/lib/postgresql84/bin \
1097                                --with-pdo-pgsql=${prefix}/lib/postgresql84/bin
1098    }
1099   
1100    variant postgresql90 conflicts postgresql82 postgresql83 postgresql84 postgresql91 postgresql92 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 9.0 libraries} {
1101        depends_lib-append      port:postgresql90
1102       
1103        configure.args-append   --with-pgsql=${prefix}/lib/postgresql90/bin \
1104                                --with-pdo-pgsql=${prefix}/lib/postgresql90/bin
1105    }
1106   
1107    variant postgresql91 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql92 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 9.1 libraries} {
1108        depends_lib-append      port:postgresql91
1109       
1110        configure.args-append   --with-pgsql=${prefix}/lib/postgresql91/bin \
1111                                --with-pdo-pgsql=${prefix}/lib/postgresql91/bin
1112    }
1113   
1114    variant postgresql92 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 postgresql93 postgresql94 postgresql95 description {Use PostgreSQL 9.2 libraries} {
1115        depends_lib-append      port:postgresql92
1116       
1117        configure.args-append   --with-pgsql=${prefix}/lib/postgresql92/bin \
1118                                --with-pdo-pgsql=${prefix}/lib/postgresql92/bin
1119    }
1120   
1121    variant postgresql93 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 postgresql94 postgresql95 description {Use PostgreSQL 9.3 libraries} {
1122        depends_lib-append      port:postgresql93
1123       
1124        configure.args-append   --with-pgsql=${prefix}/lib/postgresql93/bin \
1125                                --with-pdo-pgsql=${prefix}/lib/postgresql93/bin
1126    }
1127   
1128    variant postgresql94 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 postgresql93 postgresql95 description {Use PostgreSQL 9.4 libraries} {
1129        depends_lib-append      port:postgresql94
1130       
1131        configure.args-append   --with-pgsql=${prefix}/lib/postgresql94/bin \
1132                                --with-pdo-pgsql=${prefix}/lib/postgresql94/bin
1133    }
1134   
1135    variant postgresql95 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 postgresql93 postgresql94 description {Use PostgreSQL 9.5 libraries} {
1136        depends_lib-append      port:postgresql95
1137       
1138        configure.args-append   --with-pgsql=${prefix}/lib/postgresql95/bin \
1139                                --with-pdo-pgsql=${prefix}/lib/postgresql95/bin
1140    }
1141   
1142    if {![variant_isset postgresql82] && ![variant_isset postgresql83] && ![variant_isset postgresql84] && ![variant_isset postgresql90] && ![variant_isset postgresql91] && ![variant_isset postgresql92] && ![variant_isset postgresql93] && ![variant_isset postgresql94] && ![variant_isset postgresql95]} {
1143        default_variants +postgresql94
1144    }
1145}
1146
1147subport ${php}-pspell {
1148    categories-append       textproc
1149   
1150    description             a PHP interface to the aspell library, which lets you \
1151                            check spelling and offer spelling suggestions
1152   
1153    long_description        ${description}
1154   
1155    depends_lib-append      port:aspell
1156   
1157    configure.args-append   --with-pspell=${prefix}
1158}
1159
1160subport ${php}-snmp {
1161    categories-append       sysutils
1162   
1163    description             a PHP interface to the Simple Network Management \
1164                            Protocol (SNMP)
1165   
1166    long_description        ${description}
1167   
1168    depends_lib-append      port:net-snmp
1169   
1170    configure.args-append   --with-snmp=${prefix}
1171}
1172
1173subport ${php}-soap {
1174    categories-append       net
1175   
1176    description             a PHP extension for writing SOAP clients and servers
1177   
1178    long_description        ${description}
1179   
1180    depends_lib-append      port:libxml2
1181   
1182    configure.args-append   --with-libxml-dir=${prefix}
1183}
1184
1185subport ${php}-sockets {
1186    categories-append       net
1187   
1188    description             a PHP interface to BSD socket communication \
1189                            functions
1190   
1191    long_description        ${description}
1192}
1193
1194if {[vercmp ${branch} 5.3] >= 0} {
1195subport ${php}-sqlite {
1196    php.extensions          sqlite sqlite3 pdo_sqlite
1197   
1198    categories-append       databases
1199   
1200    description             a PHP interface to SQLite, including the sqlite, sqlite3 \
1201                            and pdo_sqlite extensions
1202   
1203    if {[vercmp ${branch} 5.4] >= 0} {
1204        php.extensions-delete sqlite
1205        description-delete "sqlite,"
1206    }
1207   
1208    long_description        ${description}
1209   
1210    depends_lib-append      port:sqlite3
1211   
1212    post-extract {
1213        move ${worksrcpath}/ext/sqlite3/config0.m4 ${worksrcpath}/ext/sqlite3/config.m4
1214    }
1215   
1216    configure.args-append   --with-sqlite3=${prefix} \
1217                            --with-pdo-sqlite=${prefix} \
1218                            --enable-sqlite-utf8
1219}
1220}
1221
1222subport ${php}-tidy {
1223    switch -- ${version} {
1224        5.2.17              {revision 2}
1225        5.3.29              {revision 2}
1226        5.4.45              {revision 1}
1227    }
1228   
1229    categories-append       www
1230   
1231    description             a PHP interface to tidy, the HTML cleaning and \
1232                            repair utility
1233   
1234    long_description        ${description}
1235   
1236    depends_lib-append      port:tidy
1237   
1238    if {[vercmp ${branch} 7.0] <= 0} {
1239        patchfiles-append   patch-${php}-ext-tidy-tidy.c.diff
1240    }
1241   
1242    configure.args-append   --with-tidy=${prefix}
1243}
1244
1245subport ${php}-wddx {
1246    categories-append       textproc
1247   
1248    description             a PHP interface to Web Distributed Data Exchange
1249   
1250    long_description        ${description}
1251   
1252    depends_build-append    port:expat \
1253                            port:libxml2
1254   
1255    configure.args-append   --with-libexpat-dir=${prefix} \
1256                            --with-libxml-dir=${prefix}
1257}
1258
1259subport ${php}-xmlrpc {
1260    categories-append       textproc
1261   
1262    description             a PHP extension for writing XML-RPC clients and servers
1263   
1264    long_description        ${description}
1265   
1266    depends_build-append    port:libiconv \
1267                            port:libxml2
1268   
1269    depends_lib-append      port:expat
1270   
1271    configure.args-append   --with-iconv-dir=${prefix} \
1272                            --with-libexpat-dir=${prefix} \
1273                            --with-libxml-dir=${prefix}
1274   
1275    pre-configure {
1276        configure.cppflags-append [exec ${prefix}/bin/xml2-config --cflags]
1277    }
1278}
1279
1280subport ${php}-xsl {
1281    categories-append       textproc
1282   
1283    description             a PHP interface to libxslt, which implements the XSL \
1284                            standard and lets you perform XSL transformations
1285   
1286    long_description        ${description}
1287   
1288    depends_lib-append      port:libxslt
1289   
1290    configure.args-append   --with-xsl=${prefix}
1291   
1292    configure.cppflags-append   -I${prefix}/include/${php}/php/ext/dom
1293}
1294
1295subport ${php}-zip {
1296    categories-append       archivers
1297   
1298    description             PHP zip functions
1299   
1300    long_description        ${description}
1301   
1302    depends_lib-append      port:zlib
1303   
1304    configure.args-append   --with-zlib-dir=${prefix}
1305}
1306
1307}
1308
1309# These variables are not only required by the subsequent code but also by
1310# preceding code in phase blocks.
1311set branch              ${subport_branch}
1312set major               [lindex [split ${branch} .] 0]
1313set php                 php[php.suffix_from_branch ${branch}]
1314
1315if {${name} eq ${subport}} {
1316    # Set up the stub port.
1317    version             ${branch}
1318    supported_archs     noarch
1319    distfiles
1320    depends_run         port:${php}
1321    use_configure       no
1322    build {}
1323    destroot {
1324        xinstall -d -m 755 ${destroot}${prefix}/share/doc/${subport}
1325        system "echo \"${name} is a stub port\" > ${destroot}${prefix}/share/doc/${subport}/README"
1326    }
1327} else {
1328    # Set an explicit distname so the default from the php portgroup doesn't get used.
1329    distname            ${name}-${version}
1330}
1331
1332proc get_default_php_extensions {} {
1333    global php.extensions.zend php.rootname
1334    if {0 < [llength ${php.extensions.zend}]} {
1335        return
1336    }
1337    return ${php.rootname}
1338}
1339
1340# Set up the php portgroup, for extension subports.
1341if {[is_extension_subport]} {
1342    default php.extensions {[get_default_php_extensions]}
1343    default homepage    http://www.php.net/${php.rootname}
1344   
1345    php.build_dirs
1346    set pdo no
1347    foreach extension [concat ${php.extensions} ${php.extensions.zend}] {
1348        if {[regexp {^pdo_} ${extension}]} {
1349            # The PDO extensions need the PDO headers.
1350            set pdo yes
1351            post-extract {
1352                file mkdir ${worksrcpath}/ext/${extension}/ext
1353                ln -s ${worksrcpath}/ext/pdo ${worksrcpath}/ext/${extension}/ext
1354            }
1355        }
1356       
1357        # Speed up extraction by extracting only the modules we're going to be building.
1358        extract.post_args-append ${worksrcdir}/ext/${extension}
1359       
1360        # Run phpize, configure, build and destroot in each extension's directory.
1361        php.build_dirs-append ${worksrcpath}/ext/${extension}
1362    }
1363   
1364    if {${pdo}} {
1365        # The PDO extensions need the PDO headers.
1366        extract.post_args-append ${worksrcdir}/ext/pdo
1367    }
1368   
1369    pre-configure {
1370        set php_version [exec ${php.config} --version 2>/dev/null]
1371        if {${version} ne ${php_version}} {
1372            ui_error "${subport} @${version} requires ${php} @${version} but you have ${php} @${php_version}."
1373            return -code error "incompatible ${php} installation"
1374        }
1375    }
1376   
1377    destroot.target     install-modules install-headers
1378   
1379    php.add_port_code
1380}
Note: See TracBrowser for help on using the repository browser.