summaryrefslogtreecommitdiffstats
path: root/src/Makefile
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2022-01-29 13:06:40 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-29 13:06:40 +0000
commit4dc0dd869972ddafc7d9ee5ea765645b818a6dc9 (patch)
tree1b59dc8582e8236af2059d4bc640d48a0f9d8285 /src/Makefile
parent97c554d5149c2aa4a43d689c59563e77277265d4 (diff)
patch 8.2.4252: generating the normal command table at runtime is inefficientv8.2.4252
Problem: Generating the normal command table at runtime is inefficient. Solution: Generate the table with a Vim script and put it in a header file. (Yegappan Lakshmanan, closes #9648)
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile
index cdb491be25..549b8177b7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2144,6 +2144,16 @@ autoconf:
cmdidxs: ex_cmds.h
vim --clean -X --not-a-term -u create_cmdidxs.vim
+# Run vim script to generate the normal/visual mode command lookup table.
+# This only needs to be run when a new normal/visual mode command has been
+# added. If this fails because you don't have Vim yet:
+# - change nv_cmds[] in normal.c to add the new normal/visual mode command.
+# - build Vim
+# - run "make nvcmdidxs" using the new Vim to generate nv_cmdidxs.h
+# - rebuild Vim to use the newly generated nv_cmdidxs.h file.
+nvcmdidxs: normal.c
+ ./$(VIMTARGET) --clean -X --not-a-term -u create_nvcmdidxs.vim
+
# The normal command to compile a .c file to its .o file.
# Without or with ALL_CFLAGS.
@@ -4002,7 +4012,7 @@ objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
- proto.h globals.h errors.h
+ proto.h globals.h errors.h nv_cmdidxs.h
objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h termdefs.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \