freebsd-ports/devel/apr1/Makefile
Jochen Neumeister cc867e3fa0 Update to 1.7.0
*) apr_dir_read: [Unix] Dropped the preference of the dirread_r() flavor
   for dirread(), because the former is both deprecated and unneeded.
   [Yann Ylavic, William Rowe]

*) apr_file_info: [Win32 only] Treat only "name surrogate" reparse points
   as symlinks, and not other reparse tag types. PR47630
   [Oleg Liatte <olegliatte gmail.com>]

*) Test %ld vs. %lld to avoid compiler emits using APR_OFF_T_FMT, in the
   case of apparently equivilant long and long long types. [William Rowe]

*) Recognize APPLE predefined macros as equivilant to DARWIN. [Jim Jagielski]

*) Signals: Allow handling of SIGUSR2 in apr_signal_thread. [Yann Ylavic]

*) Atomics: Support for 64bit ints. [Jim Jagielski]

*) Add the apr_encode_* API that implements RFC4648 and RFC7515
   compliant BASE64, BASE64URL, BASE32, BASE32HEX and BASE16
   encode/decode functions. [Graham Leggett]

*) rand: Use arc4random_buf() on BSD platforms and getrandom() on Linux,
   when available. [Christian Weisgerber <naddy openbsd.org, Yann Ylavic]

*) Add apr_sockaddr_zone_set, apr_sockaddr_zone_set to set and retrieve
   the zone for link-local IPv6 addresses.  [Joe Orton]

*) apr_sockaddr_equal: Compare link-local IPv6 addresses with different
   zones as not equal.  [Joe Orton]

*) apr_sockaddr_ip_getbuf, apr_sockaddr_ip_get: Append "%zone" for
   IPv6 link-local addresses.  [Joe Orton]

*) Locks: add a --disable-timedlocks config option in case users
   encounter more platforms where it fails [Nick Kew].

*) apr_allocator, apr_pools: Add apr_allocator_page_size() and
   apr_allocator_min_order_set() to respectively get the (system's) page size
   in use and set the minimum allocation size for an allocator (expressed in
   2^order pages).  [Yann Ylavic]

*) locks: provide portable implementations of timedlock()s for
   posix-sems, sysv-sems and pthreads for those platforms that
   lack native versions (eg: OSX/macOS). [Jim Jagielski]

*) locks: Introduce apr_{thread,proc,global}_mutex_timedlock().
   [Yann Ylavic]

- Add PORTVERSION (with svn mv) to relevant patches to make it easier for maintaining

PR:		239382
Sponsored by:	Netzkommune GmbH
Differential Revision:	https://reviews.freebsd.org/D21073
2019-08-06 08:58:16 +00:00

175 lines
5.5 KiB
Makefile

