Makefile 9.3 KB

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