freebsd-ports/shells/zsh/Makefile
Baptiste Daroussin ede4dd7610 shells/zsh: remove the modification of the configure script
We used to modify the configure script to avoid zsh to link against
librt because clock_gettime on FreeBSD is in libc not librt.

It's been a while that we are configuring zsh with the --as-needed
linker flag which means now even if -lrt is passed we will not end
up linked to it librt anymore.

besides, modifying the configure script at the patch phase makes it
newer than stamp.h.in which results in the build system triggering a
regeneration of itself (hence the USES= autoreconf we had), not
touching anymore that script can remove the need for USES=autoreconf
and the load if build dependencies it drags in

Removing the USES=autoreconf highlights also the lack of build
dependency on perl which is needed to be able to the help files for
 run-help to work on builtins. this is fixed now
2022-08-03 15:59:19 +02:00

127 lines
3.6 KiB
Makefile

PORTNAME= zsh
DISTVERSION= 5.9
CATEGORIES= shells
MASTER_SITES= https://www.zsh.org/pub/ \
SF \
https://www.zsh.org/pub/:doc \
SF/${PORTNAME}/${PORTNAME}-doc/${PORTVERSION}:doc
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= bapt@FreeBSD.org
COMMENT= The Z shell
LICENSE= ZSH
LICENSE_NAME= ZSH license
LICENSE_FILE= ${WRKSRC}/LICENCE
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
MAKE_JOBS_UNSAFE= yes
USES= cpe iconv localbase:ldflags ncurses perl5 shebangfix tar:xz
USE_PERL5= build
SHEBANG_LANG= zsh
zsh_OLD_CMD= zsh # shebang appears as /bin/zsh and just zsh
SHEBANG_FILES= Functions/Calendar/* \
Functions/Misc/*
CONFIGURE_ARGS= --with-tcsetpgrp \
--enable-function-subdirs \
--enable-maildir-support \
--enable-multibyte \
--enable-zsh-secure-free \
--sysconfdir=${PREFIX}/etc
# fix PREFIX != LOCALBASE
CONFIGURE_ARGS+=--disable-site-fndir \
--enable-additional-fpath=${DATADIR}/site-functions
CONFIGURE_ENV+= zsh_cv_sys_path_dev_fd=no \
ac_cv_header_sys_capability_h=no
GNU_CONFIGURE= yes
CPPFLAGS+= -DBOOL_DEFINED
LDFLAGS+= -Wl,--as-needed
TEST_TARGET= test
OPTIONS_DEFINE= DEBUG ETCDIR GDBM MEM PCRE STATIC \
DOCS EXAMPLES
OPTIONS_SUB= yes
ETCDIR_DESC= System-wide defaults in /etc (instead of $${PREFIX}/etc)
GDBM_DESC= Enable GDBM support (GPL)
MEM_DESC= Enable zsh-mem options
GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
DEBUG_CONFIGURE_ENABLE= zsh-debug
ETCDIR_CONFIGURE_OFF= --enable-etcdir=${PREFIX}/etc
GDBM_CONFIGURE_ENABLE= gdbm
MEM_CONFIGURE_ENABLE= zsh-mem
PCRE_CONFIGURE_ENABLE= pcre
## Some modules can only be built as a shared library.
## If you enable STATIC, you may get strange errors if you, a script,
## or a plugin tries to use the regex module.
STATIC_LDFLAGS= -static
STATIC_CONFIGURE_ON= --disable-dynamic --with-term-lib="tinfow tinfo"
STATIC_CONFIGURE_OFF= --enable-dynamic --with-term-lib="ncursesw ncurses"
DOCS= LICENCE META-FAQ README \
Etc/BUGS Etc/CONTRIBUTORS Etc/FAQ Etc/completion-style-guide \
Doc/zsh*.html Doc/zsh.dvi
DOCS_DISTFILES= ${DISTNAME}-doc${EXTRACT_SUFX}:doc
PORTDOCS= *
PORTEXAMPLES= zlogin zshenv zshrc
ZSH_VER= ${PORTVERSION}
PLIST_SUB+= ZSH_VER="${ZSH_VER}"
SUB_FILES= pkg-message
.include <bsd.port.pre.mk>
.if empty(ICONV_LIB)
CONFIGURE_ENV+= ac_cv_lib_iconv_libiconv=no
.endif
post-patch:
@${REINPLACE_CMD} -e "s|/etc/|${LOCALBASE}/etc/|" \
${WRKSRC}/Functions/MIME/zsh-mime-setup
${RM} ${WRKSRC}/Doc/help.txt
post-patch-STATIC-on:
@${REINPLACE_CMD} -e "s|link=dynamic|link=either|" \
${WRKSRC}/Src/Modules/*.mdd
post-build:
# Fix ".so" macro problem by using "soelim" command.
# soelim needs the manpages in man1/
${LN} -sf ${WRKSRC}/Doc ${WRKSRC}/man1
${MV} ${WRKSRC}/Doc/zshall.1 ${WRKSRC}/Doc/zshall.1.source
(cd ${WRKSRC} && ${SOELIM} -r ${WRKSRC}/Doc/zshall.1.source > \
${WRKSRC}/Doc/zshall.1)
post-install:
${MKDIR} ${STAGEDIR}${DATADIR}/site-functions
${LN} -f ${STAGEDIR}${PREFIX}/bin/zsh ${STAGEDIR}${PREFIX}/bin/rzsh
# Precompile completions and functions
(${STAGEDIR}${PREFIX}/bin/zsh -fc ' \
setopt extendedglob nomark_dirs; \
cd ${STAGEDIR}/${DATADIR}/${ZSH_VER} ; \
rm -f functions/**/*.orig ; \
for i in functions/**/*(/) ; do \
zcompile -U -M $$i.zwc $$i/*~*.zwc(^/) ; \
${CHMOD} 644 $$i.zwc ; \
done')
post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
(cd ${WRKSRC}/StartupFiles && ${INSTALL_DATA} ${PORTEXAMPLES} ${STAGEDIR}${EXAMPLESDIR})
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})
.include <bsd.port.post.mk>