diff --git a/.gitignore b/.gitignore index 4e248b1..6357090 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ *.sw? tmp/ + +work/ +vim*-kaoriya-*.tar.bz2 diff --git a/VERSION b/VERSION index 1a908bf..3c4501b 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ -VIM_VER = 8.2.1287 -PATCHSET_VER = 20200724 +VIM_VER = 9.0.0814 +PATCHSET_VER = 20240207 -VIM_VER_SHORT = 82 +VIM_VER_SHORT = 90 # vim:set ts=8 sts=8 sw=8 tw=0 noet ft=make: diff --git a/build/freebsd/Makefile b/build/freebsd/Makefile index 8819225..de8ba86 100644 --- a/build/freebsd/Makefile +++ b/build/freebsd/Makefile @@ -1,6 +1,8 @@ -ROOT_DIR = ../.. +DESTDIR = $(.CURDIR)/work +ROOT_DIR = $(.CURDIR)/../.. -include $(ROOT_DIR)/VERSION +.include "$(ROOT_DIR)/VERSION" +VERSION = $(VIM_VER)-$(PATCHSET_VER) VIM_SRCDIR = $(ROOT_DIR)/vim/src @@ -8,21 +10,47 @@ VIM_CONFIG = --with-features=huge \ --enable-gui=no \ --enable-fail-if-missing -VIM_DIR = /usr/local/share/vim -VIMRUNTIME_DIR = $(VIM_DIR)/vim$(VIM_VER_SHORT) +VIM_DIR = $(DESTDIR)/usr/local/share/vim +VIMRUNTIME_DIR = $(DESTDIR)$(VIM_DIR)/vim$(VIM_VER_SHORT) -default: vim-build +OS_TARGET = freebsd14 +VIM_PKGFILE = vim$(VIM_VER_SHORT)-kaoriya-$(OS_TARGET)-$(VERSION).tar.bz2 -install: vim-install kaoriya-install autofmt-install govim-install +############################################################################## + +version: + @echo ROOT_DIR = $(ROOT_DIR) + @echo DESTDIR = $(DESTDIR) + @echo VERSION = $(VERSION) + @echo OS_TARGET = $(OS_TARGET) + +package: + rm -f $(VIM_PKGFILE) + tar caf $(VIM_PKGFILE) --uid 0 --gid 0 --strip-components 1 -C $(DESTDIR) . + +package-clean: + rm -rf $(DESTDIR) + +package-install-all: vim-install-auto kaoriya-install autofmt-install govim-install + +package-auto: package-clean package-install-all package + +############################################################################## + +vim-patch: + cd $(VIM_SRCDIR) && guilt pop -a && guilt push -a + +vim-patch-reverse: + cd $(VIM_SRCDIR) && guilt pop -a vim-configure: cd $(VIM_SRCDIR) && ./configure $(VIM_CONFIG) vim-build: - cd $(VIM_SRCDIR) && make + cd $(VIM_SRCDIR) && make -j4 vim-install: - cd $(VIM_SRCDIR) && make install + cd $(VIM_SRCDIR) && make DESTDIR=$(DESTDIR) install vim-clean: cd $(VIM_SRCDIR) && make clean @@ -30,8 +58,9 @@ vim-clean: vim-distclean: cd $(VIM_SRCDIR) && make distclean -vim-install-auto: vim-distclean vim-configure vim-build - cd $(VIM_SRCDIR) && sudo $(MAKE) install +vim-install-auto: vim-patch vim-configure vim-build vim-install vim-distclean vim-patch-reverse + +############################################################################## KAORIYA_SRCDIR = $(ROOT_DIR)/kaoriya KAORIYA_INSTDIR = $(VIM_DIR) @@ -40,13 +69,15 @@ kaoriya-install: @cd $(KAORIYA_SRCDIR)/vim && \ for d in `find . -type d -not -name '.*'`; do \ echo mkdir: $$d ; \ - install -d -o root -g wheel -m 0755 $(KAORIYA_INSTDIR)/$$d || exit 1 ; \ + install -d -m 0755 $(KAORIYA_INSTDIR)/$$d || exit 1 ; \ done ; \ for f in `find . -type f -not -name '.*'`; do \ echo install: $$f ; \ - install -o root -g wheel -m 0666 $$f $(KAORIYA_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(KAORIYA_INSTDIR)/$$f || exit 1 ; \ done +############################################################################## + AUTOFMT_SRCDIR = $(ROOT_DIR)/contrib/autofmt AUTOFMT_INSTDIR = $(VIM_DIR)/plugins/autofmt @@ -54,13 +85,15 @@ autofmt-install: @cd $(AUTOFMT_SRCDIR) && \ for d in `find . -type d -not -name '.*'`; do \ echo mkdir: $$d ; \ - install -d -o root -g wheel -m 0755 $(AUTOFMT_INSTDIR)/$$d || exit 1 ; \ + install -d -m 0755 $(AUTOFMT_INSTDIR)/$$d || exit 1 ; \ done ; \ for f in `find . -type f -not -name '.*' `; do \ echo install: $$f ; \ - install -o root -g wheel -m 0666 $$f $(AUTOFMT_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(AUTOFMT_INSTDIR)/$$f || exit 1 ; \ done +############################################################################## + GOVIM_SRCDIR = $(ROOT_DIR)/contrib/go-vim GOVIM_INSTDIR = $(VIM_DIR)/plugins/golang @@ -68,9 +101,9 @@ govim-install: @cd $(GOVIM_SRCDIR) && \ for d in `find . -type d -not -name '.*'`; do \ echo mkdir: $$d ; \ - install -d -o root -g wheel -m 0755 $(GOVIM_INSTDIR)/$$d || exit 1 ; \ + install -d -m 0755 $(GOVIM_INSTDIR)/$$d || exit 1 ; \ done ; \ for f in `find . -type f -not -name '.*' `; do \ echo install: $$f ; \ - install -o root -g wheel -m 0666 $$f $(GOVIM_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(GOVIM_INSTDIR)/$$f || exit 1 ; \ done diff --git a/build/freebsd/Makefile1.mk b/build/freebsd/Makefile1.mk new file mode 100644 index 0000000..8819225 --- /dev/null +++ b/build/freebsd/Makefile1.mk @@ -0,0 +1,76 @@ +ROOT_DIR = ../.. + +include $(ROOT_DIR)/VERSION + +VIM_SRCDIR = $(ROOT_DIR)/vim/src + +VIM_CONFIG = --with-features=huge \ + --enable-gui=no \ + --enable-fail-if-missing + +VIM_DIR = /usr/local/share/vim +VIMRUNTIME_DIR = $(VIM_DIR)/vim$(VIM_VER_SHORT) + +default: vim-build + +install: vim-install kaoriya-install autofmt-install govim-install + +vim-configure: + cd $(VIM_SRCDIR) && ./configure $(VIM_CONFIG) + +vim-build: + cd $(VIM_SRCDIR) && make + +vim-install: + cd $(VIM_SRCDIR) && make install + +vim-clean: + cd $(VIM_SRCDIR) && make clean + +vim-distclean: + cd $(VIM_SRCDIR) && make distclean + +vim-install-auto: vim-distclean vim-configure vim-build + cd $(VIM_SRCDIR) && sudo $(MAKE) install + +KAORIYA_SRCDIR = $(ROOT_DIR)/kaoriya +KAORIYA_INSTDIR = $(VIM_DIR) + +kaoriya-install: + @cd $(KAORIYA_SRCDIR)/vim && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -o root -g wheel -m 0755 $(KAORIYA_INSTDIR)/$$d || exit 1 ; \ + done ; \ + for f in `find . -type f -not -name '.*'`; do \ + echo install: $$f ; \ + install -o root -g wheel -m 0666 $$f $(KAORIYA_INSTDIR)/$$f || exit 1 ; \ + done + +AUTOFMT_SRCDIR = $(ROOT_DIR)/contrib/autofmt +AUTOFMT_INSTDIR = $(VIM_DIR)/plugins/autofmt + +autofmt-install: + @cd $(AUTOFMT_SRCDIR) && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -o root -g wheel -m 0755 $(AUTOFMT_INSTDIR)/$$d || exit 1 ; \ + done ; \ + for f in `find . -type f -not -name '.*' `; do \ + echo install: $$f ; \ + install -o root -g wheel -m 0666 $$f $(AUTOFMT_INSTDIR)/$$f || exit 1 ; \ + done + +GOVIM_SRCDIR = $(ROOT_DIR)/contrib/go-vim +GOVIM_INSTDIR = $(VIM_DIR)/plugins/golang + +govim-install: + @cd $(GOVIM_SRCDIR) && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -o root -g wheel -m 0755 $(GOVIM_INSTDIR)/$$d || exit 1 ; \ + done ; \ + for f in `find . -type f -not -name '.*' `; do \ + echo install: $$f ; \ + install -o root -g wheel -m 0666 $$f $(GOVIM_INSTDIR)/$$f || exit 1 ; \ + done diff --git a/build/freebsd/README.md b/build/freebsd/README.md new file mode 100644 index 0000000..b5ee43c --- /dev/null +++ b/build/freebsd/README.md @@ -0,0 +1,19 @@ +# for FreeBSD + +1. Create a package + + ```console + $ make package-auto + ``` + +2. Copy to a target machine (OPTIONAL) + + ```console + $ scp vim90-kaoriya-freebsd13-9.0.0814-20221002.tar.bz2 foobar@machine:tmp + ``` + +3. Install as root + + ```console + $ sudo tar xvf vim90-kaoriya-freebsd13-9.0.0814-20221002.tar.bz2 -C / + ``` diff --git a/build/msvc/.gitignore b/build/msvc/.gitignore index a143ac6..a7a91c9 100644 --- a/build/msvc/.gitignore +++ b/build/msvc/.gitignore @@ -1,4 +1,5 @@ /*.out /*.sln /*.suo +/.vs/ /target/ diff --git a/build/msvc/9A-daily-build.bat b/build/msvc/9A-daily-build.bat new file mode 100644 index 0000000..1e8ff62 --- /dev/null +++ b/build/msvc/9A-daily-build.bat @@ -0,0 +1,50 @@ +@ECHO OFF + +SET INSTALL_DIR=D:\Vim\daily + +CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 +CALL tools\command-common.bat + +CD "%VIMDIR%" + +REM Catcn up Vim's update +%GUILTCMD% pop -a +git fetch -p +git merge --ff-only @{u} + +REM Update VIM_VER in ..\..\VERSION + +SET TEMP_PATCH_NUM=%TEMP%\%RANDOM%_vim_patch_num.txt +sed -ne '/^static int included_patches/,/^\s*[0-9]\+,$/p' src/version.c | tail -1 | tr -cd 0123456789 | xargs printf '%%04d' > %TEMP_PATCH_NUM% +SET /P PATCH_NUM=<%TEMP_PATCH_NUM% +DEL /F %TEMP_PATCH_NUM% +sed -i -e 's/^\(VIM_VER\s*=\s*[0-9]\+\.[0-9]\+\.\)[0-9]\+/\1%PATCH_NUM%/' ..\VERSION + +REM Apply patches with guilt +%GUILTCMD% push -a + +CD "%CURDIR%" +REM update VIM_VER +CALL tools\command-common.bat + +REM Build Vim +nmake /NOLOGO build-release + +REM Test +nmake /NOLOGO vim-test + +REM Create archives +nmake /NOLOGO build-release-archive +nmake /NOLOGO build-release-clean + +REM Install x64 binary to local +7za x -o"%INSTALL_DIR%" -y "target\%RELZIP_W64%" + +REM Clean patches with guilt +CD "%VIMDIR%" +%GUILTCMD% pop -a +CD "%CURDIR%" + +REM END +PAUSE +EXIT /B 0 diff --git a/build/msvc/9B-daily-install.bat b/build/msvc/9B-daily-install.bat new file mode 100644 index 0000000..e11f6b2 --- /dev/null +++ b/build/msvc/9B-daily-install.bat @@ -0,0 +1,10 @@ +@ECHO OFF + +CD +SET INSTALL_DIR=D:\Vim + +CALL tools\command-common.bat +7za x -o"%INSTALL_DIR%" -y "target\%RELZIP_W64%" + +PAUSE +EXIT /B 0 diff --git a/build/msvc/Makefile b/build/msvc/Makefile index 43d79a5..77f1abf 100644 --- a/build/msvc/Makefile +++ b/build/msvc/Makefile @@ -58,39 +58,44 @@ VIMDLL=$(VIMDLL_BASE).dll MSVC_VERSION=msvc9 MSVCRT_SUBDIR=Microsoft.VC90.CRT MSVCRT_FILES=msvcr90.dll +MSVCRT_COPY=1 !ELSEIF "$(_NMAKE_VER)" >= "10." && "$(_NMAKE_VER)" < "11." MSVC_VERSION=msvc10 MSVCRT_SUBDIR=Microsoft.VC100.CRT MSVCRT_FILES=msvcr100.dll +MSVCRT_COPY=1 !ELSEIF "$(_NMAKE_VER)" >= "11." && "$(_NMAKE_VER)" < "12." MSVC_VERSION=msvc11 MSVCRT_SUBDIR=Microsoft.VC110.CRT MSVCRT_FILES=msvcr110.dll +MSVCRT_COPY=1 !ELSEIF "$(_NMAKE_VER)" >= "12." && "$(_NMAKE_VER)" < "13." MSVC_VERSION=msvc12 MSVCRT_SUBDIR=Microsoft.VC120.CRT MSVCRT_FILES=msvcr120.dll +MSVCRT_COPY=1 !ELSEIF "$(_NMAKE_VER)" >= "14." && "$(_NMAKE_VER)" < "15." MSVC_VERSION=msvc14 MSVCRT_SUBDIR=Microsoft.VC140.CRT MSVCRT_FILES=vcruntime140.dll +MSVCRT_COPY=0 !ELSE !ERROR Unknown MSVC version: $(_NMAKE_VER) !ENDIF archive: - $(MAKE) archive-pre - $(MAKE) archive-dist + $(MAKE) /$(MAKEFLAGS) archive-pre + $(MAKE) /$(MAKEFLAGS) archive-dist archive-pre: - $(MAKE) "$(INSTALL_DIR)\bin\iconv.dll" - $(MAKE) "$(INSTALL_DIR)\bin\intl.dll" - $(MAKE) "$(INSTALL_DIR)\bin\$(VIMPROC_DLL)" - $(MAKE) "$(INSTALL_DIR)\bin\lua51.dll" - $(MAKE) "$(INSTALL_DIR)\bin\winpty-agent.exe" - $(MAKE) vim-clean vim-install - $(MAKE) vim-mo-install vim-patch-install - $(MAKE) langja-install + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\iconv.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\intl.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\$(VIMPROC_DLL)" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\lua51.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\winpty-agent.exe" + $(MAKE) /$(MAKEFLAGS) vim-clean vim-install + $(MAKE) /$(MAKEFLAGS) vim-mo-install vim-patch-install + $(MAKE) /$(MAKEFLAGS) langja-install contrib: $(INSTALL_DIR)\bin\iconv.dll $(INSTALL_DIR)\bin\intl.dll \ $(INSTALL_DIR)\lib\libXpm.lib \ @@ -308,23 +313,23 @@ vim-build: vim-test: vim-build cd "$(VIM_DIR)\src\testdir" - nmake /NOLOGO /F Make_dos.mak clean - -nmake /NOLOGO /F Make_dos.mak VIMPROG=..\vim + nmake /NOLOGO /F Make_mvc.mak clean + -nmake /NOLOGO /F Make_mvc.mak VIMPROG=..\vim cd "$(BUILD_DIR)" IF NOT EXIST "$(TESTRES_DIR)" MD "$(TESTRES_DIR)" -COPY "$(VIM_DIR)\src\testdir\test_result.log" "$(TESTRES_DIR)\$(DATE_VER)_$(TIME_VER)-cui.log" vim-test-gui: vim-build cd "$(VIM_DIR)\src\testdir" - nmake /NOLOGO /F Make_dos.mak clean - -nmake /NOLOGO /F Make_dos.mak VIMPROG=..\gvim + nmake /NOLOGO /F Make_mvc.mak clean + -nmake /NOLOGO /F Make_mvc.mak VIMPROG=..\gvim cd "$(BUILD_DIR)" IF NOT EXIST "$(TESTRES_DIR)" MD "$(TESTRES_DIR)" -COPY "$(VIM_DIR)\src\testdir\test_result.log" "$(TESTRES_DIR)\$(DATE_VER)_$(TIME_VER)-gui.log" vim-test-clean: cd "$(VIM_DIR)\src\testdir" - nmake /NOLOGO /F Make_dos.mak clean + nmake /NOLOGO /F Make_mvc.mak clean cd "$(BUILD_DIR)" vim-clean: @@ -379,10 +384,10 @@ pdb-distdir: $(PDB_DIST_DIR)\$(VIMDLL_BASE).pdb pdb-archive: $(OUTPUT_DIR)\$(PDB_DIST_ZIP) $(VIM_DIR)\src\vim.pdb $(VIM_DIR)\src\gvim.pdb: - $(MAKE) vim-build + $(MAKE) /$(MAKEFLAGS) vim-build $(VIM_DIR)\src\$(VIMDLL_BASE).pdb: - $(MAKE) vim-build + $(MAKE) /$(MAKEFLAGS) vim-build $(PDB_DIST_DIR): IF NOT EXIST "$(PDB_DIST_DIR)" MKDIR "$(PDB_DIST_DIR)" @@ -394,18 +399,18 @@ $(INSTALL_DIR)\bin\gvim.pdb: $(VIM_DIR)\src\gvim.pdb -$(COPY) "$(VIM_DIR)\src" "$(INSTALL_DIR)\bin" gvim.pdb $(PDB_DIST_DIR)\vim.pdb: $(INSTALL_DIR)\bin\vim.pdb - $(MAKE) $(PDB_DIST_DIR) + $(MAKE) /$(MAKEFLAGS) $(PDB_DIST_DIR) -$(COPY) "$(INSTALL_DIR)\bin" "$(PDB_DIST_DIR)" vim.pdb $(PDB_DIST_DIR)\gvim.pdb: $(INSTALL_DIR)\bin\gvim.pdb - $(MAKE) $(PDB_DIST_DIR) + $(MAKE) /$(MAKEFLAGS) $(PDB_DIST_DIR) -$(COPY) "$(INSTALL_DIR)\bin" "$(PDB_DIST_DIR)" gvim.pdb $(INSTALL_DIR)\bin\$(VIMDLL_BASE).pdb: $(VIM_DIR)\src\$(VIMDLL_BASE).pdb -$(COPY) "$(VIM_DIR)\src" "$(INSTALL_DIR)\bin" $(VIMDLL_BASE).pdb $(PDB_DIST_DIR)\$(VIMDLL_BASE).pdb: $(INSTALL_DIR)\bin\$(VIMDLL_BASE).pdb - $(MAKE) $(PDB_DIST_DIR) + $(MAKE) /$(MAKEFLAGS) $(PDB_DIST_DIR) -$(COPY) "$(INSTALL_DIR)\bin" "$(PDB_DIST_DIR)" $(VIMDLL_BASE).pdb $(OUTPUT_DIR)\$(PDB_DIST_ZIP): $(PDB_DIST_DIR)\$(VIMDLL_BASE).pdb @@ -465,14 +470,14 @@ build-dist: -"$(INSTALL_DIR)\bin\vim.exe" -nes -u NONE -U NONE --noplugin \ -c "helptags $(VIM_DIST_DIR)\$(RTDIR_NAME)\doc" -c quit # Copy MSVC runtime files. - -$(COPY) "$(MSVCRT_DIR)" "$(VIM_DIST_DIR)" $(MSVCRT_FILES) + -IF $(MSVCRT_COPY) NEQ 0 $(COPY) "$(MSVCRT_DIR)" "$(VIM_DIST_DIR)" $(MSVCRT_FILES) # Copy patch (diff) files. -$(COPY) /E "$(VIM_PATCH_DIR)" "$(VIM_DIST_DIR)\patch" # Copy lua related files -$(COPY) /E "$(INSTALL_DIR)\bin\lua" "$(VIM_DIST_DIR)\lua" archive-dist: build-dist - $(MAKE) zip-dist + $(MAKE) /$(MAKEFLAGS) zip-dist zip-dist: cd "$(OUTPUT_DIR)" @@ -482,32 +487,38 @@ zip-dist: clean-dist: -RD /S /Q "$(VIM_DIST_DIR)" -build-release-pre: - $(MAKE) "$(INSTALL_DIR)\bin\iconv.dll" - $(MAKE) "$(INSTALL_DIR)\bin\intl.dll" - $(MAKE) "$(INSTALL_DIR)\lib\libXpm.lib" - $(MAKE) "$(INSTALL_DIR)\bin\$(VIMPROC_DLL)" - $(MAKE) "$(INSTALL_DIR)\bin\lua51.dll" - $(MAKE) "$(INSTALL_DIR)\bin\winpty-agent.exe" - $(MAKE) vim-clean - $(MAKE) vim-install vim-mo-install vim-patch-install - $(MAKE) langja-install - $(MAKE) build-dist - $(MAKE) pdb-distdir - -build-release-core: - $(MAKE) zip-dist - $(MAKE) pdb-archive - -build-release-post: - $(MAKE) vim-clean +build-release-pre: build-release + +build-release-core: build-release-archive + +build-release-post: build-release-clean + +build-release: + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\iconv.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\intl.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\lib\libXpm.lib" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\$(VIMPROC_DLL)" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\lua51.dll" + $(MAKE) /$(MAKEFLAGS) "$(INSTALL_DIR)\bin\winpty-agent.exe" + $(MAKE) /$(MAKEFLAGS) vim-clean + $(MAKE) /$(MAKEFLAGS) vim-install vim-mo-install vim-patch-install + $(MAKE) /$(MAKEFLAGS) langja-install + $(MAKE) /$(MAKEFLAGS) build-dist + $(MAKE) /$(MAKEFLAGS) pdb-distdir + +build-release-archive: + $(MAKE) /$(MAKEFLAGS) zip-dist + $(MAKE) /$(MAKEFLAGS) pdb-archive + +build-release-clean: + $(MAKE) /$(MAKEFLAGS) vim-clean snapshot: snapshot-build snapshot-install snapshot-archive snapshot-pre: snapshot-install snapshot-archive snapshot-build: - $(MAKE) vim-clean vim-build + $(MAKE) /$(MAKEFLAGS) vim-clean vim-build snapshot-install: IF NOT EXIST "$(SNAPSHOT_DIR)" MD "$(SNAPSHOT_DIR)" @@ -535,22 +546,22 @@ snapshot-archive: snapshot "$(INSTALL_DIR)\bin\iconv.dll": - $(MAKE) iconv-clean iconv-install iconv-distclean + $(MAKE) /$(MAKEFLAGS) iconv-clean iconv-install iconv-distclean "$(INSTALL_DIR)\bin\intl.dll": - $(MAKE) gettext-clean gettext-install gettext-distclean + $(MAKE) /$(MAKEFLAGS) gettext-clean gettext-install gettext-distclean "$(INSTALL_DIR)\lib\libXpm.lib": - $(MAKE) xpm-clean xpm-install xpm-distclean + $(MAKE) /$(MAKEFLAGS) xpm-clean xpm-install xpm-distclean "$(INSTALL_DIR)\bin\$(VIMPROC_DLL)": - $(MAKE) vimproc-clean vimproc-install vimproc-distclean + $(MAKE) /$(MAKEFLAGS) vimproc-clean vimproc-install vimproc-distclean "$(INSTALL_DIR)\bin\lua51.dll": - $(MAKE) luajit-install + $(MAKE) /$(MAKEFLAGS) luajit-install "$(INSTALL_DIR)\bin\winpty-agent.exe": - $(MAKE) winpty-install + $(MAKE) /$(MAKEFLAGS) winpty-install "$(INSTALL_DIR)\bin\vim.exe": - $(MAKE) vim-clean vim-install vim-mo-install vim-clean + $(MAKE) /$(MAKEFLAGS) vim-clean vim-install vim-mo-install vim-clean diff --git a/build/msvc/tools/msvc-nmake.bat b/build/msvc/tools/msvc-nmake.bat index ff7d037..ee927be 100644 --- a/build/msvc/tools/msvc-nmake.bat +++ b/build/msvc/tools/msvc-nmake.bat @@ -1,7 +1,8 @@ @ECHO OFF REM Use SDK 8.1 for missing headers. -SET "INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt" +REM SET "INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" %1 +REM CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" %1 +CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" %1 nmake %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/build/msvc/vim.mak b/build/msvc/vim.mak index d7039a8..b693833 100644 --- a/build/msvc/vim.mak +++ b/build/msvc/vim.mak @@ -15,6 +15,11 @@ DIRECTX=yes # Terminal support. TERMINAL=yes +# Disable language interfaces +DISABLE_PERL=yes +DISABLE_PYTHON=yes +DISABLE_RUBY=yes + # Perl settings !if !defined(DISABLE_IF) && !defined(DISABLE_PERL) DYNAMIC_PERL=yes @@ -98,12 +103,11 @@ MSCVER=12.0 MSVCRT_DLL=msvcr120.dll !ELSEIF "$(_NMAKE_VER)" >= "14." && "$(_NMAKE_VER)" < "15." MSCVER=14.0 -MSVCRT_FILES=vcruntime140.dll +MSVCRT_DLL=vcruntime140.dll !ELSE !ERROR Unknown MSVC version: $(_NMAKE_VER) !ENDIF - !IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64" DEFINES_ARCH = !ELSE @@ -113,7 +117,7 @@ DEFINES_ARCH = /D_USE_32BIT_TIME_T=1 DEFINES= /DMODIFIED_BY=\"$(USERNAME)@$(USERDOMAIN)\" \ /DDYNAMIC_MSVCRT_DLL=\"$(MSVCRT_DLL)\" \ /DGETTEXT_DLL=\"intl.dll\" \ - /DGETTEXT_DLL_ALT=\"intl.dll\" \ + /DDYNAMIC_ICONV_DLL=\"iconv.dll\" \ /D_BIND_TO_CURRENT_VCLIBS_VERSION=1 \ $(DEFINES_ARCH) diff --git a/build/xubuntu/Makefile b/build/xubuntu/Makefile index bb32726..83856a8 100644 --- a/build/xubuntu/Makefile +++ b/build/xubuntu/Makefile @@ -1,6 +1,10 @@ -ROOT_DIR = ../.. +CURDIR = $(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +DESTDIR = $(abspath $(CURDIR)work) +ROOT_DIR = $(abspath $(CURDIR)../..) include $(ROOT_DIR)/VERSION +VERSION = $(VIM_VER)-$(PATCHSET_VER) VIM_SRCDIR = $(ROOT_DIR)/vim/src @@ -8,25 +12,49 @@ VIM_CONFIG = --with-features=huge \ --enable-gui=gtk2 \ --enable-luainterp=dynamic \ --with-luajit \ - --enable-python3interp=dynamic \ - --enable-rubyinterp=dynamic \ --enable-fail-if-missing -VIM_DIR = /usr/local/share/vim -VIMRUNTIME_DIR = $(VIM_DIR)/vim$(VIM_VER_SHORT) +VIM_DIR = $(DESTDIR)/usr/local/share/vim +VIMRUNTIME_DIR = $(DESTDIR)$(VIM_DIR)/vim$(VIM_VER_SHORT) + +OS_TARGET = ubuntu23.10 +VIM_PKGFILE = vim$(VIM_VER_SHORT)-kaoriya-$(OS_TARGET)-$(VERSION).tar.bz2 + +############################################################################## + +version: + @echo ROOT_DIR = $(ROOT_DIR) + @echo DESTDIR = $(DESTDIR) + @echo VERSION = $(VERSION) + @echo OS_TARGET = $(OS_TARGET) + +package: + rm -f $(VIM_PKGFILE) + tar caf $(VIM_PKGFILE) --owner=root:0 --group=root:0 --strip-components 1 -C $(DESTDIR) . + +package-clean: + rm -rf $(DESTDIR) -default: vim-build +package-install-all: vim-install-auto kaoriya-install autofmt-install govim-install -install: kaoriya-install autofmt-install govim-install +package-auto: package-clean package-install-all package + +############################################################################## + +vim-patch: + cd $(VIM_SRCDIR) && guilt pop -a && guilt push -a + +vim-patch-reverse: + cd $(VIM_SRCDIR) && guilt pop -a vim-configure: cd $(VIM_SRCDIR) && ./configure $(VIM_CONFIG) vim-build: - cd $(VIM_SRCDIR) && make + cd $(VIM_SRCDIR) && make -j4 vim-install: - cd $(VIM_SRCDIR) && make install + cd $(VIM_SRCDIR) && make DESTDIR=$(DESTDIR) install vim-clean: cd $(VIM_SRCDIR) && make clean @@ -34,35 +62,52 @@ vim-clean: vim-distclean: cd $(VIM_SRCDIR) && make distclean -vim-install-auto: vim-distclean vim-configure vim-build - cd $(VIM_SRCDIR) && sudo $(MAKE) install +vim-install-auto: vim-patch vim-configure vim-build vim-install vim-distclean vim-patch-reverse + +############################################################################## KAORIYA_SRCDIR = $(ROOT_DIR)/kaoriya KAORIYA_INSTDIR = $(VIM_DIR) kaoriya-install: @cd $(KAORIYA_SRCDIR)/vim && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -m 0755 $(KAORIYA_INSTDIR)/$$d || exit 1 ; \ + done ; \ for f in `find . -type f -not -name '.*'`; do \ echo install: $$f ; \ - install -o root -g root -m 0666 -D $$f $(KAORIYA_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(KAORIYA_INSTDIR)/$$f || exit 1 ; \ done +############################################################################## + AUTOFMT_SRCDIR = $(ROOT_DIR)/contrib/autofmt AUTOFMT_INSTDIR = $(VIM_DIR)/plugins/autofmt autofmt-install: @cd $(AUTOFMT_SRCDIR) && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -m 0755 $(AUTOFMT_INSTDIR)/$$d || exit 1 ; \ + done ; \ for f in `find . -type f -not -name '.*' `; do \ echo install: $$f ; \ - install -o root -g root -m 0666 -D $$f $(AUTOFMT_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(AUTOFMT_INSTDIR)/$$f || exit 1 ; \ done +############################################################################## + GOVIM_SRCDIR = $(ROOT_DIR)/contrib/go-vim GOVIM_INSTDIR = $(VIM_DIR)/plugins/golang govim-install: @cd $(GOVIM_SRCDIR) && \ + for d in `find . -type d -not -name '.*'`; do \ + echo mkdir: $$d ; \ + install -d -m 0755 $(GOVIM_INSTDIR)/$$d || exit 1 ; \ + done ; \ for f in `find . -type f -not -name '.*' `; do \ echo install: $$f ; \ - install -o root -g root -m 0666 -D $$f $(GOVIM_INSTDIR)/$$f || exit 1 ; \ + install -m 0666 $$f $(GOVIM_INSTDIR)/$$f || exit 1 ; \ done diff --git a/build/xubuntu/README.md b/build/xubuntu/README.md new file mode 100644 index 0000000..e0595cc --- /dev/null +++ b/build/xubuntu/README.md @@ -0,0 +1,19 @@ +# for Xubuntu (may for Ubuntu also) + +1. Create a package + + ```console + $ make package-auto + ``` + +2. Copy to a target machine (OPTIONAL) + + ```console + $ scp vim90-kaoriya-ubuntu23.10-9.0.0814-20240207.tar.bz2 foobar@machine:tmp + ``` + +3. Install as root + + ```console + $ sudo tar xvf vim90-kaoriya-ubuntu23.10-9.0.0814-20221002.tar.bz2 -C / + ``` diff --git a/contrib/autofmt b/contrib/autofmt index 641529c..c559597 160000 --- a/contrib/autofmt +++ b/contrib/autofmt @@ -1 +1 @@ -Subproject commit 641529c17265bc5b17db595b17b42401b9daa742 +Subproject commit c5595976b8b6eedf8d260aa925b9ec9c5fc79971 diff --git a/contrib/gettext b/contrib/gettext index b7af860..0529ffa 160000 --- a/contrib/gettext +++ b/contrib/gettext @@ -1 +1 @@ -Subproject commit b7af8608008eb893d72eb703c42e7fd9bc52e331 +Subproject commit 0529ffaec7e0e123576ea04cc93ba0ab9e6d04b1 diff --git a/contrib/lang-ja b/contrib/lang-ja index d262bed..347b092 160000 --- a/contrib/lang-ja +++ b/contrib/lang-ja @@ -1 +1 @@ -Subproject commit d262bedc7f4c022554ba3ceb325778de1496b54d +Subproject commit 347b092f88f0d03ece229fbffe326d2f877fb1d4 diff --git a/contrib/libXpm-win32 b/contrib/libXpm-win32 index 0a88ac3..2fd6b2f 160000 --- a/contrib/libXpm-win32 +++ b/contrib/libXpm-win32 @@ -1 +1 @@ -Subproject commit 0a88ac3b522b8de477ae61583e3e4bd8603e0ffd +Subproject commit 2fd6b2f88c4ce49e6f264469e447dd2dc41c576a diff --git a/contrib/libiconv2 b/contrib/libiconv2 index 75b9036..39de215 160000 --- a/contrib/libiconv2 +++ b/contrib/libiconv2 @@ -1 +1 @@ -Subproject commit 75b9036207274e0ece31b298503f63749a25debc +Subproject commit 39de215514be7c2ab3a7988d2a2052bcb0c04b25 diff --git a/contrib/luajit-2.0 b/contrib/luajit-2.0 index 570e758..dad04f1 160000 --- a/contrib/luajit-2.0 +++ b/contrib/luajit-2.0 @@ -1 +1 @@ -Subproject commit 570e758ca7dd14f93efdd43d68cf8979c1d7f984 +Subproject commit dad04f1754723e76ba9dcf9f401f3134a0cd3972 diff --git a/contrib/vimdoc-ja b/contrib/vimdoc-ja index 4a765dc..2c503e5 160000 --- a/contrib/vimdoc-ja +++ b/contrib/vimdoc-ja @@ -1 +1 @@ -Subproject commit 4a765dca36738a609446425a86e6cdce20f9b8dd +Subproject commit 2c503e554284fef5bdcd24a5e76acf4fc45717b7 diff --git a/contrib/vimproc b/contrib/vimproc index 8f40d86..3ba46c0 160000 --- a/contrib/vimproc +++ b/contrib/vimproc @@ -1 +1 @@ -Subproject commit 8f40d86ab938d5df8c1c9824320621ae9f0d5609 +Subproject commit 3ba46c01109bc590c6740c1133f53584751924b2 diff --git a/kaoriya/doc/CHANGES.md b/kaoriya/doc/CHANGES.md index 13b1d37..6bfeedb 100644 --- a/kaoriya/doc/CHANGES.md +++ b/kaoriya/doc/CHANGES.md @@ -1,3 +1,18 @@ +## 2022/10/XX の変更点 + +* ベースコードを9.0.XXXXに更新しました +* コンパイラを Visual Studio 2022 (Visual C 17.X) に変更しました +* 外部言語インターフェースの変更 + + LuaJITを除く外部言語インターフェース(Perl, Python, Ruby)を廃止しました + それらが必要な方は vim-win32-installer をご利用ください + + + +* `:Scratch` バッファを `:w foo.txt` で保存した際の挙動を修正しました + + + ## 2020/07/24 の変更点 * ベースコードを8.2.1287に更新しました diff --git a/kaoriya/vim/plugins/kaoriya/plugin/cmdex.vim b/kaoriya/vim/plugins/kaoriya/plugin/cmdex.vim index a4b64dc..766b216 100644 --- a/kaoriya/vim/plugins/kaoriya/plugin/cmdex.vim +++ b/kaoriya/vim/plugins/kaoriya/plugin/cmdex.vim @@ -3,7 +3,7 @@ " cmdex.vim - Extra commands " " Maintainer: Muraoka Taro -" Last Change: 19-Mar-2013. +" Last Change: 04-Oct-2022. " Commands: " :MenuLang {language} " (language: none/ja/zh...etc.) @@ -85,9 +85,10 @@ command! -nargs=0 IminsertOn iunmap " Open a scratch (no file) buffer. command! -nargs=0 Scratch new | setlocal bt=nofile noswf | let b:cmdex_scratch = 1 function! s:CheckScratchWritten() - if &buftype ==# 'nofile' && expand('%').'x' !=# 'x' && exists('b:cmdex_scratch') && b:cmdex_scratch == 1 - setlocal buftype= swapfile + if &buftype ==# 'nofile' && get(b:, 'cmdex_scratch', 0) == 1 && expand('') !=# '' unlet b:cmdex_scratch + setlocal buftype= swapfile + execute "edit!" expand('') endif endfunction augroup CmdexScratch diff --git a/kaoriya/vim/vimrc b/kaoriya/vim/vimrc index 55553e1..a3824e1 100644 --- a/kaoriya/vim/vimrc +++ b/kaoriya/vim/vimrc @@ -4,7 +4,7 @@ scriptencoding utf-8 " An example for a Japanese version vimrc file. " 日本語版のデフォルト設定ファイル(vimrc) - Vim 8.1 " -" Last Change: 23-Mar-2019. +" Last Change: 06-Oct-2023. " Maintainer: MURAOKA Taro " " 解説: @@ -195,7 +195,11 @@ if has('unix') && !has('gui_running') if s:uname =~? "linux" " no need to use builtin_term for Linux elseif s:uname =~? "freebsd" - set term=builtin_cons25 + if exists("$TERM") + set term=$TERM + else + set term=builtin_cons25 + endif elseif s:uname =~? "Darwin" set term=builtin_beos-ansi else diff --git a/patches b/patches index bfdd5cb..c8e1d38 160000 --- a/patches +++ b/patches @@ -1 +1 @@ -Subproject commit bfdd5cb01600bac9cd92b6f2d114993c71b1136e +Subproject commit c8e1d384348860fa0a17a9cf6dffd6f0ede067c5 diff --git a/vim b/vim index 40f4f7a..436e5d3 160000 --- a/vim +++ b/vim @@ -1 +1 @@ -Subproject commit 40f4f7a48cae491f83bd3cdbf7e9b5a23ed870ef +Subproject commit 436e5d395fd629c8d33b5cf7b373aad007f16851