# Created by: Garrett Rooney <rooneg@electricjellyfish.net>
# $FreeBSD$
PORTNAME= apr
PORTVERSION= ${APR_VERSION}.${APU_VERSION}
CATEGORIES= devel
MASTER_SITES= APACHE/apr
DISTFILES= apr-${APR_VERSION}.tar.gz \
apr-util-${APU_VERSION}.tar.gz
MAINTAINER= apache@FreeBSD.org
COMMENT= Apache Portability Library
LICENSE= APACHE20
LIB_DEPENDS= libexpat.so:textproc/expat2
USES= iconv pathfix libtool cpe
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
APR_VERSION= 1.7.0
APU_VERSION= 1.6.1
CPE_VENDOR= apache
CPE_PRODUCT= apr-util
CPE_VERSION= ${APU_VERSION}
OPTIONS_SUB= yes
OPTIONS_GROUP= APU
OPTIONS_DEFINE= IPV6
OPTIONS_GROUP_APU= BDB GDBM LDAP MYSQL NDBM ODBC PGSQL SQLITE
OPTIONS_RADIO= CRYPTO
OPTIONS_RADIO_CRYPTO= SSL NSS
OPTIONS_DEFAULT= DEVRANDOM BDB GDBM SSL
APU_DESC= Database support
CRYPTO_DESC= Cryptography provider
DEVRANDOM_DESC= Use /dev/random or compatible
NDBM_DESC= NDBM support
NSS_DESC= NSS crypto driver
SSL_DESC= OpenSSL crypto driver
# APR-Util Options
BDB_USES= bdb:5+
GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
LDAP_USE= OPENLDAP=yes
MYSQL_USES= mysql
NSS_LIB_DEPENDS= libnss3.so:security/nss
ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
PGSQL_USES= pgsql
SQLITE_USES= sqlite
SSL_USES= ssl
APR_WRKDIR= ${WRKDIR}/apr-${APR_VERSION}
APU_WRKDIR= ${WRKDIR}/apr-util-${APU_VERSION}
WRKSRC= ${APR_WRKDIR}
PATCH_WRKSRC= ${WRKDIR}
PATHFIX_WRKSRC= ${WRKDIR}
SHLIB_APR_MAJOR=${APR_VERSION:C/^1/0/}
SHLIB_APU_MAJOR=${APU_VERSION:C/^1/0/}
PLIST_SUB+= SHLIB_APR_MAJOR="${SHLIB_APR_MAJOR}" \
SHLIB_APU_MAJOR="${SHLIB_APU_MAJOR}"
APR_CONF_ARGS= --with-installbuilddir=${DATADIR}/build-1 \
--enable-threads \
--enable-posix-shm \
--with-devrandom
APU_CONF_ARGS= --with-apr=${APR_WRKDIR} \
--with-expat=${LOCALBASE}
########## APR Options
IPV6_VARS= APR_CONF_ARGS+=--enable-ipv6
IPV6_VARS_OFF= APR_CONF_ARGS+=--disable-ipv6
######### APR-Util Options
# make sure 1st include is "${APR_WRKDIR}/include"
# to avoid failures if previous apr_version.h is present
APU_CPPFLAGS= -I${APR_WRKDIR}/include
BDB_VARS= APU_CONF_ARGS+=--with-berkeley-db=${BDB_INCLUDE_DIR}:${BDB_LIB_DIR}
BDB_VARS_OFF= APU_CONF_ARGS+=--without-berkeley-db
GDBM_VARS= APU_CONF_ARGS+=--with-gdbm=${LOCALBASE}
LDAP_VARS= APU_CONF_ARGS+="--with-ldap-include=${LOCALBASE}/include \
--with-ldap-lib=${LOCALBASE}/lib --with-ldap=ldap"
MYSQL_VARS= APU_CONF_ARGS+=--with-mysql=${LOCALBASE} \
APU_CPPFLAGS+="-I${LOCALBASE}/include -I${LOCALBASE}/include/mysql -DHAVE_MYSQL_H" \
LIBS+=-L${LOCALBASE}/lib/mysql
NDBM_VARS= APU_CONF_ARGS+=--with-ndbm=/usr
NSS_VARS= APU_CONF_ARGS+=--with-nss=${LOCALBASE} \
APU_CPPFLAGS+=-I${LOCALBASE}/include/nss \
LDFLAGS+=-L${LOCALBASE}/lib/nss
ODBC_VARS= APU_CONF_ARGS+=--with-odbc=${LOCALBASE}
SSL_VARS= APU_CONF_ARGS+=--with-openssl=${OPENSSLBASE} \
APU_CPPFLAGS+=-I${OPENSSLINC} \
LDFLAGS+=-L${OPENSSLLIB}
SSL_VARS_OFF= APU_CONF_ARGS+=--without-openssl
PGSQL_VARS= APU_CONF_ARGS+=--with-pgsql=${LOCALBASE} \
APU_CONF_ENV+=ac_cv_path_PGSQL_CONFIG=""
SQLITE_VARS= APU_CONF_ARGS+=--with-sqlite3=${LOCALBASE}
SQLITE_VARS_OFF= APU_CONF_ARGS+=--without-sqlite3
.for db in GDBM NDBM LDAP ODBC MYSQL NSS PGSQL
${db}_VARS_OFF= APU_CONF_ARGS+=--without-${db:tl}
.endfor
APR_CONF_ENV+= ${CONFIGURE_ENV:O:u} CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}"
# include apu specific CPPFLAGS 1st!
APU_CONF_ENV+= ${CONFIGURE_ENV:O:u} CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${APU_CPPFLAGS} ${CPPFLAGS}"
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MSSL} || ${PORT_OPTIONS:MNSS}
APU_CONF_ARGS+= --with-crypto
.else
APU_CONF_ARGS+= --without-crypto
.endif
.include <bsd.port.pre.mk>
post-extract:
# cleanup files not used on this platform
@${FIND} ${WRKDIR} -type f \( -name 'NWGNU*' -o -name '*.ds?' -o -name '*.dep' -o -name '*.mak' -o -name '*.win' \) -delete
post-patch:
@${REINPLACE_CMD} -e 's/OSVERSION/${OSVERSION}/g' \
${APR_WRKDIR}/configure
@${REINPLACE_CMD} -e '/recursive:/s/$$/ .MAKE/' \
${APR_WRKDIR}/build/apr_rules.mk.in
do-configure:
@${ECHO_MSG} "# ===> ${.TARGET} apr-${APR_VERSION}"
(cd ${APR_WRKDIR} && \
${SETENV} ${APR_CONF_ENV} ./configure ${APR_CONF_ARGS} ${CONFIGURE_ARGS})
@${ECHO_MSG} "# ===> ${.TARGET} apr-util-${APU_VERSION}"
(cd ${APU_WRKDIR} && \
${SETENV} ${APU_CONF_ENV} ./configure ${APU_CONF_ARGS} ${CONFIGURE_ARGS})
do-build:
@${ECHO_MSG} "# ===> ${.TARGET} apr-${APR_VERSION}"
(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS})
@${ECHO_MSG} "# ===> ${.TARGET} apr-util-${APU_VERSION}"
(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS})
pre-install:
# always create the modules directory
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/apr-util-1
${ECHO} "keep me" > ${STAGEDIR}${PREFIX}/lib/apr-util-1/.keep.me
do-install:
@${ECHO_MSG} "# ===> ${.TARGET} apr-${APR_VERSION}"
(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${INSTALL_TARGET} ${MAKE_ARGS})
@${ECHO_MSG} "# ===> ${.TARGET} apr-util-${APU_VERSION}"
(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${INSTALL_TARGET} ${MAKE_ARGS})
-${FIND} ${STAGEDIR}${PREFIX}/lib/ -name \*.so | ${XARGS} ${STRIP_CMD}
do-test:
@${ECHO_MSG} "# ===> ${.TARGET} apr-${APR_VERSION}"
-(cd ${APR_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} test)
@${ECHO_MSG} "# ===> ${.TARGET} apr-util-${APU_VERSION}"
-(cd ${APU_WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} test)
#regression-test: test
rpfl: configure
# maintainer only: strip PID from logs (better compare)
${SED} -i '' -E 's|^configure:[0-9]+:|configure:_pid_:|g' ${APR_WRKDIR}/config.log
${SED} -i '' -E 's|^configure:[0-9]+:|configure:_pid_:|g' ${APU_WRKDIR}/config.log
.include <bsd.port.post.mk>