buildroot/package/zsh/zsh.mk

81 lines
2.2 KiB
Makefile

################################################################################
#
# zsh
#
################################################################################
ZSH_VERSION = 5.9
ZSH_SITE = http://www.zsh.org/pub
ZSH_SOURCE = zsh-$(ZSH_VERSION).tar.xz
ZSH_DEPENDENCIES = ncurses
ZSH_CONF_OPTS = --bindir=/bin
ZSH_CONF_ENV = zsh_cv_sys_nis=no zsh_cv_sys_nis_plus=no
ZSH_LICENSE = MIT-like
ZSH_LICENSE_FILES = LICENCE
ZSH_CPE_ID_VENDOR = zsh
# zsh uses TRY_RUN to determine these
ZSH_CONF_OPTS += \
zsh_cv_long_is_64_bit=$(if $(BR2_ARCH_IS_64),yes,no) \
zsh_cv_off_t_is_64_bit=yes \
zsh_cv_64_bit_type='long long' \
zsh_cv_64_bit_utype='unsigned long long' \
zsh_cv_printf_has_lld=yes
ifeq ($(BR2_PACKAGE_GDBM),y)
ZSH_CONF_OPTS += --enable-gdbm
ZSH_DEPENDENCIES += gdbm
else
ZSH_CONF_OPTS += --disable-gdbm
endif
ifeq ($(BR2_PACKAGE_LIBCAP),y)
ZSH_CONF_OPTS += --enable-cap
ZSH_DEPENDENCIES += libcap
else
ZSH_CONF_OPTS += --disable-cap
endif
ifeq ($(BR2_PACKAGE_PCRE),y)
ZSH_CONF_OPTS += --enable-pcre
ZSH_CONF_ENV += ac_cv_prog_PCRECONF=$(STAGING_DIR)/usr/bin/pcre-config
ZSH_DEPENDENCIES += pcre
else
ZSH_CONF_OPTS += --disable-pcre
endif
ifeq ($(BR2_STATIC_LIBS),)
# zsh uses TRY_RUN to determine these
ZSH_CONF_OPTS += \
zsh_cv_shared_environ=yes \
zsh_cv_shared_tgetent=yes \
zsh_cv_shared_tigetstr=yes \
zsh_cv_sys_dynamic_clash_ok=yes \
zsh_cv_sys_dynamic_rtld_global=yes \
zsh_cv_sys_dynamic_execsyms=yes \
zsh_cv_sys_dynamic_strip_exe=yes \
zsh_cv_sys_dynamic_strip_lib=yes
endif
# regex is commonly used by completion scripts, link it statically
define ZSH_USE_STATIC_REGEX_MODULE
$(SED) 's,echo dynamic,echo static,' $(@D)/Src/Modules/regex.mdd
endef
ZSH_POST_PATCH_HOOKS += ZSH_USE_STATIC_REGEX_MODULE
# Add /bin/zsh to /etc/shells otherwise some login tools like dropbear
# can reject the user connection. See man shells.
define ZSH_ADD_ZSH_TO_SHELLS
grep -qsE '^/bin/zsh$$' $(TARGET_DIR)/etc/shells \
|| echo "/bin/zsh" >> $(TARGET_DIR)/etc/shells
endef
ZSH_TARGET_FINALIZE_HOOKS += ZSH_ADD_ZSH_TO_SHELLS
# Remove versioned zsh-x.y.z binary taking up space
define ZSH_TARGET_INSTALL_FIXUPS
rm -f $(TARGET_DIR)/bin/zsh-$(ZSH_VERSION)
endef
ZSH_POST_INSTALL_TARGET_HOOKS += ZSH_TARGET_INSTALL_FIXUPS
$(eval $(autotools-package))