PageRenderTime 57ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/www/apache22/Makefile

https://github.com/jsonn/pkgsrc
Makefile | 241 lines | 188 code | 35 blank | 18 comment | 12 complexity | 323a894b507d1d1ed24b9eed7fdb8b60 MD5 | raw file
  1. # $NetBSD: Makefile,v 1.112 2017/01/19 18:52:28 agc Exp $
  2. DISTNAME= httpd-2.2.32
  3. PKGNAME= ${DISTNAME:S/httpd/apache/}
  4. CATEGORIES= www
  5. MASTER_SITES= ${MASTER_SITE_APACHE:=httpd/}
  6. MASTER_SITES+= http://archive.apache.org/dist/httpd/
  7. MASTER_SITES+= http://archive.eu.apache.org/dist/httpd/
  8. EXTRACT_SUFX= .tar.bz2
  9. MAINTAINER= pkgsrc-users@NetBSD.org
  10. HOMEPAGE= http://httpd.apache.org/
  11. COMMENT= Apache HTTP (Web) server, version 2.2
  12. LICENSE= apache-2.0
  13. BUILD_DEFS+= IPV6_READY
  14. BUILD_DEFS+= VARBASE
  15. USE_TOOLS+= pax perl perl:run pkg-config
  16. USE_LIBTOOL= yes
  17. GNU_CONFIGURE= yes
  18. CONFIGURE_ARGS+= --enable-layout=NetBSD
  19. CONFIGURE_ARGS+= --with-port=80
  20. CONFIGURE_ARGS+= --enable-so
  21. CONFIGURE_ENV+= perlbin=${PERL5:Q}
  22. CONFIGURE_ENV+= ac_cv_path_RSYNC=/nonexistent
  23. # Apache Portable Runtime library configure options
  24. CONFIGURE_ARGS+= --with-apr=${BUILDLINK_PREFIX.apr}
  25. CONFIGURE_ARGS+= --with-apr-util=${BUILDLINK_PREFIX.apr-util}
  26. CHECK_INTERPRETER_SKIP+= lib/httpd/httpd.exp
  27. CHECK_PORTABILITY_SKIP+= srclib/pcre/* \
  28. srclib/apr-util/* \
  29. srclib/apr/*
  30. # the following must be set before bsd.prefs.mk in order to make += work
  31. # in mk.conf; however, it isn't expanded until referenced, so we can
  32. # define DFLT_APACHE_MODULES later
  33. #
  34. APACHE_MODULES?= ${DFLT_APACHE_MODULES}
  35. .include "../../mk/bsd.prefs.mk"
  36. .include "../../devel/apr/buildlink3.mk"
  37. .include "../../devel/apr-util/buildlink3.mk"
  38. .include "../../textproc/expat/buildlink3.mk"
  39. .include "../../mk/dlopen.buildlink3.mk"
  40. .include "../../mk/pthread.buildlink3.mk"
  41. CONFIGURE_ARGS+= --disable-include
  42. CONFIGURE_ARGS+= --disable-log-config
  43. CONFIGURE_ARGS+= --disable-env
  44. CONFIGURE_ARGS+= --disable-mime
  45. CONFIGURE_ARGS+= --disable-setenvif
  46. CONFIGURE_ARGS+= --disable-status
  47. CONFIGURE_ARGS+= --disable-autoindex
  48. CONFIGURE_ARGS+= --disable-asis
  49. CONFIGURE_ARGS+= --disable-cgi
  50. CONFIGURE_ARGS+= --disable-negotiation
  51. CONFIGURE_ARGS+= --disable-dir
  52. CONFIGURE_ARGS+= --disable-actions
  53. CONFIGURE_ARGS+= --disable-userdir
  54. CONFIGURE_ARGS+= --disable-alias
  55. DFLT_APACHE_MODULES= all
  56. DFLT_APACHE_MODULES+= proxy proxy_connect proxy_ftp proxy_http
  57. DFLT_APACHE_MODULES+= ssl deflate access auth authn_alias
  58. DFLT_APACHE_MODULES+= include log_config env mime setenvif
  59. DFLT_APACHE_MODULES+= status autoindex asis cgi negotiation dir imap
  60. DFLT_APACHE_MODULES+= actions userdir alias isapi file_cache
  61. DFLT_APACHE_MODULES+= cache disk_cache mem_cache bucketeer echo
  62. DFLT_APACHE_MODULES+= example case_filter case_filter_in
  63. DFLT_APACHE_MODULES+= charset_lite
  64. DFLT_APACHE_MODULES+= cgid dav_lock proxy_ajp proxy_balancer
  65. PLIST_SRC+= ${PKGDIR}/PLIST
  66. .include "options.mk"
  67. # LDAP support
  68. PLIST_VARS+= ldap
  69. .if !empty(PKG_BUILD_OPTIONS.apr-util:Mldap)
  70. DFLT_APACHE_MODULES+= ldap authnz_ldap
  71. . if !empty(PKG_OPTIONS:Mapache-shared-modules)
  72. PLIST.ldap= yes
  73. . endif
  74. .endif
  75. APACHE_USER?= www
  76. APACHE_GROUP?= www
  77. PKG_GROUPS= ${APACHE_GROUP}
  78. PKG_USERS= ${APACHE_USER}:${APACHE_GROUP}
  79. PKG_GROUPS_VARS+= APACHE_GROUP
  80. PKG_USERS_VARS+= APACHE_USER
  81. PKG_SYSCONFVAR= apache
  82. PKG_SYSCONFSUBDIR?= httpd
  83. EGDIR= ${PREFIX}/share/examples/httpd
  84. SBINDIR= ${PREFIX}/sbin
  85. CONF_FILES+= ${EGDIR}/httpd.conf ${PKG_SYSCONFDIR}/httpd.conf
  86. .for f in autoindex dav default info languages manual mpm \
  87. multilang-errordoc ssl userdir vhosts
  88. CONF_FILES+= ${EGDIR}/extra/httpd-${f}.conf \
  89. ${PKG_SYSCONFDIR}/httpd-${f}.conf
  90. .endfor
  91. CONF_FILES+= ${EGDIR}/magic ${PKG_SYSCONFDIR}/magic
  92. CONF_FILES+= ${EGDIR}/mime.types ${PKG_SYSCONFDIR}/mime.types
  93. RCD_SCRIPTS= apache
  94. REQD_DIRS= ${PREFIX}/share/httpd
  95. REQD_DIRS+= ${PREFIX}/share/httpd/htdocs
  96. OWN_DIRS= ${VARBASE}/log/httpd
  97. OWN_DIRS+= ${VARBASE}/db/httpd
  98. OWN_DIRS_PERMS+= ${VARBASE}/db/httpd/proxy ${APACHE_USER} ${APACHE_GROUP} 0755
  99. FIX_PERMS= apachectl apxs dbmmanage envvars-std mkcert
  100. FIX_MAN_PERMS= man1/htdbm.1 man1/htpasswd.1 man1/htdigest.1
  101. FIX_MAN_PERMS+= man1/dbmmanage.1 man8/httpd.8 man8/suexec.8
  102. FIX_MAN_PERMS+= man8/rotatelogs.8 man1/logresolve.1 man1/apxs.1
  103. FIX_MAN_PERMS+= man8/apachectl.8 man1/ab.1 man1/httxt2dbm.1
  104. # Fix paths in the apache manpages.
  105. SUBST_CLASSES+= man
  106. SUBST_STAGE.man= post-patch
  107. SUBST_FILES.man= docs/man/*.1 docs/man/*.8
  108. SUBST_SED.man= -e 's,/usr/local/etc/apache,${PKG_SYSCONFDIR},'
  109. SUBST_SED.man+= -e 's,/path/to/apache/etc,${PKG_SYSCONFDIR},'
  110. SUBST_SED.man+= -e 's,/usr/local/apache2,${PREFIX}/share/httpd/htdocs,'
  111. SUBST_SED.man+= -e 's,/usr/web,${PREFIX}/share/httpd/htdocs,'
  112. SUBST_CLASSES+= paths
  113. SUBST_STAGE.paths= pre-configure
  114. SUBST_FILES.paths= config.layout Makefile.in support/apxs.in
  115. SUBST_SED.paths= -e "s|@PREFIX@|${PREFIX}|g"
  116. SUBST_SED.paths+= -e "s|@VARBASE@|${VARBASE}|g"
  117. SUBST_SED.paths+= -e "s|@SYSCONFDIR@|${PKG_SYSCONFDIR}|g"
  118. SUBST_SED.paths+= -e "s|@PAX@|${PAX}|g"
  119. SUBST_SED.paths+= -e "s|@LOCALBASE@|${LOCALBASE}|g"
  120. SUBST_MESSAGE.paths= Fixing paths.
  121. SUBST_CLASSES+= apr-lt
  122. SUBST_STAGE.apr-lt= post-configure
  123. SUBST_FILES.apr-lt= build/config_vars.mk
  124. SUBST_SED.apr-lt= -e 's|^\(LIBTOOL =\) [^ ]*|\1 $$(SHELL) $$(top_builddir)/build/libtool|g'
  125. SUBST_MESSAGE.apr-lt= Fixing libtool references.
  126. SUBST_CLASSES+= confs
  127. SUBST_STAGE.confs= post-configure
  128. SUBST_MESSAGE.confs= Fixing configuration files.
  129. SUBST_FILES.confs= docs/conf/httpd.conf
  130. SUBST_FILES.confs+= docs/conf/extra/httpd-ssl.conf
  131. SUBST_SED.confs= -e "s|${EGDIR}|${PKG_SYSCONFDIR}|g"
  132. SUBST_SED.confs+= -e "s|${PREFIX}/htdocs|${PREFIX}/share/httpd/htdocs|g"
  133. SUBST_SED.confs+= -e "s|${PREFIX}/conf|${PKG_SYSCONFDIR}|g"
  134. SUBST_SED.confs+= -e "s|logs/|${VARBASE}/log/httpd/|g"
  135. SUBST_SED.confs+= -e 's|/var/log/httpd/foo\.log|logs/foo.log/|g'
  136. SUBST_SED.confs+= -e 's|^\(User[ ]\).*|\1${APACHE_USER}|g'
  137. SUBST_SED.confs+= -e 's|^\(Group[ ]\).*|\1${APACHE_GROUP}|g'
  138. SUBST_SED.confs+= -e 's|^Listen \(.*\)|Listen 0.0.0.0:\1|g'
  139. # abs_srcdir in config_vars.mk is used during install so needs to reference
  140. # the work dir path, and by other packages such as ap2-fastcgi after install,
  141. # so we fix after install to reference the installed path
  142. SUBST_CLASSES+= abs_srcdir
  143. SUBST_STAGE.abs_srcdir= post-install
  144. SUBST_FILES.abs_srcdir= ${DESTDIR}${PREFIX}/share/httpd/build/config_vars.mk
  145. SUBST_SED.abs_srcdir= -e 's|^\(abs_srcdir =\) .*|\1 ${PREFIX}/share/httpd|'
  146. SUBST_MESSAGE.abs_srcdir= Fixing abs_srcdir
  147. REPLACE_PERL= docs/cgi-examples/printenv
  148. # Add dependencies for the modules that will be built. For each module
  149. # ap_mod listed in ${APACHE_MODULES}, _AP_DEPENDS.ap_mod is a whitespace
  150. # separated list of dependencies or buildlink3.mk files needed to build
  151. # ap_mod, and _AP_CFG_ARGS.ap_mod is a whitespace separated list of
  152. # configure script options for ap_mod.
  153. #
  154. AP_DEPENDS.ssl= ../../security/openssl/buildlink3.mk
  155. AP_DEPENDS.deflate= ../../devel/zlib/buildlink3.mk
  156. AP_CFG_ARGS.ssl= --with-ssl=${BUILDLINK_PREFIX.openssl}
  157. AP_CFG_ARGS.deflate= --with-z=${BUILDLINK_PREFIX.zlib}
  158. #.if ${APACHE_MODULES} == "all-shared"
  159. .if !empty(PKG_OPTIONS:Mapache-shared-modules)
  160. . include "${AP_DEPENDS.ssl}"
  161. . include "${AP_DEPENDS.deflate}"
  162. CONFIGURE_ARGS+= ${AP_CFG_ARGS.ssl} ${AP_CFG_ARGS.deflate}
  163. .else
  164. . for ap_mod in ${APACHE_MODULES}
  165. . if defined(AP_DEPENDS.${ap_mod}) && !empty(AP_DEPENDS.${ap_mod})
  166. . for ap_depend in ${AP_DEPENDS.${ap_mod}}
  167. . if exists(${ap_depend})
  168. . include "${ap_depend}"
  169. . else
  170. DEPENDS+= ${ap_depend}
  171. . endif
  172. . endfor
  173. . endif
  174. . if defined(AP_CFG_ARGS.${ap_mod}) && !empty(AP_CFG_ARGS.${ap_mod})
  175. CONFIGURE_ARGS+= ${AP_CFG_ARGS.${ap_mod}}
  176. . endif
  177. . endfor
  178. .endif
  179. post-extract:
  180. ${TOUCH} ${WRKSRC}/build/libtool
  181. ${ECHO} "" >> ${WRKSRC}/docs/conf/extra/httpd-languages.conf.in
  182. post-build:
  183. ${SED} "s#@PKG_SYSCONFDIR@#${PKG_SYSCONFDIR}#g" \
  184. < ${FILESDIR}/mkcert.sh > ${WRKDIR}/mkcert
  185. INSTALL_TARGET= install-conf install
  186. INSTALL_MAKE_FLAGS+= sysconfdir="${EGDIR}"
  187. post-install:
  188. ${LN} -sf ${LOCALBASE}/libexec/apr/libtool ${DESTDIR}${PREFIX}/share/httpd/build
  189. ${LN} -sf ${SBINDIR}/envvars-std ${DESTDIR}${SBINDIR}/envvars
  190. ${INSTALL_SCRIPT} ${WRKDIR}/mkcert ${DESTDIR}${PREFIX}/sbin
  191. for file in ${FIX_PERMS}; do \
  192. ${CHOWN} ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/sbin/$$file && \
  193. ${CHMOD} ${BINMODE} ${DESTDIR}${PREFIX}/sbin/$$file; \
  194. done
  195. ${CHOWN} -RP ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/share/httpd
  196. ${CHOWN} -RP ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/include/httpd
  197. ${CHOWN} -RP ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/lib/httpd
  198. ${CHOWN} ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/libexec/cgi-bin/test-cgi
  199. ${CHOWN} ${BINOWN}:${BINGRP} ${DESTDIR}${PREFIX}/libexec/cgi-bin/printenv
  200. for file in ${FIX_MAN_PERMS}; do \
  201. ${CHOWN} ${MANOWN}:${MANGRP} ${DESTDIR}${PREFIX}/${PKGMANDIR}/$$file; \
  202. done
  203. ${CHMOD} -x ${DESTDIR}${PREFIX}/sbin/envvars-std
  204. ${TEST} ! -f ${DESTDIR}${PREFIX}/sbin/suexec || ${CHMOD} -w ${DESTDIR}${PREFIX}/sbin/suexec
  205. .include "../../mk/pthread.buildlink3.mk"
  206. .include "../../mk/bsd.pkg.mk"