packages/utils/vim/Makefile
Karel Kočí 46c058468a vim: variants conflict with each other
This adds conflicts between the variants,
because they provide the same files, and it should not be
possible to install them side by side. Otherwise, it might happen that
half files would be from one variant and the other half from the
other.

Also, adds provides as if you request to install ``vim`` and
``vim-full``, then the request could be satisfied even they collide,
because ``vim-full`` provides ``vim`` package.

Signed-off-by: Karel Kočí <cynerd@email.cz>
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
[add commit message]
2022-08-23 21:17:08 -07:00

250 lines
5.7 KiB
Makefile

#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=vim
PKG_VERSION:=8.2
PKG_RELEASE:=5
VIMVER:=82
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://ftp.vim.org/pub/vim/unix
PKG_HASH:=f087f821831b4fece16a0461d574ccd55a8279f64d635510a1e10225966ced3b
PKG_MAINTAINER:=Marko Ratkaj <markoratkaj@gmail.com>
PKG_CPE_ID:=cpe:/a:vim:vim
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(VIMVER)
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/vim/Default
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+libncurses
TITLE:=Vi IMproved - enhanced vi editor
URL:=http://www.vim.org/
SUBMENU:=Editors
endef
define Package/vim
$(call Package/vim/Default)
TITLE+= (Tiny)
endef
define Package/vim-full
$(call Package/vim/Default)
TITLE+= (Normal)
PROVIDES:=vim
CONFLICTS:=vim
endef
define Package/vim-fuller
$(call Package/vim/Default)
TITLE+= (Big)
PROVIDES:=vim vim-full
CONFLICTS:=vim vim-full
endef
define Package/vim-runtime
$(call Package/vim/Default)
TITLE+= (runtime files)
endef
define Package/vim-help
$(call Package/vim/Default)
TITLE+= (help files)
endef
define Package/xxd
SECTION:=utils
CATEGORY:=Utilities
TITLE:=make a hexdump or do the reverse
URL:=http://www.vim.org/
endef
define Package/vim-full/conffiles
/usr/share/vim/vimrc
/root/.vimrc
endef
define Package/vim/conffiles
/usr/share/vim/vimrc
/root/.vimrc
endef
define Package/vim/description
Vim is an almost compatible version of the UNIX editor Vi.
(Tiny build)
endef
define Package/vim-full/description
Vim is an almost compatible version of the UNIX editor Vi.
(Normal build)
endef
define Package/vim-fuller/description
Vim is an almost compatible version of the UNIX editor Vi.
(Big build)
endef
define Package/vim-runtime/description
Vim is an almost compatible version of the UNIX editor Vi.
(Runtime files)
endef
define Package/vim-help/description
Vim is an almost compatible version of the UNIX editor Vi.
(Help files)
endef
define Package/xxd/description
xxd creates a hex dump of a given file or standard input, it can also convert
a hex dump back to its original binary form.
endef
CONFIGURE_ARGS += \
--disable-gui \
--disable-gtktest \
--disable-xim \
--without-x \
--disable-netbeans \
--disable-cscope \
--disable-gpm \
--disable-acl \
--disable-selinux \
--with-tlib=ncurses \
--with-compiledby="non-existent-hostname-compiled"
CONFIGURE_VARS += \
ac_cv_header_elf_h=no \
vim_cv_getcwd_broken=no \
vim_cv_memmove_handles_overlap=yes \
vim_cv_stat_ignores_slash=yes \
vim_cv_tgetent=zero \
vim_cv_terminfo=yes \
vim_cv_toupper_broken=no \
vim_cv_tty_group=root \
vim_cv_tty_mode=0620
ifneq ($(HOST_OS),Linux)
TARGET_PATH_PKG:=$(CURDIR)/scripts:$(TARGET_PATH_PKG)
endif
define Build/Prepare
$(call Build/Prepare/Default)
$(MAKE) -C $(PKG_BUILD_DIR)/src autoconf
endef
ifneq ($(CONFIG_PACKAGE_vim),)
define Build/Compile/vim
$(call Build/Configure/Default, \
--with-features=tiny \
)
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" all
$(CP) $(PKG_BUILD_DIR)/src/$(PKG_NAME) $(PKG_BUILD_DIR)/vim_tiny
endef
endif
ifneq ($(CONFIG_PACKAGE_vim-full),)
define Build/Compile/vim-full
$(call Build/Configure/Default, \
--with-features=normal \
)
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" all
$(CP) $(PKG_BUILD_DIR)/src/$(PKG_NAME) $(PKG_BUILD_DIR)/vim_normal
endef
endif
ifneq ($(CONFIG_PACKAGE_vim-fuller),)
define Build/Compile/vim-fuller
$(call Build/Configure/Default, \
--with-features=big \
)
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" all
$(CP) $(PKG_BUILD_DIR)/src/$(PKG_NAME) $(PKG_BUILD_DIR)/vim_big
endef
endif
ifneq ($(CONFIG_PACKAGE_xxd),)
define Build/Compile/xxd
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" all
endef
endif
define Build/Compile/vim-runtime
$(MAKE) -C $(PKG_BUILD_DIR)/src DESTDIR="$(PKG_INSTALL_DIR)" installrtbase
(cd $(PKG_INSTALL_DIR) && tar -cf $(PKG_BUILD_DIR)/docs.tar ./usr/share/vim/vim$(VIMVER)/doc)
rm -rf $(PKG_INSTALL_DIR)/usr/share/vim/vim$(VIMVER)/doc
rm -rf $(PKG_INSTALL_DIR)/usr/man
endef
define Build/Compile
$(call Build/Compile/vim)
$(call Build/Compile/vim-full)
$(call Build/Compile/vim-fuller)
$(call Build/Compile/vim-runtime)
$(call Build/Compile/xxd)
endef
define Package/vim/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/vim_tiny $(1)/usr/bin/vim
$(INSTALL_DIR) $(1)/usr/share/vim
$(INSTALL_CONF) ./files/vimrc $(1)/usr/share/vim/
endef
define Package/vim-full/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/vim_normal $(1)/usr/bin/vim
$(INSTALL_DIR) $(1)/usr/share/vim
$(LN) vim $(1)/usr/bin/vimdiff
$(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
endef
define Package/vim-fuller/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/vim_big $(1)/usr/bin/vim
$(INSTALL_DIR) $(1)/usr/share/vim
$(LN) vim $(1)/usr/bin/vimdiff
$(CP) $(PKG_INSTALL_DIR)/usr/share/vim/vim$(VIMVER) $(1)/usr/share/vim
$(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
endef
define Package/vim-runtime/install
$(CP) $(PKG_INSTALL_DIR)/* $(1)
rm -rf $(1)/usr/share/vim/vim$(VIMVER)/doc
endef
define Package/vim-help/install
tar -C $(1) -xf $(PKG_BUILD_DIR)/docs.tar
endef
define Package/xxd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/xxd/xxd $(1)/usr/bin
endef
$(eval $(call BuildPackage,vim))
$(eval $(call BuildPackage,vim-full))
$(eval $(call BuildPackage,vim-fuller))
$(eval $(call BuildPackage,vim-runtime))
$(eval $(call BuildPackage,vim-help))
$(eval $(call BuildPackage,xxd))