Files
ports/www/angie/Makefile
T
2026-10-04 04:07:15 +00:00

215 lines
6.1 KiB
Makefile

PORTNAME?= angie
ANGIE_VERSION= 1.12.2
ANGIE_PORTREVISION= 0
CATEGORIES+= www
MASTER_SITES+= https://download.angie.software/files/:angie
DISTNAME= angie-${ANGIE_VERSION}
DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}:angie
MAINTAINER?= sko@rostwald.de
COMMENT?= Efficient, powerful and scalable reverse proxy and web server
WWW?= https://angie.software/en/
LICENSE?= BSD2CLAUSE
.if ${PORTNAME} == angie
DISTVERSION= ${ANGIE_VERSION}
PORTREVISION= ${ANGIE_PORTREVISION}
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libpcre2-8.so:devel/pcre2
USE_RC_SUBR= angie
ALL_TARGET= build
SUB_FILES= angie.conf.sample \
default.conf.sample \
example.conf.sample \
pkg-message
.else
. if defined(MODULE_VERSION)
DISTVERSION= ${MODULE_VERSION}
PORTREVISION= ${MODULE_PORTREVISION}
. if defined(MODULE_PORTEPOCH)
PORTEPOCH= ${MODULE_PORTEPOCH}
. else
PORTEPOCH= 1
. endif
. else
DISTVERSION= ${ANGIE_VERSION}
PORTREVISION= ${ANGIE_PORTREVISION}
. endif
LICENSE_FILE?= ${WRKSRC_module}/LICENSE
BUILD_DEPENDS+= pcre2>=0:devel/pcre2
# The following makes sure module ports are rebuild if angie gets updated.
# However, pkg does not obey RUN_DEPENDS on updates, therefore we need to
# also bump MODULE_PORTREVISION for every single www/angie-module* port.
. if ${ANGIE_PORTREVISION} == 0
RUN_DEPENDS+= angie==${ANGIE_VERSION}:www/angie
. else
RUN_DEPENDS+= angie==${ANGIE_VERSION}_${ANGIE_PORTREVISION}:www/angie
. endif
ALL_TARGET?= modules
CONFIGURE_ADD?= --add-dynamic-module=${WRKSRC_module}
.endif
USES+= localbase:ldflags ssl
USE_GITHUB= nodefault
HAS_CONFIGURE?= yes
CONFIGURE_ARGS= --prefix=${ETCDIR} \
--conf-path=${ETCDIR}/angie.conf \
--error-log-path=${LOGDIR}/error.log \
--http-log-path=${LOGDIR}/access.log \
--lock-path=${RUNDIR}/angie.lock \
--modules-path=${MODDIR} \
--pid-path=${RUNDIR}/angie.pid \
--sbin-path=${PREFIX}/sbin/angie \
--http-client-body-temp-path=${CACHEDIR}/client_temp \
--http-fastcgi-temp-path=${CACHEDIR}/fastcgi_temp \
--http-proxy-temp-path=${CACHEDIR}/proxy_temp \
--http-scgi-temp-path=${CACHEDIR}/scgi_temp \
--http-uwsgi-temp-path=${CACHEDIR}/uwsgi_temp \
--user=${WWWOWN} \
--group=${WWWGRP} \
--with-file-aio \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-http_v3_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-threads \
--with-cc-opt="${CFLAGS}" \
--with-ld-opt="${LDFLAGS}" \
${CONFIGURE_ADD}
# angie-specific variables
CACHEDIR= /var/cache/angie
DBDIR= /var/db/angie
ETCDIR= ${PREFIX}/etc/angie
LOGDIR= /var/log/angie
MODDIR= ${PREFIX}/libexec/angie
RUNDIR= /var/run
WRKSRC_DEBUG= ${WRKSRC}-debug
# modules always have their own assets
FILESDIR?= ${.CURDIR}/files
PATCHDIR?= ${.CURDIR}/files
PKGDIR?= ${.CURDIR}
SCRIPTDIR?= ${.CURDIR}/scripts
SUB_FILES?= pkg-message
SUB_LIST+= CACHEDIR=${CACHEDIR} \
DBDIR=${DBDIR} \
ETCDIR=${ETCDIR} \
LOGDIR=${LOGDIR} \
MODDIR=${MODDIR} \
RUNDIR=${RUNDIR} \
WWWGRP=${WWWGRP} \
WWWOWN=${WWWOWN}
PLIST_SUB+= CACHEDIR=${CACHEDIR} \
DBDIR=${DBDIR} \
LOGDIR=${LOGDIR} \
MODDIR=${MODDIR} \
RUNDIR=${RUNDIR} \
WWWGRP=${WWWGRP} \
WWWOWN=${WWWOWN}
OPTIONS_DEFINE?= DEBUG
OPTIONS_DEFAULT?= DEBUG
OPTIONS_SUB= yes
DEBUG_DESC?= Include debug version
.if ${PORTNAME} == angie
OPTIONS_DEFINE+= ACME
OPTIONS_DEFAULT+= ACME
ACME_DESC= ACME client module
ACME_CONFIGURE_ON= --with-http_acme_module \
--http-acme-client-path=${ETCDIR}/acme-client
.endif
.include <bsd.port.options.mk>
post-patch-DEBUG-on:
@${CP} -Rp ${WRKSRC} ${WRKSRC_DEBUG}
post-configure-DEBUG-on:
@(cd ${WRKSRC_DEBUG} && \
${SET_LATE_CONFIGURE_ARGS} \
if ! ${SETENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \
CFLAGS="${CFLAGS} -g" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="${INSTALL_DATA}" \
INSTALL_LIB="${INSTALL_LIB}" \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
${CONFIGURE_ENV} ${CONFIGURE_CMD} ${CONFIGURE_ARGS} --with-debug; then \
${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \
(${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT_80} ; \
${FALSE}; \
fi \
)
post-build-DEBUG-on:
@(cd ${WRKSRC_DEBUG} && ${DO_MAKE_BUILD} ${ALL_TARGET})
.if ${PORTNAME} == angie
do-install:
${MKDIR} ${STAGEDIR}${CACHEDIR} \
${STAGEDIR}${DBDIR} \
${STAGEDIR}${DOCSDIR} \
${STAGEDIR}${ETCDIR}/http.d \
${STAGEDIR}${ETCDIR}/stream.d \
${STAGEDIR}${MODDIR} \
${STAGEDIR}${WWWDIR}/html
. if ${PORT_OPTIONS:MACME}
${MKDIR} ${STAGEDIR}${ETCDIR}/acme-client
. endif
${RLN} ${STAGEDIR}${MODDIR} ${STAGEDIR}${ETCDIR}/modules
${INSTALL_PROGRAM} ${WRKSRC}/objs/angie \
${STAGEDIR}${PREFIX}/sbin/angie-nodebug
${LN} -fs angie-nodebug ${STAGEDIR}${PREFIX}/sbin/angie
${INSTALL_MAN} ${WRKSRC}/objs/angie.8 ${STAGEDIR}${PREFIX}/share/man/man8
${INSTALL_DATA} ${WRKSRC}/CHANGES ${WRKSRC}/CHANGES.ru ${STAGEDIR}${DOCSDIR}
. for i in fastcgi.conf fastcgi_params mime.types scgi_params uwsgi_params
${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR}/${i}.sample
. endfor
${INSTALL_DATA} ${WRKSRC}/conf/prometheus_all.conf \
${STAGEDIR}${ETCDIR}/prometheus_all.conf.sample
${INSTALL_DATA} ${WRKDIR}/angie.conf.sample \
${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${WRKDIR}/default.conf.sample \
${STAGEDIR}${ETCDIR}/http.d
${INSTALL_DATA} ${WRKDIR}/example.conf.sample \
${STAGEDIR}${ETCDIR}/stream.d
${INSTALL_DATA} ${WRKSRC}/html/50x.html ${WRKSRC}/html/index.html \
${STAGEDIR}${WWWDIR}/html
do-install-DEBUG-on:
${INSTALL} ${COPY} -m ${BINMODE} ${WRKSRC_DEBUG}/objs/angie \
${STAGEDIR}${PREFIX}/sbin/angie-debug
.endif # ${PORTNAME} == angie
.include <bsd.port.mk>