Files
ports/textproc/libxml2/Makefile
T
Charlie Li 57dd5abd60 textproc/{,py-}libxml2: switch back to autotools
See notes in Makefile and linked PRs.

While here, disable the ICU option by default. CFLAGS for libicu
are passed to libxml2's consumers when the option is enabled. As
icu's API is not stable between versions, PORTREVISION bumps can
get missed.

Additionally, properly exclude all OPTIONS from py-libxml2 and
prevent do-configure from unnecessarily running.

Co-authored-by: diizzy
PR: 262853, 262940, 262877
Approved by: fluffy (mentor)
2022-04-10 15:11:40 -04:00

76 lines
2.4 KiB
Makefile

# Created by: Yukihiro Nakai <Nakai@technologist.com>
PORTNAME= libxml2
DISTVERSION= 2.9.13
PORTREVISION?= 2
CATEGORIES?= textproc gnome
MASTER_SITES= GNOME/sources/${PORTNAME}/${DISTVERSION:R}/
DIST_SUBDIR= gnome
MAINTAINER= desktop@FreeBSD.org
COMMENT?= XML parser library for GNOME
LICENSE= MIT
# Upstream offers CMake in addition to autotools, but we use the latter.
# CMake is a heavy build system, heavier than autotools, and this
# port has many consumers of its core functionality. Some such
# consumers, especially when optioned appropriately (and users have
# a right to do so), may become dependencies of dependencies of CMake.
# Additionally, some consumers rely on symbol versioning that CMake
# does not support (as of Q2 2022) without a hack. Please consider the
# effects of the ecosystem and technical merits before considering
# switching build systems again. Any changes to this end not dogfooded
# thoroughly may be reverted.
USES+= cpe iconv libtool localbase pathfix pkgconfig tar:xz
CPE_VENDOR= xmlsoft
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
INSTALL_TARGET= install-strip
TEST_TARGET= check
PLIST_SUB+= LIBVERSION=${DISTVERSION}
# Don't build with Python support unless requested
CONFIGURE_ARGS= --with-html-dir=${PREFIX}/share/doc \
--with-html-subdir=${PORTNAME} \
--with-lzma=/usr \
--${LIBXML2_SLAVE:Dwith:Uwithout}-python${LIBXML2_SLAVE:D=${PYTHON_CMD}:U}
OPTIONS_DEFINE= DOCS ICU MEM_DEBUG READLINE THREAD_ALLOC
OPTIONS_DEFAULT= READLINE
OPTIONS_SUB= yes
MEM_DEBUG_DESC= Memory debugging (DEVELOPERS ONLY!)
READLINE_DESC= History for xmllint
THREAD_ALLOC_DESC= Per-thread memory (DEVELOPERS ONLY!)
ICU_LIB_DEPENDS= libicudata.so:devel/icu
ICU_CONFIGURE_WITH= icu
MEM_DEBUG_CONFIGURE_WITH= mem-debug
READLINE_LIB_DEPENDS= libreadline.so:devel/readline
READLINE_CONFIGURE_WITH= history \
readline
THREAD_ALLOC_CONFIGURE_WITH= thread-alloc
post-patch:
.for f in catalog.c xmlcatalog.c xmllint.c doc/xmllint.1
@${REINPLACE_CMD} -e \
's|/etc/xml/catalog|${LOCALBASE}/share/xml/catalog|g; \
s|/etc/sgml/catalog|${LOCALBASE}/share/sgml/catalog|g' \
${WRKSRC}/${f}
.endfor
.if !defined(LIBXML2_SLAVE)
post-install:
# Documentation should be in DOCSDIR
@${MV} ${STAGEDIR}${PREFIX}/share/gtk-doc/html/libxml2 \
${STAGEDIR}${DOCSDIR}/devhelp
@${RM} -r ${STAGEDIR}${PREFIX}/share/gtk-doc
# Install remaining documentation that's not connected to autotools
${INSTALL_MAN} ${WRKSRC}/doc/*.html ${STAGEDIR}${DOCSDIR}
.endif
.include <bsd.port.mk>