You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

629 lines
18 KiB

  1. #
  2. # This is free software, licensed under the GNU General Public License v2.
  3. # See /LICENSE for more information.
  4. #
  5. include $(TOPDIR)/rules.mk
  6. PKG_NAME:=php
  7. PKG_VERSION:=8.0.1
  8. PKG_RELEASE:=1
  9. PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
  10. PKG_LICENSE:=PHP-3.01
  11. PKG_LICENSE_FILES:=LICENSE
  12. PKG_CPE_ID:=cpe:/a:php:php
  13. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
  14. PKG_SOURCE_URL:=http://www.php.net/distributions/
  15. PKG_HASH:=208b3330af881b44a6a8c6858d569c72db78dab97810332978cc65206b0ec2dc
  16. PKG_BUILD_PARALLEL:=1
  17. PKG_USE_MIPS16:=0
  18. PHP8_MODULES= \
  19. bcmath \
  20. calendar ctype curl \
  21. dom \
  22. exif \
  23. fileinfo filter ftp \
  24. gettext gd gmp \
  25. iconv imap intl \
  26. ldap \
  27. mbstring mysqli mysqlnd \
  28. opcache openssl \
  29. pcntl pdo pdo-mysql pdo-pgsql pdo-sqlite pgsql phar \
  30. session shmop simplexml snmp soap sockets sqlite3 sysvmsg sysvsem sysvshm \
  31. tokenizer \
  32. xml xmlreader xmlwriter \
  33. zip
  34. PKG_CONFIG_DEPENDS:= \
  35. $(patsubst %,CONFIG_PACKAGE_php8-mod-%,$(PHP8_MODULES)) \
  36. CONFIG_PHP8_LIBXML CONFIG_PHP8_SYSTEMTZDATA
  37. include $(INCLUDE_DIR)/package.mk
  38. include $(INCLUDE_DIR)/nls.mk
  39. define Package/php8/Default
  40. SUBMENU:=PHP8
  41. SECTION:=lang
  42. CATEGORY:=Languages
  43. TITLE:=PHP8 Hypertext preprocessor
  44. URL:=http://www.php.net/
  45. DEPENDS:=php8
  46. endef
  47. define Package/php8/Default/description
  48. PHP is a widely-used general-purpose scripting language that is especially
  49. suited for Web development and can be embedded into HTML.
  50. endef
  51. define Package/php8/config
  52. config PHP8_LIBXML
  53. bool "PHP8 LIBXML support"
  54. depends on PACKAGE_php8-cli || PACKAGE_php8-cgi
  55. config PHP8_SYSTEMTZDATA
  56. bool "Use system timezone data instead of php's built-in database"
  57. depends on PACKAGE_php8-cli || PACKAGE_php8-cgi
  58. default y
  59. help
  60. Enabling this feature automatically selects the zoneinfo-core package
  61. which contains data for UTC timezone. To use other timezones you have
  62. to install the corresponding zoneinfo-... package(s).
  63. endef
  64. define Package/php8
  65. $(call Package/php8/Default)
  66. DEPENDS:=+libpcre2 +zlib \
  67. +PHP8_LIBXML:libxml2 \
  68. +PHP8_SYSTEMTZDATA:zoneinfo-core
  69. CONFLICTS:=php7
  70. endef
  71. define Package/php8/description
  72. $(call Package/php8/Default/description)
  73. This package contains only the PHP config file. You must actually choose
  74. your PHP flavour (cli, cgi or fastcgi).
  75. Please note, that installing php5 and php8 in parallel on the same target
  76. is not supported in OpenWrt/LEDE.
  77. endef
  78. define Package/php8-cli
  79. $(call Package/php8/Default)
  80. DEPENDS+= +PACKAGE_php8-mod-intl:libstdcpp
  81. TITLE+= (CLI)
  82. endef
  83. define Package/php8-cli/description
  84. $(call Package/php8/Default/description)
  85. This package contains the CLI version of the PHP8 interpreter.
  86. endef
  87. define Package/php8-cgi
  88. $(call Package/php8/Default)
  89. DEPENDS+= +PACKAGE_php8-mod-intl:libstdcpp
  90. TITLE+= (CGI & FastCGI)
  91. endef
  92. define Package/php8-cgi/description
  93. $(call Package/php8/Default/description)
  94. This package contains the CGI version of the PHP8 interpreter.
  95. endef
  96. define Package/php8-fastcgi
  97. $(call Package/php8/Default)
  98. DEPENDS+= +php8-cgi
  99. TITLE:=FastCGI startup script
  100. endef
  101. define Package/php8-fastcgi/description
  102. As FastCGI support is now a core feature the php8-fastcgi package now depends
  103. on the php8-cgi package, containing just the startup script.
  104. endef
  105. define Package/php8-fpm
  106. $(call Package/php8/Default)
  107. DEPENDS+= +PACKAGE_php8-mod-intl:libstdcpp
  108. TITLE+= (FPM)
  109. endef
  110. define Package/php8-fpm/description
  111. $(call Package/php8/Default/description)
  112. This package contains the FastCGI Process Manager of the PHP8 interpreter.
  113. endef
  114. define Package/php8-mod-intl/config
  115. config PHP8_FULLICUDATA
  116. bool "Add dependency to full ICU Data"
  117. depends on PACKAGE_php8-mod-intl
  118. default n
  119. endef
  120. define Package/php8-mod-intl/description
  121. Note that this package depends in ICU library which is built without data
  122. by default. This is to satisfy programs build and run dependencies but to
  123. keep the installed footprint small on the target system(s).
  124. However, the data is required to make the ICU library useful - and thus
  125. directly affects PHPs ICU extension, too - so consider to also
  126. select/install package 'icu-full-data'.
  127. endef
  128. # not everything groks --disable-nls
  129. DISABLE_NLS:=
  130. CONFIGURE_ARGS+= \
  131. --enable-cli \
  132. --enable-cgi \
  133. --enable-fpm \
  134. --enable-shared \
  135. --disable-static \
  136. --with-pic \
  137. --disable-rpath \
  138. --disable-debug \
  139. --disable-phpdbg \
  140. --without-pear \
  141. \
  142. --with-config-file-path=/etc \
  143. --with-config-file-scan-dir=/etc/php8 \
  144. --disable-short-tags \
  145. \
  146. --without-valgrind \
  147. --with-external-pcre \
  148. --with-zlib="$(STAGING_DIR)/usr"
  149. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-bcmath),)
  150. CONFIGURE_ARGS+= --enable-bcmath=shared
  151. else
  152. CONFIGURE_ARGS+= --disable-bcmath
  153. endif
  154. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-calendar),)
  155. CONFIGURE_ARGS+= --enable-calendar=shared
  156. else
  157. CONFIGURE_ARGS+= --disable-calendar
  158. endif
  159. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-ctype),)
  160. CONFIGURE_ARGS+= --enable-ctype=shared
  161. else
  162. CONFIGURE_ARGS+= --disable-ctype
  163. endif
  164. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-curl),)
  165. CONFIGURE_ARGS+= --with-curl=shared
  166. else
  167. CONFIGURE_ARGS+= --without-curl
  168. endif
  169. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-dom),)
  170. CONFIGURE_ARGS+= --enable-dom=shared
  171. else
  172. CONFIGURE_ARGS+= --disable-dom
  173. endif
  174. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-exif),)
  175. CONFIGURE_ARGS+= --enable-exif=shared
  176. else
  177. CONFIGURE_ARGS+= --disable-exif
  178. endif
  179. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-fileinfo),)
  180. CONFIGURE_ARGS+= --enable-fileinfo=shared,"$(STAGING_DIR)/usr"
  181. else
  182. CONFIGURE_ARGS+= --disable-fileinfo
  183. endif
  184. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-filter),)
  185. CONFIGURE_ARGS+= --enable-filter=shared,"$(STAGING_DIR)/usr"
  186. else
  187. CONFIGURE_ARGS+= --disable-filter
  188. endif
  189. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-ftp),)
  190. CONFIGURE_ARGS+= --enable-ftp=shared
  191. else
  192. CONFIGURE_ARGS+= --disable-ftp
  193. endif
  194. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-gd),)
  195. CONFIGURE_ARGS+= \
  196. --enable-gd=shared,"$(STAGING_DIR)/usr" \
  197. --with-external-gd
  198. else
  199. CONFIGURE_ARGS+= --disable-gd
  200. endif
  201. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-gettext),)
  202. CONFIGURE_ARGS+= --with-gettext=shared,"$(STAGING_DIR)/usr/lib/libintl-full"
  203. else
  204. CONFIGURE_ARGS+= --without-gettext
  205. endif
  206. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-gmp),)
  207. CONFIGURE_ARGS+= --with-gmp=shared,"$(STAGING_DIR)/usr"
  208. else
  209. CONFIGURE_ARGS+= --without-gmp
  210. endif
  211. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-iconv),)
  212. CONFIGURE_ARGS+= --with-iconv=shared,"$(ICONV_PREFIX)"
  213. else
  214. CONFIGURE_ARGS+= --without-iconv
  215. endif
  216. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-imap),)
  217. CONFIGURE_ARGS+= \
  218. --with-imap=shared,"$(STAGING_DIR)/usr" \
  219. --with-kerberos=no \
  220. --with-imap-ssl="$(STAGING_DIR)/usr"
  221. else
  222. CONFIGURE_ARGS+= --without-imap
  223. endif
  224. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-intl),)
  225. CONFIGURE_ARGS+= --enable-intl=shared
  226. TARGET_CXXFLAGS+= -std=c++0x
  227. else
  228. CONFIGURE_ARGS+= --disable-intl
  229. endif
  230. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-ldap),)
  231. CONFIGURE_ARGS+= \
  232. --with-ldap=shared,"$(STAGING_DIR)/usr" \
  233. --with-ldap-sasl
  234. else
  235. CONFIGURE_ARGS+= --without-ldap
  236. endif
  237. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-mbstring),)
  238. CONFIGURE_ARGS+= \
  239. --enable-mbstring=shared \
  240. --enable-mbregex
  241. else
  242. CONFIGURE_ARGS+= --disable-mbstring
  243. endif
  244. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-mysqli),)
  245. CONFIGURE_ARGS+= --with-mysqli=shared
  246. else
  247. CONFIGURE_ARGS+= --without-mysqli
  248. endif
  249. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-mysqlnd),)
  250. CONFIGURE_ARGS+= --enable-mysqlnd=shared
  251. else
  252. CONFIGURE_ARGS+= --disable-mysqlnd
  253. endif
  254. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-opcache),)
  255. CONFIGURE_ARGS+= --enable-opcache=shared
  256. else
  257. CONFIGURE_ARGS+= --disable-opcache
  258. endif
  259. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-openssl)$(CONFIG_PACKAGE_php8-mod-ftp)$(CONFIG_PACKAGE_php8-mod-imap)$(CONFIG_PACKAGE_php8-mod-snmp),)
  260. CONFIGURE_ARGS+= \
  261. --with-openssl=shared \
  262. --with-kerberos=no \
  263. --with-openssl-dir="$(STAGING_DIR)/usr"
  264. else
  265. CONFIGURE_ARGS+= --without-openssl
  266. endif
  267. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pcntl),)
  268. CONFIGURE_ARGS+= --enable-pcntl=shared
  269. else
  270. CONFIGURE_ARGS+= --disable-pcntl
  271. endif
  272. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pdo),)
  273. CONFIGURE_ARGS+= --enable-pdo=shared
  274. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pdo-mysql),)
  275. CONFIGURE_ARGS+= --with-pdo-mysql=shared
  276. else
  277. CONFIGURE_ARGS+= --without-pdo-mysql
  278. endif
  279. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pdo-pgsql),)
  280. CONFIGURE_ARGS+= --with-pdo-pgsql=shared,"$(STAGING_DIR)/usr"
  281. else
  282. CONFIGURE_ARGS+= --without-pdo-pgsql
  283. endif
  284. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pdo-sqlite),)
  285. CONFIGURE_ARGS+= --with-pdo-sqlite=shared
  286. else
  287. CONFIGURE_ARGS+= --without-pdo-sqlite
  288. endif
  289. else
  290. CONFIGURE_ARGS+= --disable-pdo
  291. endif
  292. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-pgsql),)
  293. CONFIGURE_ARGS+= --with-pgsql=shared,"$(STAGING_DIR)/usr"
  294. else
  295. CONFIGURE_ARGS+= --without-pgsql
  296. endif
  297. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-phar),)
  298. CONFIGURE_ARGS+= --enable-phar=shared
  299. else
  300. CONFIGURE_ARGS+= --disable-phar
  301. endif
  302. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-session),)
  303. CONFIGURE_ARGS+= --enable-session=shared
  304. else
  305. CONFIGURE_ARGS+= --disable-session
  306. endif
  307. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-shmop),)
  308. CONFIGURE_ARGS+= --enable-shmop=shared
  309. else
  310. CONFIGURE_ARGS+= --disable-shmop
  311. endif
  312. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-simplexml),)
  313. CONFIGURE_ARGS+= --enable-simplexml=shared
  314. else
  315. CONFIGURE_ARGS+= --disable-simplexml
  316. endif
  317. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-snmp),)
  318. CONFIGURE_ARGS+= --with-snmp=shared,"$(STAGING_DIR)/usr"
  319. else
  320. CONFIGURE_ARGS+= --without-snmp
  321. endif
  322. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-soap),)
  323. CONFIGURE_ARGS+= --enable-soap=shared
  324. else
  325. CONFIGURE_ARGS+= --disable-soap
  326. endif
  327. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-sockets),)
  328. CONFIGURE_ARGS+= --enable-sockets=shared
  329. else
  330. CONFIGURE_ARGS+= --disable-sockets
  331. endif
  332. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-sqlite3),)
  333. CONFIGURE_ARGS+= --with-sqlite3=shared
  334. else
  335. CONFIGURE_ARGS+= --without-sqlite3
  336. endif
  337. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-sysvmsg),)
  338. CONFIGURE_ARGS+= --enable-sysvmsg=shared
  339. else
  340. CONFIGURE_ARGS+= --disable-sysvmsg
  341. endif
  342. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-sysvsem),)
  343. CONFIGURE_ARGS+= --enable-sysvsem=shared
  344. else
  345. CONFIGURE_ARGS+= --disable-sysvsem
  346. endif
  347. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-sysvshm),)
  348. CONFIGURE_ARGS+= --enable-sysvshm=shared
  349. else
  350. CONFIGURE_ARGS+= --disable-sysvshm
  351. endif
  352. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-tokenizer),)
  353. CONFIGURE_ARGS+= --enable-tokenizer=shared
  354. else
  355. CONFIGURE_ARGS+= --disable-tokenizer
  356. endif
  357. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-xml),)
  358. CONFIGURE_ARGS+= --enable-xml=shared,"$(STAGING_DIR)/usr"
  359. ifneq ($(CONFIG_PHP8_LIBXML),y)
  360. CONFIGURE_ARGS+= --with-expat
  361. endif
  362. else
  363. CONFIGURE_ARGS+= --disable-xml
  364. endif
  365. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-xmlreader),)
  366. CONFIGURE_ARGS+= --enable-xmlreader=shared,"$(STAGING_DIR)/usr"
  367. else
  368. CONFIGURE_ARGS+= --disable-xmlreader
  369. endif
  370. ifneq ($(SDK)$(CONFIG_PACKAGE_php8-mod-xmlwriter),)
  371. CONFIGURE_ARGS+= --enable-xmlwriter=shared,"$(STAGING_DIR)/usr"
  372. else
  373. CONFIGURE_ARGS+= --disable-xmlwriter
  374. endif
  375. ifneq ($(CONFIG_PACKAGE_php8-mod-zip),)
  376. CONFIGURE_ARGS+= --with-zip=shared,"$(STAGING_DIR)/usr"
  377. else
  378. CONFIGURE_ARGS+= --without-zip
  379. endif
  380. ifneq ($(SDK)$(CONFIG_PHP8_LIBXML),)
  381. CONFIGURE_ARGS+= --with-libxml
  382. else
  383. CONFIGURE_ARGS+= --without-libxml
  384. endif
  385. ifneq ($(CONFIG_PHP8_SYSTEMTZDATA),)
  386. CONFIGURE_ARGS+= --with-system-tzdata
  387. else
  388. CONFIGURE_ARGS+= --without-system-tzdata
  389. endif
  390. CONFIGURE_VARS+= \
  391. ac_cv_c_bigendian_php=$(if $(CONFIG_BIG_ENDIAN),yes,no) \
  392. php_cv_cc_rpath="no" \
  393. iconv_impl_name="gnu_libiconv" \
  394. ac_cv_php_xml2_config_path="$(STAGING_DIR)/host/bin/xml2-config" \
  395. ac_cv_u8t_decompose=yes \
  396. ac_cv_have_pcre2_jit=no
  397. define Package/php8/conffiles
  398. /etc/php.ini
  399. /etc/php8/
  400. endef
  401. define Package/php8/install
  402. $(INSTALL_DIR) $(1)/etc
  403. $(INSTALL_DATA) ./files/php.ini $(1)/etc/
  404. endef
  405. define Package/php8-cli/install
  406. $(INSTALL_DIR) $(1)/usr/bin
  407. $(CP) $(PKG_BUILD_DIR)/sapi/cli/php $(1)/usr/bin/php8-cli
  408. ln -sf php8-cli $(1)/usr/bin/php-cli
  409. endef
  410. define Package/php8-cgi/install
  411. $(INSTALL_DIR) $(1)/usr/bin
  412. $(CP) $(PKG_BUILD_DIR)/sapi/cgi/php-cgi $(1)/usr/bin/php8-cgi
  413. ln -sf php8-cgi $(1)/usr/bin/php-cgi
  414. ln -sf php8-cgi $(1)/usr/bin/php8-fcgi
  415. endef
  416. define Package/php8-fastcgi/install
  417. $(INSTALL_DIR) $(1)/etc/config
  418. $(INSTALL_DATA) ./files/php8-fastcgi.config $(1)/etc/config/php8-fastcgi
  419. $(INSTALL_DIR) $(1)/etc/init.d
  420. $(INSTALL_BIN) ./files/php8-fastcgi.init $(1)/etc/init.d/php8-fastcgi
  421. endef
  422. define Package/php8-fastcgi/conffiles
  423. /etc/config/php8-fastcgi
  424. endef
  425. define Package/php8-fpm/install
  426. $(INSTALL_DIR) $(1)/usr/bin
  427. $(INSTALL_BIN) $(PKG_BUILD_DIR)/sapi/fpm/php-fpm $(1)/usr/bin/php8-fpm
  428. $(INSTALL_DIR) $(1)/etc
  429. $(INSTALL_DATA) ./files/php8-fpm.conf $(1)/etc/php8-fpm.conf
  430. $(INSTALL_DIR) $(1)/etc/config
  431. $(INSTALL_DATA) ./files/php8-fpm.config $(1)/etc/config/php8-fpm
  432. $(INSTALL_DIR) $(1)/etc/php8-fpm.d
  433. $(INSTALL_DATA) ./files/php8-fpm-www.conf $(1)/etc/php8-fpm.d/www.conf
  434. $(INSTALL_DIR) $(1)/etc/init.d
  435. $(INSTALL_BIN) ./files/php8-fpm.init $(1)/etc/init.d/php8-fpm
  436. endef
  437. define Package/php8-fpm/conffiles
  438. /etc/php8-fpm.conf
  439. /etc/php8-fpm.d/
  440. /etc/config/php8-fpm
  441. endef
  442. define Build/Prepare
  443. $(call Build/Prepare/Default)
  444. ( cd $(PKG_BUILD_DIR); touch configure.ac; ./buildconf --force )
  445. endef
  446. define Build/InstallDev
  447. rm -rf $(PKG_BUILD_DIR)/staging
  448. make -C $(PKG_BUILD_DIR) install INSTALL_ROOT=$(PKG_BUILD_DIR)/staging
  449. rm -rf $(PKG_BUILD_DIR)/staging/usr/{share,man,sbin}
  450. rm -f $(PKG_BUILD_DIR)/staging/usr/bin/{php,php-cgi,php-cli}
  451. mv $(PKG_BUILD_DIR)/staging/usr/bin/phpize $(PKG_BUILD_DIR)/staging/usr/bin/phpize8
  452. mv $(PKG_BUILD_DIR)/staging/usr/bin/php-config $(PKG_BUILD_DIR)/staging/usr/bin/php8-config
  453. mv $(PKG_BUILD_DIR)/staging/usr/include/php $(PKG_BUILD_DIR)/staging/usr/include/php8
  454. mv $(PKG_BUILD_DIR)/staging/usr/lib/php $(PKG_BUILD_DIR)/staging/usr/lib/php8
  455. $(CP) $(PKG_BUILD_DIR)/staging/usr $(STAGING_DIR)/
  456. sed -i -e "s#prefix='/usr'#prefix='$(STAGING_DIR)/usr'#" $(STAGING_DIR)/usr/bin/phpize8
  457. sed -i -e "s#exec_prefix=\"\`eval echo /usr\`\"#exec_prefix='$(STAGING_DIR)/usr'#" $(STAGING_DIR)/usr/bin/phpize8
  458. sed -i -e "s#/include\`/php\"#/include\`/php8\"#" $(STAGING_DIR)/usr/bin/phpize8
  459. sed -i -e "s#/lib/php\`/build\"#/lib/php8\`/build\"#" $(STAGING_DIR)/usr/bin/phpize8
  460. sed -i -e "s#prefix=\"/usr\"#prefix=\"$(STAGING_DIR)/usr\"#" $(STAGING_DIR)/usr/bin/php8-config
  461. sed -i -e "s#/include/php\"#/include/php8\"#" $(STAGING_DIR)/usr/bin/php8-config
  462. endef
  463. define BuildModule
  464. define Package/php8-mod-$(1)
  465. $(call Package/php8/Default)
  466. ifneq ($(3),)
  467. DEPENDS+=$(3)
  468. endif
  469. TITLE:=$(2) shared module
  470. endef
  471. define Package/php8-mod-$(1)/install
  472. $(INSTALL_DIR) $$(1)/usr/lib/php8
  473. $(INSTALL_BIN) $(PKG_BUILD_DIR)/modules/$(subst -,_,$(1)).so $$(1)/usr/lib/php8/
  474. $(INSTALL_DIR) $$(1)/etc/php8
  475. ifeq ($(5),zend)
  476. echo "zend_extension=/usr/lib/php8/$(subst -,_,$(1)).so" > $$(1)/etc/php8/$(if $(4),$(4),20)_$(subst -,_,$(1)).ini
  477. else
  478. echo "extension=$(subst -,_,$(1)).so" > $$(1)/etc/php8/$(if $(4),$(4),20)_$(subst -,_,$(1)).ini
  479. endif
  480. endef
  481. $$(eval $$(call BuildPackage,php8-mod-$(1)))
  482. endef
  483. $(eval $(call BuildPackage,php8))
  484. $(eval $(call BuildPackage,php8-cgi))
  485. $(eval $(call BuildPackage,php8-cli))
  486. $(eval $(call BuildPackage,php8-fastcgi))
  487. $(eval $(call BuildPackage,php8-fpm))
  488. #$(eval $(call BuildModule,NAME,TITLE[,PKG DEPENDS]))
  489. $(eval $(call BuildModule,bcmath,Bcmath))
  490. $(eval $(call BuildModule,calendar,Calendar))
  491. $(eval $(call BuildModule,ctype,Ctype))
  492. $(eval $(call BuildModule,curl,cURL,+PACKAGE_php8-mod-curl:libcurl))
  493. $(eval $(call BuildModule,dom,DOM,+@PHP8_LIBXML +PACKAGE_php8-mod-dom:libxml2))
  494. $(eval $(call BuildModule,exif,EXIF))
  495. $(eval $(call BuildModule,fileinfo,Fileinfo))
  496. $(eval $(call BuildModule,filter,Filter))
  497. $(eval $(call BuildModule,ftp,FTP,+PACKAGE_php8-mod-ftp:libopenssl))
  498. $(eval $(call BuildModule,gd,GD graphics,+PACKAGE_php8-mod-gd:libgd-full))
  499. $(eval $(call BuildModule,gettext,Gettext,+PACKAGE_php8-mod-gettext:libintl-full))
  500. $(eval $(call BuildModule,gmp,GMP,+PACKAGE_php8-mod-gmp:libgmp))
  501. $(eval $(call BuildModule,iconv,iConv,$(ICONV_DEPENDS)))
  502. $(eval $(call BuildModule,imap,IMAP,+PACKAGE_php8-mod-imap:libopenssl +PACKAGE_libpam:libpam +PACKAGE_php8-mod-imap:uw-imap))
  503. $(eval $(call BuildModule,intl,Internationalization Functions,+PACKAGE_php8-mod-intl:icu +PHP8_FULLICUDATA:icu-full-data))
  504. $(eval $(call BuildModule,ldap,LDAP,+PACKAGE_php8-mod-ldap:libopenldap +PACKAGE_php8-mod-ldap:libsasl2))
  505. $(eval $(call BuildModule,mbstring,MBString,+PACKAGE_php8-mod-mbstring:oniguruma))
  506. $(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php8-mod-mysqli:php8-mod-mysqlnd,30))
  507. $(eval $(call BuildModule,mysqlnd,MySQL Native Driver,+PACKAGE_php8-mod-openssl:php8-mod-openssl))
  508. $(eval $(call BuildModule,opcache,OPcache,,,zend))
  509. $(eval $(call BuildModule,openssl,OpenSSL,+PACKAGE_php8-mod-openssl:libopenssl,15))
  510. $(eval $(call BuildModule,pcntl,PCNTL))
  511. $(eval $(call BuildModule,pdo,PHP Data Objects))
  512. $(eval $(call BuildModule,pdo-mysql,PDO driver for MySQL,+php8-mod-pdo +PACKAGE_php8-mod-pdo-mysql:php8-mod-mysqlnd))
  513. $(eval $(call BuildModule,pdo-pgsql,PDO driver for PostgreSQL,+php8-mod-pdo +PACKAGE_php8-mod-pdo-pgsql:libpq))
  514. $(eval $(call BuildModule,pdo-sqlite,PDO driver for SQLite 3.x,+php8-mod-pdo +PACKAGE_php8-mod-pdo-sqlite:libsqlite3 +PACKAGE_php8-mod-pdo-sqlite:librt))
  515. $(eval $(call BuildModule,pgsql,PostgreSQL,+PACKAGE_php8-mod-pgsql:libpq))
  516. $(eval $(call BuildModule,phar,Phar Archives))
  517. $(eval $(call BuildModule,session,Session))
  518. $(eval $(call BuildModule,shmop,Shared Memory))
  519. $(eval $(call BuildModule,simplexml,SimpleXML,+@PHP8_LIBXML +PACKAGE_php8-mod-simplexml:libxml2))
  520. $(eval $(call BuildModule,snmp,SNMP,+PACKAGE_php8-mod-snmp:libnetsnmp +PACKAGE_php8-mod-snmp:libopenssl))
  521. $(eval $(call BuildModule,soap,SOAP,+@PHP8_LIBXML +PACKAGE_php8-mod-soap:libxml2))
  522. $(eval $(call BuildModule,sockets,Sockets))
  523. $(eval $(call BuildModule,sqlite3,SQLite3,+PACKAGE_php8-mod-sqlite3:libsqlite3))
  524. $(eval $(call BuildModule,sysvmsg,System V messages))
  525. $(eval $(call BuildModule,sysvsem,System V shared memory))
  526. $(eval $(call BuildModule,sysvshm,System V semaphore))
  527. $(eval $(call BuildModule,tokenizer,Tokenizer))
  528. $(eval $(call BuildModule,xml,XML,+PHP8_LIBXML:libxml2 +!PHP8_LIBXML:libexpat))
  529. $(eval $(call BuildModule,xmlreader,XMLReader,+@PHP8_LIBXML +PACKAGE_php8-mod-dom:php8-mod-dom +PACKAGE_php8-mod-xmlreader:libxml2))
  530. $(eval $(call BuildModule,xmlwriter,XMLWriter,+@PHP8_LIBXML +PACKAGE_php8-mod-xmlwriter:libxml2))
  531. $(eval $(call BuildModule,zip,ZIP,+PACKAGE_php8-mod-zip:libzip))