update Wed Feb 10 14:33:06 PST 2010
[pkgsrc.git] / lang / php / phpversion.mk
1 # $NetBSD: phpversion.mk,v 1.10 2010/02/10 17:46:10 joerg Exp $
2 #
3 # This file selects a PHP version, based on the user's preferences and
4 # the installed packages. It does not add a dependency on the PHP
5 # package.
6 #
7 # === User-settable variables ===
8 #
9 # PHP_VERSION_DEFAULT
10 #       The PHP version to choose when more than one is acceptable to
11 #       the package.
12 #
13 #       Possible: 5
14 #       Default: 5
15 #
16 # === Package-settable variables ===
17 #
18 # PHP_VERSIONS_ACCEPTED
19 #       The PHP versions that are accepted by the package.
20 #
21 #       Possible: 5
22 #       Default: 5
23 #
24 # PHP_VERSION_REQD
25 #       If the package works only with a specific PHP version, this
26 #       variable can be used to force it.
27 #
28 #       Possible: (undefined) 5
29 #       Default: (undefined)
30 #
31 # === Variables defined by this file ===
32 #
33 # PKG_PHP_VERSION
34 #       The selected PHP version.
35 #
36 #       Possible: 5
37 #       Default: ${PHP_VERSION_DEFAULT}
38 #
39 # PKG_PHP
40 #       The same as ${PKG_PHP_VERSION}, prefixed with "PHP".
41 #       XXX: Why is this necessary?
42 #
43 # PHPPKGSRCDIR
44 #       The directory of the PHP implementation, relative to the
45 #       package directory.
46 #
47 #       Example: ../../lang/php5
48 #
49 # PHP_PKG_PREFIX
50 #       The prefix that is prepended to the package name.
51 #
52 #       Example: php5
53 #
54 # Keywords: php
55 #
56
57 .if !defined(PHPVERSION_MK)
58 PHPVERSION_MK=  defined
59
60 _VARGROUPS+=    php
61 _USER_VARS.php= PHP_VERSION_DEFAULT
62 _PKG_VARS.php=  PHP_VERSIONS_ACCEPTED PHP_VERSION_REQD
63 _SYS_VARS.php=  PKG_PHP_VERSION PKG_PHP PHPPKGSRCDIR PHP_PKG_PREFIX
64
65 .include "../../mk/bsd.prefs.mk"
66
67 PHP_VERSION_DEFAULT?=           5
68 PHP_VERSIONS_ACCEPTED?=         5
69
70 # transform the list into individual variables
71 .for pv in ${PHP_VERSIONS_ACCEPTED}
72 _PHP_VERSION_${pv}_OK=  yes
73 .endfor
74
75 # check what is installed
76 .if exists(${LOCALBASE}/lib/php/20040412)
77 _PHP_VERSION_5_INSTALLED=       yes
78 .endif
79
80 # if a version is explicitely required, take it
81 .if defined(PHP_VERSION_REQD)
82 _PHP_VERSION=   ${PHP_VERSION_REQD}
83 .endif
84 # if the default is already installed, it is first choice
85 .if !defined(_PHP_VERSION)
86 .if defined(_PHP_VERSION_${PHP_VERSION_DEFAULT}_OK)
87 .if defined(_PHP_VERSION_${PHP_VERSION_DEFAULT}_INSTALLED)
88 _PHP_VERSION=   ${PHP_VERSION_DEFAULT}
89 .endif
90 .endif
91 .endif
92 # prefer an already installed version, in order of "accepted"
93 .if !defined(_PHP_VERSION)
94 .for pv in ${PHP_VERSIONS_ACCEPTED}
95 .if defined(_PHP_VERSION_${pv}_INSTALLED)
96 _PHP_VERSION?=  ${pv}
97 .else
98 # keep information as last resort - see below
99 _PHP_VERSION_FIRSTACCEPTED?=    ${pv}
100 .endif
101 .endfor
102 .endif
103 # if the default is OK for the addon pkg, take this
104 .if !defined(_PHP_VERSION)
105 .if defined(_PHP_VERSION_${PHP_VERSION_DEFAULT}_OK)
106 _PHP_VERSION=   ${PHP_VERSION_DEFAULT}
107 .endif
108 .endif
109 # take the first one accepted by the package
110 .if !defined(_PHP_VERSION)
111 _PHP_VERSION=   ${_PHP_VERSION_FIRSTACCEPTED}
112 .endif
113
114 # export some of internal variables
115 PKG_PHP_VERSION:=       ${_PHP_VERSION}
116 PKG_PHP:=               PHP${_PHP_VERSION}
117
118 MESSAGE_SUBST+=         PKG_PHP_VERSION=${PKG_PHP_VERSION} \
119                         PKG_PHP=${PKG_PHP}
120 PLIST_SUBST+=           PKG_PHP_VERSION=${PKG_PHP_VERSION}
121
122 # force the selected PHP version for recursive builds
123 PHP_VERSION_REQD:=      ${PKG_PHP_VERSION}
124
125 #
126 # set variables for the version we decided to use:
127 #
128 .if ${_PHP_VERSION} == "5"
129 PHPPKGSRCDIR=           ../../lang/php5
130 PHP_PKG_PREFIX=         php5
131 .else
132 # force an error
133 PKG_SKIP_REASON+=       "${PKG_PHP} is not a valid package"
134 .endif
135
136 .endif  # PHPVERSION_MK