PORTNAME= vim-classic PORTVERSION= 8.3.0 DISTVERSIONPREFIX= v CATEGORIES= editors MASTER_SITES= https://git.sr.ht/~sircmpwn/vim-classic/archive/v${DISTVERSION}.tar.gz?dummy=/ \ https://mirror.sonologic.net/vim-classic/v${DISTVERSION}.tar.gz?dummy=/ DIST_SUBDIR= ${PORTNAME} MAINTAINER= kmartens@sonologic.se COMMENT= Fork of Vim 8.x for long-term maintenance WWW= https://vim-classic.org/ \ https://sr.ht/~sircmpwn/vim-classic/ LICENSE= VIM LICENSE_NAME= VIM License LICENSE_FILE= ${WRKSRC}/runtime/doc/uganda.txt LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept # FLAVORS are used to build various Vim GUIs. The default flavor (`vim') is # console-only. FLAVORS= console gtk2 gtk3 motif x11 tiny FLAVOR?= ${FLAVORS:[1]} # Register conflicts with all other flavors CONFLICTS_INSTALL= ${FLAVORS:N${FLAVOR}:S/^/vim-/} USES= cpe desktop-file-utils iconv ncurses pkgconfig shebangfix DATADIR= ${PREFIX}/share/vim # Vim will try to link against libcanberra if it's installed CONFIGURE_ARGS= --disable-canberra \ --enable-cscope \ --enable-gui=${GUI} \ --enable-multibyte \ --with-tlib=ncursesw MAKE_ARGS= STRIP="${STRIP_CMD}" \ VIMRCLOC=${ETCDIR} \ VIMRUNTIMEDIR=${PREFIX}/share/vim/${VIM_VER} CPE_VERSION= ${PORTVERSION:R} GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share PLIST_SUB= VIM_VER=${VIM_VER} PORTDATA= ${VIM_VER} PORTSCOUT= ignore:1 SHEBANG_FILES= runtime/tools/demoserver.py runtime/tools/efm_perl.pl VIM_VER= ${PORTNAME:R:S|-classic||g}${PORTVERSION:R:S|.||g} .for f in ${FLAVORS:Nconsole} ${f}_PKGNAMESUFFIX= -${f} .endfor # GUI flavors .if ${FLAVOR:U} == console GUI= no CONFIGURE_ARGS+= --without-x PLIST_SUB+= DESKTOP="@comment " \ GUI="@comment " .elif ${FLAVOR:U} == tiny GUI= no CONFIGURE_ARGS+= --without-x PLIST= ${.CURDIR}/pkg-plist-tiny .elif ${FLAVOR:U} == gtk2 GUI= gtk2 CONFIGURE_ARGS+= --enable-fontset \ --enable-xim PLIST_SUB+= DESKTOP="" \ GUI="" USES+= desktop-file-utils gnome xorg USE_GNOME= gdkpixbufextra gtk20 USE_XORG= ice sm x11 xpm xt .elif ${FLAVOR:U} == gtk3 GUI= gtk3 CONFIGURE_ARGS+= --enable-fontset \ --enable-xim \ --with-wayland LIB_DEPENDS+= libwayland-client.so:graphics/wayland PLIST_SUB+= DESKTOP="" \ GUI="" USES+= desktop-file-utils gnome xorg USE_GNOME= cairo gdkpixbufextra gtk30 USE_XORG= ice sm x11 xpm xt .elif ${FLAVOR:U} == motif GUI= motif CONFIGURE_ARGS+= --enable-fontset \ --enable-xim \ --with-motif=lib="${MOTIFLIB}" CONFIGURE_ENV+= MOTIFHOME=${LOCALBASE} PLIST_SUB+= DESKTOP="@comment " \ GUI="" USES+= motif xorg USE_XORG= ice sm x11 xmu xt .elif ${FLAVOR:U} == x11 GUI= x11 CONFIGURE_ARGS+= --with-x PLIST_SUB+= DESKTOP="@comment " \ GUI="@comment " USES+= xorg USE_XORG= ice sm x11 xmu xpm xt .endif .if ${FLAVOR:U} != tiny USES+= python:build CONFIGURE_ARGS+= --enable-python3interp=dynamic \ --with-python3-command=${PYTHON_CMD} . if !empty(WITH_DEBUG) CFLAGS+= -DPy_DEBUG -DPy_DEBUG_NO_PYMALLOC . endif .endif # The bulk of the OPTIONS are for normal (non-tiny) vim ### Make sure any new options are excluded below in CONSOLE/TINY OPTIONS_DEFAULT= CTAGS_BASE XXD OPTIONS_DEFINE= MAKE_JOBS NLS XTERM_SAVE XXD OPTIONS_SINGLE= CTAGS OPTIONS_SINGLE_CTAGS= CTAGS_BASE CTAGS_EXUBERANT CTAGS_UNIVERSAL OPTIONS_GROUP= LANGBIND OPTIONS_GROUP_LANGBIND= LUA PERL RUBY SCHEME TCL OPTIONS_SUB= yes # vim-tiny excludes everything except CONSOLE, MAKE_JOBS .if ${FLAVOR:U} == tiny OPTIONS_EXCLUDE:= ${OPTIONS_DEFINE:NMAKE_JOBS} ${OPTIONS_GROUP_LANGBIND} \ ${OPTIONS_SINGLE_CTAGS} ${OPTIONS_SINGLE_UI:NCONSOLE} .endif MAKE_JOBS_DESC= Enable parallel build XTERM_SAVE_DESC= Restore xterm screen after exit XXD_DESC= Install xxd hexdumper CTAGS_BASE_DESC= Use system ctags CTAGS_EXUBERANT_DESC= Use exctags instead of ctags CTAGS_UNIVERSAL_DESC= Use uctags instead of ctags # GENERAL OPTIONS CTAGS_EXUBERANT_RUN_DEPENDS= exctags:devel/ctags CTAGS_UNIVERSAL_RUN_DEPENDS= uctags:devel/universal-ctags MAKE_JOBS_VARS_OFF= MAKE_JOBS_UNSAFE=yes NLS_CONFIGURE_ENABLE= nls NLS_USES= gettext XXD_RUN_DEPENDS= xxd:sysutils/xxd # LANGUAGE BINDINGS LANGBIND_DESC= Optional language bindings LUA_CONFIGURE_ENABLE= luainterp LUA_CONFIGURE_WITH= lua-prefix=${LOCALBASE} LUA_USES= lua PERL_CONFIGURE_ENABLE= perlinterp PERL_USES= perl5 RUBY_CONFIGURE_ENABLE= rubyinterp RUBY_USES= ruby SCHEME_DESC= MzScheme (Racket) bindings SCHEME_CONFIGURE_ENABLE= mzschemeinterp SCHEME_BUILD_DEPENDS= mzscheme:lang/racket SCHEME_RUN_DEPENDS= ${SCHEME_BUILD_DEPENDS} TCL_CONFIGURE_ENABLE= tclinterp TCL_CONFIGURE_WITH= tclsh=tclsh${TCL_VER} TCL_USES= tcl .include post-extract: ${INSTALL_DATA} ${FILESDIR}/vietnamese_viscii.vim ${WRKSRC}/runtime/keymap post-patch: ${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|' ${WRKSRC}/src/feature.h ${REINPLACE_CMD} -e 's|-liconv|${ICONV_LIB}|g; s|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/src/auto/configure post-configure: # Needed when devel/libsysinfo is installed: ${REINPLACE_CMD} -e '/^#define HAVE_SYSINFO/ d' ${WRKSRC}/src/auto/config.h do-test: ${MAKE_CMD} -C ${WRKSRC} test .if ${FLAVOR:U} == tiny do-install: ${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER} ${INSTALL_PROGRAM} ${WRKSRC}/src/vim ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${WRKSRC}/runtime/defaults.vim ${STAGEDIR}${DATADIR}/${VIM_VER} ${INSTALL_DATA} ${FILESDIR}/defaults_freebsd.vim ${STAGEDIR}${DATADIR}/${VIM_VER} ${INSTALL_MAN} ${WRKSRC}/runtime/doc/vim.1 ${STAGEDIR}${PREFIX}/share/man/man1 .else # flavor != tiny post-install: ${INSTALL_DATA} ${FILESDIR}/defaults_freebsd.vim ${STAGEDIR}${DATADIR}/${VIM_VER} ${RM} ${STAGEDIR}${PREFIX}/bin/ex ${RM} ${STAGEDIR}${PREFIX}/bin/view ${RM} ${STAGEDIR}${PREFIX}/bin/xxd ${FIND} ${STAGEDIR}${PREFIX} -name xxd.1 -delete . for F in eview evim gview gvim gvimdiff rgview rgvim rview rvim vimdiff ${LN} -sf vim ${STAGEDIR}${PREFIX}/bin/$F . endfor # OPTIONS post-patch-CTAGS_BASE-on: ${FIND} ${WRKSRC}/runtime -name 'menu*.vim' | ${XARGS} ${GREP} -l 'ctags -R' | \ ${XARGS} ${REINPLACE_CMD} -Ee 's!ctags -R ?\.!${FIND} . -type f \\| ${XARGS} ctags!g' post-patch-CTAGS_EXUBERANT-on: ${FIND} ${WRKSRC}/runtime -name 'menu*.vim' | ${XARGS} ${GREP} -l 'ctags -R' | \ ${XARGS} ${REINPLACE_CMD} -e 's|ctags -R|exctags -R|g' post-patch-CTAGS_UNIVERSAL-on: ${FIND} ${WRKSRC}/runtime -name 'menu*.vim' | ${XARGS} ${GREP} -l 'ctags -R' | \ ${XARGS} ${REINPLACE_CMD} -e 's|ctags -R|uctags -R|g' post-patch-LUA-on: ${REINPLACE_CMD} -e 's|set dummy lua;|set dummy ${LUA_CMD};|g' ${WRKSRC}/src/auto/configure ${REINPLACE_CMD} -e '/$$LUA_LIBS/ s|^|LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}";|' ${WRKSRC}/src/auto/configure ${REINPLACE_CMD} -e '/LUA_CFLAGS=/s|".*"|"-I${LUA_INCDIR}"|' ${WRKSRC}/src/auto/configure post-patch-XTERM_SAVE-on: ${REINPLACE_CMD} -e '/FEAT_XTERM_SAVE/ s|.*|#define FEAT_XTERM_SAVE|' ${WRKSRC}/src/feature.h post-install-NLS-off: ${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER}/lang ${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap ${INSTALL_DATA} ${WRKSRC}/runtime/keymap/* ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap .endif #!defined(TINY) .include