banana-pro: bring it in shape
[openadk.git] / package / php / Makefile
blob7b9a1e81b6347fa998297a923832f0a28e9dd62a
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR)/rules.mk
6 PKG_NAME:= php
7 PKG_VERSION:= 8.3.2
8 PKG_RELEASE:= 1
9 PKG_HASH:= 4ffa3e44afc9c590e28dc0d2d31fc61f0139f8b335f11880a121b9f9b9f0634e
10 PKG_DESCR:= php language interpreter
11 PKG_SECTION:= dev/lang
12 PKG_NEEDS:= threads
13 PHP_URL:= http://www.php.net/
14 PKG_SITES:= http://de2.php.net/distributions/
16 PKG_SUBPKGS:= PHP PHP_CLI PHP_CGI PHP_FPM
17 PKGSD_PHP_CGI:= php for fastcgi usage
18 PKGSN_PHP_CGI:= php
19 PKGSD_PHP_FPM:= php for fastcgi process manager usage
20 PKGSN_PHP_FPM:= php
21 PKGSD_PHP_CLI:= php cli
22 PKGSN_PHP_CLI:= php
24 PKG_FLAVOURS_PHP:= MOD_BZ2 MOD_CURL MOD_FTP MOD_GD MOD_GMP MOD_MARIADB
25 PKG_FLAVOURS_PHP+= MOD_SSL MOD_SESSION MOD_SNMP MOD_SQLITE
26 PKG_FLAVOURS_PHP+= MOD_SOCKETS MOD_XML MOD_SIMPLEXML MOD_ZLIB
27 PKG_FLAVOURS_PHP+= MOD_LDAP MOD_PCNTL
29 PKGFD_MOD_BZ2:= bzip2 support
30 PKGFB_MOD_BZ2:= bzip2
31 PKGFS_MOD_BZ2:= bzip2
32 PKGFD_MOD_CURL:= curl support
33 PKGFB_MOD_CURL:= curl
34 PKGFS_MOD_CURL:= libcurl
35 PKGFD_MOD_FTP:= ftp support
36 PKGFD_MOD_GD:= gd support
37 PKGFD_MOD_GMP:= gmp support
38 PKGFB_MOD_GMP:= gmp
39 PKGFS_MOD_GMP:= libgmp
40 PKGFD_MOD_LDAP:= ldap support
41 PKGFB_MOD_LDAP:= openldap
42 PKGFS_MOD_LDAP:= libopenldap
43 PKGFD_MOD_MARIADB:= mariadb support
44 PKGFS_MOD_MARIADB:= libmariadbclient
45 PKGFB_MOD_MARIADB:= mariadb
46 PKGFD_MOD_SSL:= ssl support
47 PKGFB_MOD_SSL:= libressl
48 PKGFS_MOD_SSL:= libressl
49 PKGFD_MOD_PCNTL:= process control support
50 PKGFD_MOD_SESSION:= session support
51 PKGFD_MOD_SNMP:= snmp support
52 PKGFB_MOD_SNMP:= net-snmp
53 PKGFS_MOD_SNMP:= libnetsnmp
54 PKGFD_MOD_SQLITE:= sqlite support
55 PKGFB_MOD_SQLITE:= sqlite
56 PKGFS_MOD_SQLITE:= libsqlite
57 PKGFD_MOD_SOCKETS:= socket support
58 PKGFD_MOD_XML:= xml support
59 PKGFB_MOD_XML:= expat
60 PKGFS_MOD_XML:= libexpat
61 PKGFD_MOD_SIMPLEXML:= simple xml support
62 PKGFB_MOD_SIMPLEXML:= libxml2
63 PKGFS_MOD_SIMPLEXML:= libxml2
64 PKGFD_MOD_ZLIB:= zlib support
65 PKGFB_MOD_ZLIB:= zlib
66 PKGFS_MOD_ZLIB:= zlib
68 include $(ADK_TOPDIR)/mk/package.mk
70 $(eval $(call PKG_template,PHP,php,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
71 $(eval $(call PKG_template,PHP_CLI,php-cli,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_PHP_CLI},${PKG_SECTION}))
72 $(eval $(call PKG_template,PHP_CGI,php-cgi,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_PHP_CGI},${PKG_SECTION}))
73 $(eval $(call PKG_template,PHP_FPM,php-fpm,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_PHP_FPM},${PKG_SECTION}))
75 define PKG_mod_template
77 INSTALL_MODS_$${ADK_PACKAGE_${1}}+= ${2}-install
79 ${2}-install:
80 ${INSTALL_DIR} $$(IDIR_$(1))/usr/lib/php
81 for m in ${2}; do \
82 ${INSTALL_DATA} $(WRKBUILD)/modules/$$$${m}.so $$(IDIR_$(1))/usr/lib/php ;\
83 done
84 endef
86 PKG_CONFIGURE_OPTS:= \
87 --with-config-file-path=/etc \
88 --enable-cli \
89 --enable-cgi \
90 --enable-fpm \
91 --enable-opcache=no \
92 --disable-mbstring \
93 --disable-mbregex \
94 --disable-phar \
95 --disable-short-tags \
96 --disable-ctype \
97 --disable-soap \
98 --disable-fileinfo \
99 --disable-tokenizer \
100 --disable-filter \
101 --disable-xmlreader \
102 --disable-xmlwriter \
103 --disable-dom \
104 --without-pear \
105 --without-gettext \
106 --without-pgsql \
107 --without-iconv \
108 --with-kerberos=no
110 ifneq ($(ADK_PACKAGE_PHP_MOD_BZ2),)
111 PKG_CONFIGURE_OPTS+= --with-bz2=shared,"$(STAGING_TARGET_DIR)/usr"
112 else
113 PKG_CONFIGURE_OPTS+= --without-bz2
114 endif
115 ifneq ($(ADK_PACKAGE_PHP_MOD_CURL),)
116 PKG_CONFIGURE_OPTS+= --with-curl=shared,"$(STAGING_TARGET_DIR)/usr"
117 else
118 PKG_CONFIGURE_OPTS+= --without-curl
119 endif
120 ifneq ($(ADK_PACKAGE_PHP_MOD_FTP),)
121 PKG_CONFIGURE_OPTS+= --enable-ftp=shared
122 else
123 PKG_CONFIGURE_OPTS+= --disable-ftp
124 endif
125 ifneq ($(ADK_PACKAGE_PHP_MOD_GD),)
126 PKG_CONFIGURE_OPTS+= --enable-gd=shared
127 else
128 PKG_CONFIGURE_OPTS+= --disable-gd
129 endif
130 ifneq ($(ADK_PACKAGE_PHP_MOD_GMP),)
131 PKG_CONFIGURE_OPTS+= --with-gmp=shared,"$(STAGING_TARGET_DIR)/usr"
132 else
133 PKG_CONFIGURE_OPTS+= --without-gmp
134 endif
135 ifneq ($(ADK_PACKAGE_PHP_MOD_LDAP),)
136 PKG_CONFIGURE_OPTS+= --with-ldap=shared,"$(STAGING_TARGET_DIR)/usr" \
137 --with-ldap-sasl="$(STAGING_TARGET_DIR)/usr"
138 else
139 PKG_CONFIGURE_OPTS+= --without-ldap
140 endif
141 ifneq ($(ADK_PACKAGE_PHP_MOD_MARIADB),)
142 PKG_CONFIGURE_OPTS+= --with-pdo-mysql=shared,"$(STAGING_TARGET_DIR)/usr"
143 TARGET_CFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/mysql
144 else
145 PKG_CONFIGURE_OPTS+= --without-pdo-mysql
146 endif
147 ifneq ($(ADK_PACKAGE_PHP_MOD_OPENSSL),)
148 PKG_CONFIGURE_OPTS+= --with-openssl=shared,"$(STAGING_TARGET_DIR)/usr" \
149 --with-openssl-dir="$(STAGING_TARGET_DIR)/usr"
150 else
151 PKG_CONFIGURE_OPTS+= --without-openssl
152 endif
153 ifneq ($(ADK_PACKAGE_PHP_MOD_PCNTL),)
154 PKG_CONFIGURE_OPTS+= --enable-pcntl
155 else
156 PKG_CONFIGURE_OPTS+= --disable-pcntl
157 endif
158 ifneq ($(ADK_PACKAGE_PHP_MOD_SESSION),)
159 PKG_CONFIGURE_OPTS+= --enable-session=shared
160 else
161 PKG_CONFIGURE_OPTS+= --disable-session
162 endif
163 ifneq ($(ADK_PACKAGE_PHP_MOD_SNMP),)
164 PKG_CONFIGURE_OPTS+= --with-snmp=shared,"$(STAGING_TARGET_DIR)/usr"
165 CONFIGURE_ENV+= LIBS="-lnetsnmpmibs"
166 else
167 PKG_CONFIGURE_OPTS+= --without-snmp
168 endif
169 ifneq ($(ADK_PACKAGE_PHP_MOD_SQLITE),)
170 PKG_CONFIGURE_OPTS+= --with-sqlite3="$(STAGING_TARGET_DIR)/usr"
171 PKG_CONFIGURE_OPTS+= --with-pdo-sqlite=shared,"$(STAGING_TARGET_DIR)/usr"
172 PKG_CONFIGURE_OPTS+= --enable-pdo=shared
173 else
174 PKG_CONFIGURE_OPTS+= --without-sqlite3 --without-pdo-sqlite
175 endif
176 ifneq ($(ADK_PACKAGE_PHP_MOD_SOCKETS),)
177 PKG_CONFIGURE_OPTS+= --enable-sockets=shared
178 else
179 PKG_CONFIGURE_OPTS+= --enable-sockets=no
180 endif
181 ifneq ($(ADK_PACKAGE_PHP_MOD_XML),)
182 PKG_CONFIGURE_OPTS+= --enable-xml=shared,"$(STAGING_TARGET_DIR)/usr" \
183 --with-libexpat-dir="$(STAGING_TARGET_DIR)/usr"
184 else
185 PKG_CONFIGURE_OPTS+= --disable-xml
186 endif
187 ifneq ($(ADK_PACKAGE_PHP_MOD_SIMPLEXML),)
188 PKG_CONFIGURE_OPTS+= --enable-simplexml=shared
189 else
190 PKG_CONFIGURE_OPTS+= --disable-simplexml
191 endif
192 ifneq ($(ADK_PACKAGE_PHP_MOD_ZLIB),)
193 PKG_CONFIGURE_OPTS+= --with-zlib=shared,"$(STAGING_TARGET_DIR)/usr"
194 else
195 PKG_CONFIGURE_OPTS+= --without-zlib
196 endif
198 $(eval $(call PKG_template,PHP_MOD_BZ2,php-mod-bz2,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
199 $(eval $(call PKG_template,PHP_MOD_CURL,php-mod-curl,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
200 $(eval $(call PKG_template,PHP_MOD_FTP,php-mod-ftp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
201 $(eval $(call PKG_template,PHP_MOD_GD,php-mod-gd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
202 $(eval $(call PKG_template,PHP_MOD_GMP,php-mod-gmp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
203 $(eval $(call PKG_template,PHP_MOD_LDAP,php-mod-ldap,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
204 $(eval $(call PKG_template,PHP_MOD_MARIADB,php-mod-mariadb,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
205 $(eval $(call PKG_template,PHP_MOD_OPENSSL,php-mod-openssl,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
206 $(eval $(call PKG_template,PHP_MOD_SESSION,php-mod-session,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
207 $(eval $(call PKG_template,PHP_MOD_SNMP,php-mod-snmp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
208 $(eval $(call PKG_template,PHP_MOD_SOCKETS,php-mod-sockets,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
209 $(eval $(call PKG_template,PHP_MOD_SQLITE,php-mod-sqlite,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
210 $(eval $(call PKG_template,PHP_MOD_XML,php-mod-xml,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
211 $(eval $(call PKG_template,PHP_MOD_SIMPLEXML,php-mod-simplexml,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
212 $(eval $(call PKG_template,PHP_MOD_ZLIB,php-mod-zlib,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
214 $(eval $(call PKG_mod_template,PHP_MOD_BZ2,bz2))
215 $(eval $(call PKG_mod_template,PHP_MOD_CURL,curl))
216 $(eval $(call PKG_mod_template,PHP_MOD_FTP,ftp))
217 $(eval $(call PKG_mod_template,PHP_MOD_GD,gd))
218 $(eval $(call PKG_mod_template,PHP_MOD_GMP,gmp))
219 $(eval $(call PKG_mod_template,PHP_MOD_LDAP,ldap))
220 $(eval $(call PKG_mod_template,PHP_MOD_MARIADB,pdo_mysql))
221 $(eval $(call PKG_mod_template,PHP_MOD_OPENSSL,openssl))
222 $(eval $(call PKG_mod_template,PHP_MOD_SESSION,session))
223 $(eval $(call PKG_mod_template,PHP_MOD_SOCKETS,sockets))
224 $(eval $(call PKG_mod_template,PHP_MOD_SNMP,snmp))
225 $(eval $(call PKG_mod_template,PHP_MOD_SQLITE,pdo pdo_sqlite))
226 $(eval $(call PKG_mod_template,PHP_MOD_XML,xml))
227 $(eval $(call PKG_mod_template,PHP_MOD_SIMPLEXML,simplexml))
228 $(eval $(call PKG_mod_template,PHP_MOD_ZLIB,zlib))
230 INSTALL_STYLE:= manual
231 TARGET_LDFLAGS+= -L$(STAGING_TARGET_DIR)/usr/lib/mysql
232 CONFIGURE_ENV+= LIBS="-ldl"
233 CONFIGURE_ARGS+= $(PKG_CONFIGURE_OPTS)
235 do-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
236 ${INSTALL_DIR} $(IDIR_PHP)/etc
237 ${INSTALL_DATA} ./files/php.ini $(IDIR_PHP)/etc
238 ${INSTALL_DIR} $(IDIR_PHP_CLI)/usr/bin
239 ${INSTALL_BIN} $(WRKBUILD)/sapi/cli/php \
240 $(IDIR_PHP_CLI)/usr/bin
241 ${INSTALL_DIR} $(IDIR_PHP_CGI)/usr/bin
242 ${INSTALL_BIN} $(WRKBUILD)/sapi/cgi/php-cgi \
243 $(IDIR_PHP_CGI)/usr/bin
244 ${INSTALL_DIR} $(IDIR_PHP_FPM)/etc
245 $(CP) ./files/php-fpm.conf $(IDIR_PHP_FPM)/etc
246 ${INSTALL_DIR} $(IDIR_PHP_FPM)/usr/bin
247 ${INSTALL_BIN} $(WRKBUILD)/sapi/fpm/php-fpm \
248 $(IDIR_PHP_FPM)/usr/bin/php
250 include ${ADK_TOPDIR}/mk/pkg-bottom.mk