source: trunk/dports/lang/php/Portfile @ 105143

Last change on this file since 105143 was 105143, checked in by ryandesign@…, 7 years ago

php54: update to 5.4.14

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 36.1 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 105143 2013-04-11 23:29:03Z ryandesign@macports.org $
3
4PortSystem              1.0
5PortGroup               php 1.1
6
7name                    php
8platforms               darwin freebsd
9maintainers             ryandesign
10license                 PHP-3.01
11default master_sites    {php:get/[lindex ${distfiles} 0]/from/this/mirror?dummy=}
12use_parallel_build      yes
13use_bzip2               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.3 5.4 5.5
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} == ${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} == ${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.3 {
63        version         5.3.23
64        set suhosin_available       yes
65        set suhosin_patch_version   5.3.9-0.9.10
66        set suhosin_patch           suhosin-patch-${suhosin_patch_version}.patch.gz
67        checksums       [suffix ${distname}] \
68                        rmd160  a537ed70a94ebbc8c1ee12a897f2f78b98a1dee4 \
69                        sha256  69473eae7c752987a8fc7619bae9f7121cfe7c6603a2ebf13c8e036dff6a4944 \
70                        ${suhosin_patch} \
71                        rmd160  ce43921fd9b183b154713ecda98294f6c68d5f22 \
72                        sha256  4438caeab0a10c6c94aee9f7eaa703f5799f97d4e0579f43a947bb7314e38317
73    }
74    5.4 {
75        epoch           1
76        version         5.4.14
77        set suhosin_available       no
78        checksums       [suffix ${distname}] \
79                        rmd160  7a05ed52757ce617ca0ed052cab017c75eb07fb0 \
80                        sha256  5450f3843bc651eb3fb00601f0cce1930aaaf65c7c966c02fe4a46f9c81be20a
81    }
82    5.5 {
83        # When this becomes a stable version, remove the overrides for homepage,
84        # master_sites and livecheck, and update php.latest_stable_branch in the
85        # php-1.1 portgroup.
86        version         5.5.0beta3
87        homepage        http://qa.php.net/
88        master_sites    http://downloads.php.net/dsp/
89        use_bzip2       no
90        use_xz          yes
91        set suhosin_available       no
92        checksums       [suffix ${distname}] \
93                        rmd160  5f84d1512e97eed7150d4ada70e97aaf2fdf8aa0 \
94                        sha256  8409871430577fd6248a6b1627d0b25f152df5b3a5b0fc413a00f3c22a8b3f13
95        livecheck.url   ${homepage}
96        livecheck.regex php-([strsed ${subport_branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*(?:(?:alpha|beta|RC)\\d+|-latest))\\.tar
97    }
98}
99
100# Iterate through branches in reverse order, so that the list of subports in
101# "port info" will show newer versions before older versions.
102set i [llength ${php.branches}]
103while {[incr i -1] >= 0} {
104
105set branch              [lindex ${php.branches} ${i}]
106set major               [lindex [split ${branch} .] 0]
107set php                 php[php.suffix_from_branch ${branch}]
108
109if {[regexp "^${php}" ${subport}]} {
110
111dist_subdir             php${major}
112
113if {[is_sapi_subport]} {
114   
115    depends_build       port:pkgconfig
116   
117    if {${subport} != ${php}} {
118        depends_lib     port:${php}
119    }
120   
121    depends_lib-append  path:bin/gsed:gsed \
122                        port:libiconv \
123                        port:libxml2 \
124                        port:bzip2 \
125                        port:mhash \
126                        port:pcre \
127                        port:zlib
128   
129    # Use -p1 to accommodate the Suhosin patch
130    patch.pre_args      -p1
131    patchfiles          patch-${php}-scripts-php-config.in.diff
132   
133    compiler.blacklist  clang
134   
135    set phpinidir       ${prefix}/etc/${php}
136    set extraphpinidir  ${prefix}/var/db/${php}
137   
138    configure.args      --mandir=${prefix}/share/man \
139                        --infodir=${prefix}/share/info \
140                        --program-suffix=[php.suffix_from_branch ${branch}] \
141                        --includedir=${prefix}/include/${php} \
142                        --libdir=${prefix}/lib/${php} \
143                        --with-config-file-path=${phpinidir} \
144                        --with-config-file-scan-dir=${extraphpinidir} \
145                        --disable-all \
146                        --enable-bcmath \
147                        --enable-ctype \
148                        --enable-dom \
149                        --enable-fileinfo \
150                        --enable-filter \
151                        --enable-hash \
152                        --enable-json \
153                        --enable-libxml \
154                        --enable-pdo \
155                        --enable-phar \
156                        --enable-session \
157                        --enable-simplexml \
158                        --enable-tokenizer \
159                        --enable-xml \
160                        --enable-xmlreader \
161                        --enable-xmlwriter \
162                        --with-bz2=${prefix} \
163                        --with-mhash=${prefix} \
164                        --with-pcre-regex=${prefix} \
165                        --with-libxml-dir=${prefix} \
166                        --with-zlib=${prefix} \
167                        --without-pear \
168                        --disable-cgi \
169                        --disable-cli \
170                        --disable-fpm
171   
172    # ${php}-mysql +mysqlnd needs mysqlnd support compiled into the SAPI
173    configure.env       PHP_MYSQLND_ENABLED=yes
174   
175    configure.universal_args-delete --disable-dependency-tracking
176   
177    test.run            yes
178   
179    destroot.args       INSTALL_ROOT=${destroot}
180   
181    variant debug description {Enable debug support (useful to analyze a PHP-related core dump)} {
182        configure.args-append   --enable-debug
183    }
184   
185    variant suhosin description {Add Suhosin patch} {
186        pre-fetch {
187            if {"darwin" == ${os.platform} && ${os.major} < 9} {
188                ui_error "The suhosin variant requires Mac OS X 10.5 or greater."
189                return -code error "incompatible Mac OS X version"
190            }
191            if {!${suhosin_available}} {
192                ui_error "There is no suhosin patch for PHP ${version} yet. Please check back later."
193            }
194            if {![file exists ${extraphpinidir}/suhosin.ini]} {
195                ui_msg "You may also be interested in the suhosin extension, a related but different piece of software. See the ${php}-suhosin port."
196            }
197            if {!${suhosin_available}} {
198                return -code error "unavailable variant"
199            }
200        }
201        patch_sites-append          http://download.suhosin.org/
202        if {${suhosin_available}} {
203            patchfiles-append       patch-${php}-suhosin-before.diff
204            patchfiles-append       ${suhosin_patch}
205            patchfiles-append       patch-${php}-suhosin-after.diff
206        }
207    }
208   
209    if {${subport} != ${php}} {
210        notes-append "If this is your first install, you need to enable ${subport} in your web server."
211    }
212   
213}
214
215}
216
217### CLI SAPI ###
218
219subport ${php} {
220    PortGroup               select 1.0
221   
222    depends_run             port:php_select
223   
224    select.group            php
225    select.file             ${filespath}/${subport}
226   
227    configure.args-delete   --disable-cli
228    configure.args-append   --enable-cli
229   
230    destroot.target         install-cli install-build install-headers install-programs
231   
232    destroot.keepdirs       ${destroot}${extraphpinidir}
233   
234    post-destroot {
235        # Copy the default php.ini files.
236        xinstall -m 755 -d ${destroot}${phpinidir}
237        xinstall -m 644 -W ${worksrcpath} \
238            php.ini-development \
239            php.ini-production \
240            ${destroot}${phpinidir}
241       
242        # Copy mysqlnd headers.
243        xinstall -d ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
244        eval xinstall -m 644 [glob ${worksrcpath}/ext/mysqlnd/*.h] ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
245    }
246   
247    # Include the readline extension http://www.php.net/readline directly in
248    # the PHP CLI SAPI because until PHP 6 the interactive mode "php -a" won't
249    # work with a separately built readline extension.
250    # https://bugs.php.net/bug.php?id=53878
251    # Users might prefer readline over libedit because only readline supports
252    # readline_list_history() (http://www.php.net/readline-list-history).
253    # On the other hand we want libedit to be the default because its license
254    # is compatible with PHP's which means PHP can be distributable.
255    variant libedit conflicts readline description {Build readline extension using libedit library} {
256        depends_lib-append      port:libedit
257        configure.args-append   --with-libedit=${prefix}
258    }
259    variant readline conflicts libedit description {Build readline extension using readline library} {
260        depends_lib-append      port:readline
261        configure.args-append   --with-readline=${prefix}
262    }
263    if {![variant_isset readline]} {
264        default_variants +libedit
265    }
266   
267    if {[vercmp ${php.branch} ${php.latest_stable_branch}] > 0} {
268        notes-append "${php} @${version}_${revision} is a development preview—do not use it in production!\n\n\n"
269    }
270   
271    if {![file exists ${phpinidir}/php.ini]} {
272        notes-append "
273To customize ${php}, copy\
274${phpinidir}/php.ini-development (if this is a development server) or\
275${phpinidir}/php.ini-production (if this is a production server) to\
276${phpinidir}/php.ini and then make changes.
277"
278    } else {
279        notes-append "
280You may need to update your php.ini for any changes that have been made\
281in this version of ${php}. Compare ${phpinidir}/php.ini with\
282${phpinidir}/php.ini-development (if this is a development server) or\
283${phpinidir}/php.ini-production (if this is a production server).
284"
285    }
286   
287    # Enable livecheck for the two most recent stable PHP branches and the development branch.
288    if {[vercmp ${branch} [lindex ${php.branches} end-2]] >= 0} {
289        livecheck.type      regex
290        default livecheck.url   ${homepage}downloads.php
291        default livecheck.regex {get/php-([strsed ${branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*)\\.tar}
292    }
293}
294
295### Apache 2 handler SAPI ###
296
297subport ${php}-apache2handler {
298    description             ${php} Apache 2 Handler SAPI
299   
300    long_description        ${description}
301   
302    homepage                http://www.php.net/install.unix.apache2
303   
304    depends_lib-append      port:apache2
305   
306    set apxs ${prefix}/apache2/bin/apxs
307    set confdir ${prefix}/apache2/conf
308    set moduledir ${prefix}/apache2/modules
309   
310    pre-configure {
311        # Checking for mod_cgi.so is a convenient way to verify apache2 is using its
312        # +preforkmpm variant. (+eventmpm and +workermpm instead provide mod_cgid.so.)
313        if {![file exists ${moduledir}/mod_cgi.so]} {
314            ui_error "To use ${subport}, apache2 must be installed with the +preforkmpm variant."
315            return -code error "incompatible apache2 installation"
316        }
317    }
318   
319    configure.args-append   --with-apxs2=${apxs}
320   
321    build.target            libs/libphp5.bundle
322   
323    destroot.violate_mtree  yes
324   
325    destroot {
326        xinstall -m 755 -d ${destroot}${moduledir} ${destroot}${confdir}/extra
327        xinstall -m 644 ${worksrcpath}/libs/libphp5.so ${destroot}${moduledir}/mod_${php}.so
328        xinstall -m 644 ${filespath}/mod_php.conf ${destroot}${confdir}/extra/mod_${php}.conf
329    }
330   
331    notes-append "
332
333To enable ${subport}, run:
334
335    cd ${moduledir}
336    sudo ${apxs} -a -e -n php${major} mod_${php}.so
337"
338}
339
340### CGI SAPI ###
341
342subport ${php}-cgi {
343    description             ${php} CGI SAPI
344   
345    long_description        ${description}
346   
347    homepage                http://www.php.net/install.unix.commandline
348   
349    configure.args-delete   --disable-cgi
350    configure.args-append   --enable-cgi
351   
352    if {[vercmp ${branch} 5.4] >= 0} {
353        build.target        cgi
354        destroot.target     install-cgi
355    } else {
356        destroot {
357            xinstall ${worksrcpath}/sapi/cgi/php-cgi ${destroot}${prefix}/bin/php-cgi[php.suffix_from_branch ${branch}]
358        }
359    }
360   
361}
362
363### FPM SAPI ###
364
365subport ${php}-fpm {
366    description             ${php} FPM SAPI
367   
368    long_description        ${description}
369   
370    homepage                http://www.php.net/install.fpm
371   
372    set fpmuser             nobody
373    set fpmgroup            nobody
374   
375    patchfiles-append       patch-${php}-sapi-fpm-php-fpm.conf.in.diff
376   
377    post-patch {
378        reinplace "s|@PHP@|${php}|g" ${worksrcpath}/sapi/fpm/php-fpm.conf.in
379    }
380   
381    configure.args-delete   --disable-fpm
382    configure.args-append   --enable-fpm \
383                            --datadir=${prefix}/share/examples/${php} \
384                            --sysconfdir=${phpinidir} \
385                            --with-fpm-user=${fpmuser} \
386                            --with-fpm-group=${fpmgroup}
387   
388    build.target            fpm
389   
390    destroot.target         install-fpm
391   
392    destroot.keepdirs       ${destroot}${prefix}/var/log/${php} \
393                            ${destroot}${prefix}/var/run/${php}
394   
395    post-destroot {
396        xinstall -d -o ${fpmuser} -g ${fpmgroup} ${destroot}${prefix}/var/log/${php} ${destroot}${prefix}/var/run/${php}
397    }
398   
399    startupitem.create      yes
400    startupitem.executable  ${prefix}/sbin/php-fpm[php.suffix_from_branch ${branch}]
401   
402    if {![file exists ${phpinidir}/php-fpm.conf]} {
403        notes-append "
404
405To use ${subport}, copy\
406${phpinidir}/php-fpm.conf.default to\
407${phpinidir}/php-fpm.conf and make changes if desired.
408"
409    } else {
410        notes-append "
411
412You may need to update your php-fpm.conf for any changes that have been made\
413in this version of ${subport}. Compare ${phpinidir}/php-fpm.conf with\
414${phpinidir}/php-fpm.conf.default.
415"
416    }
417}
418
419### Bundled extensions ###
420
421subport ${php}-calendar {
422    description             a PHP extension for converting between different \
423                            calendar formats
424   
425    long_description        ${description}
426}
427
428subport ${php}-curl {
429    categories-append       net www
430   
431    description             a PHP interface to the curl library, which lets you \
432                            download files from servers with a variety of protocols
433   
434    long_description        ${description}
435   
436    depends_lib-append      port:curl
437   
438    configure.args-append   --with-curl=${prefix}
439}
440
441subport ${php}-dba {
442    categories-append       databases
443   
444    description             a PHP interface for accessing DBM databases such as \
445                            BerkeleyDB
446   
447    long_description        ${description}
448   
449    variant gdbm conflicts qdbm description {Add GDBM support} {
450        depends_lib-append      port:gdbm
451        configure.args-append   --with-gdbm=${prefix}
452    }
453   
454    variant qdbm conflicts gdbm description {Add QDBM support} {
455        depends_lib-append      port:qdbm
456        configure.args-append   --with-qdbm=${prefix}
457    }
458}
459
460subport ${php}-enchant {
461    categories-append       textproc devel
462   
463    description             a PHP interface to enchant
464   
465    long_description        ${name} is ${description}, a common API for many spell libraries.
466   
467    depends_lib-append      port:enchant
468   
469    configure.args-append   --with-enchant=${prefix}
470   
471    post-destroot {
472        set docdir ${prefix}/share/doc/${subport}
473        xinstall -d ${destroot}${docdir}
474        xinstall -m 644 -W ${destroot.dir} CREDITS ${destroot}${docdir}
475       
476        set examplesdir ${prefix}/share/examples/${subport}
477        xinstall -d ${destroot}${examplesdir}
478        xinstall -m 644 ${destroot.dir}/docs/examples/example1.php \
479            ${destroot}${examplesdir}
480    }
481}
482
483subport ${php}-exif {
484    categories-append       graphics
485   
486    description             a PHP interface to the EXIF image metadata functions
487   
488    long_description        ${description}
489}
490
491subport ${php}-ftp {
492    categories-append       net
493   
494    description             a PHP extension for accessing file servers using the \
495                            File Transfer Protocol
496   
497    long_description        ${description}
498   
499    depends_lib-append      port:openssl
500   
501    configure.args-append   --with-openssl-dir=${prefix}
502}
503
504subport ${php}-gd {
505    categories-append       graphics
506   
507    description             a PHP interface to the gd library
508   
509    long_description        ${description}
510   
511    depends_lib-append      port:freetype \
512                            port:jpeg \
513                            port:libpng \
514                            port:zlib
515   
516    configure.args-append   --with-freetype-dir=${prefix} \
517                            --with-jpeg-dir=${prefix} \
518                            --with-png-dir=${prefix} \
519                            --with-zlib-dir=${prefix} \
520                            --enable-gd-native-ttf
521   
522    variant t1lib description {Add PostScript Type 1 font support with t1lib} {
523        depends_lib-append      port:t1lib
524        configure.args-append   --with-t1lib=${prefix}
525    }
526}
527
528subport ${php}-gettext {
529    categories-append       devel
530   
531    description             a PHP interface to the gettext natural language \
532                            support functions
533   
534    long_description        ${description}
535   
536    depends_lib-append      port:gettext
537   
538    configure.args-append   --with-gettext=${prefix}
539}
540
541subport ${php}-gmp {
542    categories-append       devel math
543   
544    description             a PHP interface to GMP, the GNU multiprocessing \
545                            library through which you can work with \
546                            arbitrary-length integers
547   
548    long_description        ${description}
549   
550    depends_lib-append      port:gmp
551   
552    configure.args-append   --with-gmp=${prefix}
553}
554
555subport ${php}-iconv {
556    categories-append       textproc
557   
558    description             a PHP interface to the libiconv character encoding \
559                            conversion functions
560   
561    long_description        ${description}
562   
563    depends_lib-append      port:libiconv
564   
565    configure.args-append   --with-iconv=${prefix}
566}
567
568subport ${php}-imap {
569    categories-append       mail
570   
571    description             a PHP interface to the IMAP protocol
572   
573    long_description        ${description}
574   
575    depends_build-append    port:cclient
576   
577    depends_lib-append      port:kerberos5 \
578                            port:libcomerr
579   
580    configure.args-append   --with-imap=${prefix} \
581                            --with-imap-ssl=${prefix} \
582                            --with-kerberos=${prefix}
583}
584
585subport ${php}-intl {
586    categories-append       devel
587   
588    description             internationalization extension for PHP
589   
590    long_description        Internationalization extension implements ICU \
591                            library functionality in PHP.
592   
593    depends_lib-append      port:icu
594}
595
596subport ${php}-ldap {
597    categories-append       databases
598   
599    description             a PHP interface to LDAP
600   
601    long_description        ${subport} is ${description}, the Lightweight Directory \
602                            Access Protocol, which is used to access Directory \
603                            Servers.
604   
605    depends_lib-append      port:openldap \
606                            port:cyrus-sasl2
607   
608    configure.args-append   --with-ldap=${prefix} \
609                            --with-ldap-sasl=${prefix}
610}
611
612subport ${php}-mbstring {
613    categories-append       textproc
614   
615    description             a PHP extension for manipulating strings in multibyte \
616                            encodings
617   
618    long_description        ${description}
619}
620
621subport ${php}-mcrypt {
622    categories-append       security
623   
624    description             a PHP interface to the mcrypt library, which offers \
625                            a wide variety of algorithms
626   
627    long_description        ${description}
628   
629    depends_lib-append      port:libmcrypt
630   
631    # The mcrypt extension may be using libtool unnecessarily; monitor
632    # https://bugs.php.net/bug.php?id=54500
633    depends_lib-append      port:libtool
634   
635    configure.args-append   --with-mcrypt=${prefix}
636}
637
638subport ${php}-mssql {
639    php.extensions          mssql pdo_dblib
640   
641    categories-append       databases
642   
643    description             a PHP interface to MSSQL using FreeTDS, including \
644                            the mssql and pdo_dblib extensions
645   
646    long_description        ${description}
647   
648    depends_lib-append      port:freetds
649   
650    configure.args-append   --with-mssql=${prefix} \
651                            --with-pdo-dblib=${prefix}
652}
653
654subport ${php}-mysql {
655    php.extensions          mysql mysqli pdo_mysql
656   
657    categories-append       databases
658   
659    description             a PHP interface to MySQL databases, including the \
660                            mysql, mysqli and pdo_mysql extensions
661   
662    long_description        ${description}
663   
664    depends_lib-append      port:zlib
665   
666    configure.args-append   --with-zlib-dir=${prefix}
667   
668    variant mysqlnd conflicts mysql4 mysql5 description {Use MySQL Native Driver} {
669        configure.args-append   --with-mysql=mysqlnd \
670                                --with-mysqli=mysqlnd \
671                                --with-pdo-mysql=mysqlnd
672       
673        configure.cppflags-append   -I${worksrcpath}
674       
675        set phpini ${prefix}/etc/${php}/php.ini
676        notes "
677To use mysqlnd with a local MySQL server, edit ${phpini} and set\
678mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket\
679to the path to your MySQL server's socket file.
680
681For mysql5, use ${prefix}/var/run/mysql5/mysqld.sock
682For mysql51, use ${prefix}/var/run/mysql51/mysqld.sock
683For mysql55, use ${prefix}/var/run/mysql55/mysqld.sock
684For mariadb, use ${prefix}/var/run/mariadb/mysqld.sock
685For percona, use ${prefix}/var/run/percona/mysqld.sock
686"
687    }
688   
689    variant mysql4 conflicts mysql5 mysqlnd description {Use MySQL 4 libraries} {
690        depends_lib-append      port:mysql4
691       
692        configure.args-append   --with-mysql=${prefix} \
693                                --with-pdo-mysql=${prefix}
694    }
695   
696    variant mysql5 conflicts mysql4 mysqlnd description {Use MySQL 5 libraries} {
697        depends_lib-append      path:bin/mysql_config5:mysql5
698       
699        post-extract {
700            file mkdir ${workpath}/mysql5
701            file link -symbolic ${workpath}/mysql5/lib ${prefix}/lib/mysql5
702            file link -symbolic ${workpath}/mysql5/include ${prefix}/include/mysql5
703        }
704       
705        configure.args-append   --with-mysql=${workpath}/mysql5 \
706                                --with-mysqli=${prefix}/bin/mysql_config5 \
707                                --with-pdo-mysql=${prefix}/bin/mysql_config5 \
708                                --with-mysql-sock=${prefix}/var/run/mysql5/mysqld.sock
709    }
710   
711    if {![variant_isset mysql4] && ![variant_isset mysql5]} {
712        default_variants +mysqlnd
713    }
714}
715
716subport ${php}-odbc {
717    php.extensions          odbc pdo_odbc
718   
719    categories-append       databases
720   
721    description             a PHP interface for accessing databases via Open \
722                            DataBase Connectivity (ODBC)
723   
724    long_description        ${description}
725   
726    variant iodbc conflicts unixodbc description {Use iODBC} {
727        depends_lib-append      port:libiodbc
728       
729        patchfiles-append       patch-${php}-iODBC.diff
730       
731        configure.args-append   --with-iODBC=${prefix} \
732                                --with-pdo-odbc=iODBC,${prefix}
733    }
734   
735    variant unixodbc conflicts iodbc description {Use unixODBC} {
736        depends_lib-append      port:unixODBC
737       
738        patchfiles-append       patch-${php}-unixODBC.diff
739       
740        configure.args-append   --with-unixODBC=${prefix} \
741                                --with-pdo-odbc=unixODBC,${prefix}
742    }
743   
744    if {![variant_isset iodbc] && ![variant_isset unixodbc]} {
745        default_variants +unixodbc
746    }
747}
748
749subport ${php}-openssl {
750    categories-append       devel security
751   
752    description             a PHP interface to OpenSSL signature-generation \
753                            and -verification and data-encryption and \
754                            -decryption functions
755   
756    long_description        ${description}
757   
758    depends_lib-append      port:kerberos5 \
759                            port:libcomerr \
760                            port:openssl
761   
762    post-extract {
763        move ${php.build_dirs}/config0.m4 ${php.build_dirs}/config.m4
764    }
765   
766    configure.args-append   --with-kerberos=${prefix} \
767                            --with-openssl=${prefix}
768}
769
770subport ${php}-oracle {
771    if {[vercmp ${php.branch} 5.4] < 0} {
772        revision                1
773    }
774   
775    php.extensions          oci8 pdo_oci
776   
777    categories-append       databases
778   
779    description             a PHP interface to Oracle, including the oci8 and \
780                            pdo_oci extensions
781   
782    long_description        ${description}
783   
784    depends_lib-append      port:oracle-instantclient
785   
786    set lib_dir             ${prefix}/lib/oracle
787    pre-configure {
788        regexp {\.dylib\.(.+)$} [glob -directory ${lib_dir} libclntsh.dylib.*] -> library_version
789        configure.args-append \
790                            --with-oci8=instantclient,${lib_dir} \
791                            --with-pdo-oci=instantclient,${lib_dir},${library_version}
792    }
793}
794
795subport ${php}-pcntl {
796    categories-append       sysutils
797   
798    description             a PHP interface to Unix-style process creation, \
799                            program execution, signal handling and process \
800                            termination functions
801   
802    long_description        ${description}
803   
804    notes "
805${subport} should not be enabled within a web server environment.\
806Unexpected results may occur if any process control functions are used within\
807a web server environment.
808"
809}
810
811subport ${php}-posix {
812    categories-append       sysutils
813   
814    description             a PHP interface to additional POSIX functions
815   
816    long_description        a PHP interface to those functions defined in the \
817                            IEEE 1003.1 (POSIX.1) standards document which are \
818                            not accessible through other means
819}
820
821subport ${php}-postgresql {
822    php.extensions          pgsql pdo_pgsql
823   
824    categories-append       databases
825   
826    homepage                http://www.php.net/pgsql
827   
828    description             a PHP interface to PostgreSQL, including \
829                            the pgsql and pdo_pgsql extensions
830   
831    long_description        ${description}
832   
833    variant postgresql82 conflicts postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.2 libraries} {
834        depends_lib-append      port:postgresql82
835       
836        configure.args-append   --with-pgsql=${prefix}/lib/postgresql82/bin \
837                                --with-pdo-pgsql=${prefix}/lib/postgresql82/bin
838    }
839   
840    variant postgresql83 conflicts postgresql82 postgresql84 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.3 libraries} {
841        depends_lib-append      port:postgresql83
842       
843        configure.args-append   --with-pgsql=${prefix}/lib/postgresql83/bin \
844                                --with-pdo-pgsql=${prefix}/lib/postgresql83/bin
845    }
846   
847    variant postgresql84 conflicts postgresql82 postgresql83 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.4 libraries} {
848        depends_lib-append      port:postgresql84
849       
850        configure.args-append   --with-pgsql=${prefix}/lib/postgresql84/bin \
851                                --with-pdo-pgsql=${prefix}/lib/postgresql84/bin
852    }
853   
854    variant postgresql90 conflicts postgresql82 postgresql83 postgresql84 postgresql91 postgresql92 description {Use PostgreSQL 9.0 libraries} {
855        depends_lib-append      port:postgresql90
856       
857        configure.args-append   --with-pgsql=${prefix}/lib/postgresql90/bin \
858                                --with-pdo-pgsql=${prefix}/lib/postgresql90/bin
859    }
860   
861    variant postgresql91 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql92 description {Use PostgreSQL 9.1 libraries} {
862        depends_lib-append      port:postgresql91
863       
864        configure.args-append   --with-pgsql=${prefix}/lib/postgresql91/bin \
865                                --with-pdo-pgsql=${prefix}/lib/postgresql91/bin
866    }
867   
868    variant postgresql92 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 description {Use PostgreSQL 9.2 libraries} {
869        depends_lib-append      port:postgresql92
870       
871        configure.args-append   --with-pgsql=${prefix}/lib/postgresql92/bin \
872                                --with-pdo-pgsql=${prefix}/lib/postgresql92/bin
873    }
874   
875    if {![variant_isset postgresql82] && ![variant_isset postgresql83] && ![variant_isset postgresql84] && ![variant_isset postgresql90] && ![variant_isset postgresql91] && ![variant_isset postgresql92]} {
876        default_variants +postgresql92
877    }
878}
879
880subport ${php}-pspell {
881    categories-append       textproc
882   
883    description             a PHP interface to the aspell library, which lets you \
884                            check spelling and offer spelling suggestions
885   
886    long_description        ${description}
887   
888    depends_lib-append      port:aspell
889   
890    configure.args-append   --with-pspell=${prefix}
891}
892
893subport ${php}-snmp {
894    categories-append       sysutils
895   
896    description             a PHP interface to the Simple Network Management \
897                            Protocol (SNMP)
898   
899    long_description        ${description}
900   
901    depends_lib-append      port:net-snmp
902   
903    configure.args-append   --with-snmp=${prefix}
904}
905
906subport ${php}-soap {
907    categories-append       net
908   
909    description             a PHP extension for writing SOAP clients and servers
910   
911    long_description        ${description}
912   
913    depends_lib-append      port:libxml2
914   
915    configure.args-append   --with-libxml-dir=${prefix}
916}
917
918subport ${php}-sockets {
919    categories-append       net
920   
921    description             a PHP interface to BSD socket communication \
922                            functions
923   
924    long_description        ${description}
925}
926
927subport ${php}-sqlite {
928    php.extensions          sqlite sqlite3 pdo_sqlite
929   
930    categories-append       databases
931   
932    description             a PHP interface to SQLite, including the sqlite, sqlite3 \
933                            and pdo_sqlite extensions
934   
935    if {[vercmp ${branch} 5.4] >= 0} {
936        php.extensions-delete sqlite
937        description-delete "sqlite,"
938    }
939   
940    long_description        ${description}
941   
942    depends_lib-append      port:sqlite3
943   
944    post-extract {
945        move ${worksrcpath}/ext/sqlite3/config0.m4 ${worksrcpath}/ext/sqlite3/config.m4
946    }
947   
948    configure.args-append   --with-sqlite3=${prefix} \
949                            --with-pdo-sqlite=${prefix} \
950                            --enable-sqlite-utf8
951}
952
953subport ${php}-tidy {
954    categories-append       www
955   
956    description             a PHP interface to tidy, the HTML cleaning and \
957                            repair utility
958   
959    long_description        ${description}
960   
961    depends_lib-append      port:tidy
962   
963    configure.args-append   --with-tidy=${prefix}
964}
965
966subport ${php}-wddx {
967    categories-append       textproc
968   
969    description             a PHP interface to Web Distributed Data Exchange
970   
971    long_description        ${description}
972   
973    depends_build-append    port:expat \
974                            port:libxml2
975   
976    configure.args-append   --with-libexpat-dir=${prefix} \
977                            --with-libxml-dir=${prefix}
978}
979
980subport ${php}-xmlrpc {
981    categories-append       textproc
982   
983    description             a PHP extension for writing XML-RPC clients and servers
984   
985    long_description        ${description}
986   
987    depends_build-append    port:libiconv \
988                            port:libxml2
989   
990    depends_lib-append      port:expat
991   
992    configure.args-append   --with-iconv-dir=${prefix} \
993                            --with-libexpat-dir=${prefix} \
994                            --with-libxml-dir=${prefix}
995   
996    pre-configure {
997        configure.cppflags-append [exec ${prefix}/bin/xml2-config --cflags]
998    }
999}
1000
1001subport ${php}-xsl {
1002    categories-append       textproc
1003   
1004    description             a PHP interface to libxslt, which implements the XSL \
1005                            standard and lets you perform XSL transformations
1006   
1007    long_description        ${description}
1008   
1009    depends_lib-append      port:libxslt
1010   
1011    configure.args-append   --with-xsl=${prefix}
1012   
1013    configure.cppflags-append   -I${prefix}/include/${php}/php/ext/dom
1014}
1015
1016subport ${php}-zip {
1017    categories-append       archivers
1018   
1019    description             PHP zip functions
1020   
1021    long_description        ${description}
1022   
1023    depends_build-append    port:pcre
1024   
1025    depends_lib-append      port:zlib
1026}
1027
1028}
1029
1030# These variables are not only required by the subsequent code but also by
1031# preceding code in phase blocks.
1032set branch              ${subport_branch}
1033set php                 php[php.suffix_from_branch ${branch}]
1034
1035if {${name} == ${subport}} {
1036    # Set up the stub port.
1037    version             ${branch}
1038    revision            1
1039    supported_archs     noarch
1040    distfiles
1041    depends_run         port:${php}
1042    use_configure       no
1043    build {}
1044    destroot {
1045        xinstall -d -m 755 ${destroot}${prefix}/share/doc/${subport}
1046        system "echo \"${name} is a stub port\" > ${destroot}${prefix}/share/doc/${subport}/README"
1047    }
1048} else {
1049    # Set an explicit distname so the default from the php portgroup doesn't get used.
1050    distname            ${name}-${version}
1051}
1052
1053# Set up the php portgroup, for extension subports.
1054if {[is_extension_subport]} {
1055    default php.extensions ${php.rootname}
1056    default homepage    http://www.php.net/${php.rootname}
1057   
1058    php.build_dirs
1059    foreach extension ${php.extensions} {
1060        # Speed up extraction by extracting only the modules we're going to be building.
1061        extract.post_args-append ${worksrcdir}/ext/${extension}
1062       
1063        # Run phpize, configure, build and destroot in each extension's directory.
1064        php.build_dirs-append ${worksrcpath}/ext/${extension}
1065    }
1066   
1067    post-extract {
1068        # The PDO extensions need the PDO headers which are installed by the ${php} port.
1069        foreach extension ${php.extensions} {
1070            if {[regexp {^pdo_} ${extension}]} {
1071                file mkdir ${worksrcpath}/ext/${extension}/ext
1072                ln -s ${prefix}/include/${php}/php/ext/pdo ${worksrcpath}/ext/${extension}/ext
1073            }
1074        }
1075    }
1076   
1077    pre-configure {
1078        set php_version [exec ${php.config} --version 2>/dev/null]
1079        if {${version} != ${php_version}} {
1080            ui_error "${subport} @${version} requires ${php} @${version} but you have ${php} @${php_version}."
1081            return -code error "incompatible ${php} installation"
1082        }
1083    }
1084   
1085    destroot.target     install-modules install-headers
1086   
1087    php.add_port_code
1088}
Note: See TracBrowser for help on using the repository browser.