@@ -354,13 +354,24 @@ CSCOPE_DEFS = -DFEAT_CSCOPE
354354!endif
355355
356356!if "$(TERMINAL)" == "yes"
357- TERMINAL_OBJ = $(OBJDIR ) /terminal.obj
358- TERMINAL_DEFS = -DFEAT_TERMINAL
359- !if $(MSVC_MAJOR) <= 11
360- TERMINAL_DEFS = $(TERMINAL_DEFS ) /I if_perl_msvc
361- !endif
362- TERMINAL_SRC = terminal.c
363- VTERM_LIB = libvterm/vterm.lib
357+ TERM_OBJ = \
358+ $(OBJDIR ) /terminal.obj \
359+ $(OBJDIR ) /term_encoding.obj \
360+ $(OBJDIR ) /term_keyboard.obj \
361+ $(OBJDIR ) /term_mouse.obj \
362+ $(OBJDIR ) /term_parser.obj \
363+ $(OBJDIR ) /term_pen.obj \
364+ $(OBJDIR ) /term_screen.obj \
365+ $(OBJDIR ) /term_state.obj \
366+ $(OBJDIR ) /term_unicode.obj \
367+ $(OBJDIR ) /term_vterm.obj
368+ TERM_DEFS = -DFEAT_TERMINAL
369+ TERM_DEPS = \
370+ libvterm/include/vterm.h \
371+ libvterm/include/vterm_keycodes.h \
372+ libvterm/src/rect.h \
373+ libvterm/src/utf8.h \
374+ libvterm/src/vterm_internal.h
364375!endif
365376
366377!ifndef NETBEANS
@@ -470,10 +481,9 @@ WINVER = 0x0501
470481# VIMRUNTIMEDIR = somewhere
471482
472483CFLAGS = -c /W3 /nologo $(CVARS ) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
473- $(CSCOPE_DEFS ) $(TERMINAL_DEFS ) $(NETBEANS_DEFS ) $(CHANNEL_DEFS ) \
484+ $(CSCOPE_DEFS ) $(TERM_DEFS ) $(NETBEANS_DEFS ) $(CHANNEL_DEFS ) \
474485 $(NBDEBUG_DEFS ) $(XPM_DEFS ) \
475- $(DEFINES ) -DWINVER=$(WINVER ) -D_WIN32_WINNT=$(WINVER ) \
476- /Fo$(OUTDIR ) /
486+ $(DEFINES ) -DWINVER=$(WINVER ) -D_WIN32_WINNT=$(WINVER )
477487
478488# >>>>> end of choices
479489# ##########################################################################
@@ -1121,6 +1131,9 @@ LINK_PDB = /PDB:$(VIM).pdb -debug
11211131#
11221132!message
11231133
1134+ # CFLAGS with /Fo$(OUTDIR)/
1135+ CFLAGS_OUTDIR =$(CFLAGS ) /Fo$(OUTDIR ) /
1136+
11241137conflags = /nologo /subsystem:$(SUBSYSTEM )
11251138
11261139PATHDEF_SRC = $(OUTDIR ) \pathdef.c
@@ -1136,7 +1149,7 @@ conflags = $(conflags) /map /mapinfo:lines
11361149LINKARGS1 = $(linkdebug ) $(conflags )
11371150LINKARGS2 = $(CON_LIB ) $(GUI_LIB ) $(NODEFAULTLIB ) $(LIBC ) $(OLE_LIB ) user32.lib \
11381151 $(LUA_LIB ) $(MZSCHEME_LIB ) $(PERL_LIB ) $(PYTHON_LIB ) $(PYTHON3_LIB ) $(RUBY_LIB ) \
1139- $(TCL_LIB ) $(NETBEANS_LIB ) $(VTERM_LIB ) $( XPM_LIB ) $(LINK_PDB )
1152+ $(TCL_LIB ) $(NETBEANS_LIB ) $(XPM_LIB ) $(LINK_PDB )
11401153
11411154# Report link time code generation progress if used.
11421155!ifdef NODEBUG
@@ -1157,12 +1170,12 @@ all: $(VIM).exe \
11571170
11581171$(VIM ) .exe : $(OUTDIR ) $(OBJ ) $(GUI_OBJ ) $(CUI_OBJ ) $(OLE_OBJ ) $(OLE_IDL ) $(MZSCHEME_OBJ ) \
11591172 $(LUA_OBJ ) $(PERL_OBJ ) $(PYTHON_OBJ ) $(PYTHON3_OBJ ) $(RUBY_OBJ ) $(TCL_OBJ ) \
1160- $(CSCOPE_OBJ ) $(TERMINAL_OBJ ) $(NETBEANS_OBJ ) $(CHANNEL_OBJ ) $(XPM_OBJ ) $( VTERM_LIB ) \
1173+ $(CSCOPE_OBJ ) $(TERM_OBJ ) $(NETBEANS_OBJ ) $(CHANNEL_OBJ ) $(XPM_OBJ ) \
11611174 version.c version.h
1162- $(CC ) $(CFLAGS ) version.c
1175+ $(CC ) $(CFLAGS_OUTDIR ) version.c
11631176 $(link ) $(LINKARGS1 ) -out:$(VIM ) .exe $(OBJ ) $(GUI_OBJ ) $(CUI_OBJ ) $(OLE_OBJ ) \
11641177 $(LUA_OBJ ) $(MZSCHEME_OBJ ) $(PERL_OBJ ) $(PYTHON_OBJ ) $(PYTHON3_OBJ ) $(RUBY_OBJ ) \
1165- $(TCL_OBJ ) $(CSCOPE_OBJ ) $(TERMINAL_OBJ ) $(NETBEANS_OBJ ) $(CHANNEL_OBJ ) \
1178+ $(TCL_OBJ ) $(CSCOPE_OBJ ) $(TERM_OBJ ) $(NETBEANS_OBJ ) $(CHANNEL_OBJ ) \
11661179 $(XPM_OBJ ) $(OUTDIR ) \v ersion.obj $(LINKARGS2 )
11671180 if exist $( VIM) .exe.manifest mt.exe -nologo -manifest $( VIM) .exe.manifest -updateresource:$( VIM) .exe; 1
11681181
@@ -1256,7 +1269,7 @@ testclean:
12561269!ELSE
12571270.c{$(OUTDIR ) /}.obj ::
12581271!ENDIF
1259- $(CC) $(CFLAGS ) $<
1272+ $(CC) $(CFLAGS_OUTDIR ) $<
12601273
12611274# Create a default rule for transforming .cpp files to .obj files in $(OUTDIR)
12621275# Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
@@ -1265,7 +1278,7 @@ testclean:
12651278!ELSE
12661279.cpp{$(OUTDIR ) /}.obj ::
12671280!ENDIF
1268- $(CC) $(CFLAGS ) $<
1281+ $(CC) $(CFLAGS_OUTDIR ) $<
12691282
12701283$(OUTDIR ) /arabic.obj : $(OUTDIR ) arabic.c $(INCL )
12711284
@@ -1324,41 +1337,41 @@ $(OUTDIR)/gui_dwrite.obj: $(OUTDIR) gui_dwrite.cpp $(INCL) $(GUI_INCL)
13241337$(OUTDIR ) /if_cscope.obj : $(OUTDIR ) if_cscope.c $(INCL )
13251338
13261339$(OUTDIR ) /if_lua.obj : $(OUTDIR ) if_lua.c $(INCL )
1327- $(CC ) $(CFLAGS ) $(LUA_INC ) if_lua.c
1340+ $(CC ) $(CFLAGS_OUTDIR ) $(LUA_INC ) if_lua.c
13281341
13291342if_perl.c : if_perl.xs typemap
13301343 $(XSUBPP ) -prototypes -typemap $(XSUBPP_TYPEMAP ) \
13311344 -typemap typemap if_perl.xs > if_perl.c
13321345
13331346$(OUTDIR ) /if_perl.obj : $(OUTDIR ) if_perl.c $(INCL )
1334- $(CC ) $(CFLAGS ) $(PERL_INC ) if_perl.c
1347+ $(CC ) $(CFLAGS_OUTDIR ) $(PERL_INC ) if_perl.c
13351348
13361349$(OUTDIR ) /if_perlsfio.obj : $(OUTDIR ) if_perlsfio.c $(INCL )
1337- $(CC ) $(CFLAGS ) $(PERL_INC ) if_perlsfio.c
1350+ $(CC ) $(CFLAGS_OUTDIR ) $(PERL_INC ) if_perlsfio.c
13381351
13391352$(OUTDIR ) /if_mzsch.obj : $(OUTDIR ) if_mzsch.c if_mzsch.h $(INCL ) $(MZSCHEME_EXTRA_DEP )
1340- $(CC ) $(CFLAGS ) if_mzsch.c \
1353+ $(CC ) $(CFLAGS_OUTDIR ) if_mzsch.c \
13411354 -DMZSCHEME_COLLECTS=" \" $( MZSCHEME_COLLECTS:\=\\ ) \" "
13421355
13431356lib$(MZSCHEME_MAIN_LIB )$(MZSCHEME_VER ) .lib :
13441357 lib /DEF:" $( MZSCHEME) \lib\lib$( MZSCHEME_MAIN_LIB) $( MZSCHEME_VER) .def"
13451358
13461359$(OUTDIR ) /if_python.obj : $(OUTDIR ) if_python.c if_py_both.h $(INCL )
1347- $(CC ) $(CFLAGS ) $(PYTHON_INC ) if_python.c
1360+ $(CC ) $(CFLAGS_OUTDIR ) $(PYTHON_INC ) if_python.c
13481361
13491362$(OUTDIR ) /if_python3.obj : $(OUTDIR ) if_python3.c if_py_both.h $(INCL )
1350- $(CC ) $(CFLAGS ) $(PYTHON3_INC ) if_python3.c
1363+ $(CC ) $(CFLAGS_OUTDIR ) $(PYTHON3_INC ) if_python3.c
13511364
13521365$(OUTDIR ) /if_ole.obj : $(OUTDIR ) if_ole.cpp $(INCL ) if_ole.h
13531366
13541367$(OUTDIR ) /if_ruby.obj : $(OUTDIR ) if_ruby.c $(INCL )
1355- $(CC ) $(CFLAGS ) $(RUBY_INC ) if_ruby.c
1368+ $(CC ) $(CFLAGS_OUTDIR ) $(RUBY_INC ) if_ruby.c
13561369
13571370$(OUTDIR ) /if_tcl.obj : $(OUTDIR ) if_tcl.c $(INCL )
1358- $(CC ) $(CFLAGS ) $(TCL_INC ) if_tcl.c
1371+ $(CC ) $(CFLAGS_OUTDIR ) $(TCL_INC ) if_tcl.c
13591372
13601373$(OUTDIR ) /iscygpty.obj : $(OUTDIR ) iscygpty.c $(CUI_INCL )
1361- $(CC ) $(CFLAGS ) iscygpty.c -D_WIN32_WINNT=0x0600 -DUSE_DYNFILEID -DENABLE_STUB_IMPL
1374+ $(CC ) $(CFLAGS_OUTDIR ) iscygpty.c -D_WIN32_WINNT=0x0600 -DUSE_DYNFILEID -DENABLE_STUB_IMPL
13621375
13631376$(OUTDIR ) /json.obj : $(OUTDIR ) json.c $(INCL )
13641377
@@ -1396,7 +1409,7 @@ $(OUTDIR)/ops.obj: $(OUTDIR) ops.c $(INCL)
13961409
13971410$(OUTDIR ) /os_mswin.obj : $(OUTDIR ) os_mswin.c $(INCL )
13981411
1399- $(OUTDIR ) /terminal.obj : $(OUTDIR ) terminal.c $(INCL )
1412+ $(OUTDIR ) /terminal.obj : $(OUTDIR ) terminal.c $(INCL ) $( TERM_DEPS )
14001413
14011414$(OUTDIR ) /winclip.obj : $(OUTDIR ) winclip.c $(INCL )
14021415
@@ -1405,7 +1418,7 @@ $(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h
14051418$(OUTDIR ) /os_w32exe.obj : $(OUTDIR ) os_w32exe.c $(INCL )
14061419
14071420$(OUTDIR ) /pathdef.obj : $(OUTDIR ) $(PATHDEF_SRC ) $(INCL )
1408- $(CC ) $(CFLAGS ) $(PATHDEF_SRC )
1421+ $(CC ) $(CFLAGS_OUTDIR ) $(PATHDEF_SRC )
14091422
14101423$(OUTDIR ) /popupmnu.obj : $(OUTDIR ) popupmnu.c $(INCL )
14111424
@@ -1438,7 +1451,7 @@ $(OUTDIR)/userfunc.obj: $(OUTDIR) userfunc.c $(INCL)
14381451$(OUTDIR ) /window.obj : $(OUTDIR ) window.c $(INCL )
14391452
14401453$(OUTDIR ) /xpm_w32.obj : $(OUTDIR ) xpm_w32.c
1441- $(CC ) $(CFLAGS ) $(XPM_INC ) xpm_w32.c
1454+ $(CC ) $(CFLAGS_OUTDIR ) $(XPM_INC ) xpm_w32.c
14421455
14431456$(OUTDIR ) /vim.res : $(OUTDIR ) vim.rc gvim.exe.mnf version.h tools.bmp \
14441457 tearoff.bmp vim.ico vim_error.ico \
@@ -1456,6 +1469,36 @@ $(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL)
14561469
14571470$(OUTDIR ) /glbl_ime.obj : $(OUTDIR ) glbl_ime.cpp dimm.h $(INCL )
14581471
1472+
1473+ CCCTERM = $(CC ) $(CFLAGS ) -Ilibvterm/include -DINLINE="" -DVSNPRINTF=vim_vsnprintf
1474+ $(OUTDIR ) /term_encoding.obj : $(OUTDIR ) libvterm/src/encoding.c $(TERM_DEPS )
1475+ $(CCCTERM ) -Fo$@ libvterm/src/encoding.c
1476+
1477+ $(OUTDIR ) /term_keyboard.obj : $(OUTDIR ) libvterm/src/keyboard.c $(TERM_DEPS )
1478+ $(CCCTERM ) -Fo$@ libvterm/src/keyboard.c
1479+
1480+ $(OUTDIR ) /term_mouse.obj : $(OUTDIR ) libvterm/src/mouse.c $(TERM_DEPS )
1481+ $(CCCTERM ) -Fo$@ libvterm/src/mouse.c
1482+
1483+ $(OUTDIR ) /term_parser.obj : $(OUTDIR ) libvterm/src/parser.c $(TERM_DEPS )
1484+ $(CCCTERM ) -Fo$@ libvterm/src/parser.c
1485+
1486+ $(OUTDIR ) /term_pen.obj : $(OUTDIR ) libvterm/src/pen.c $(TERM_DEPS )
1487+ $(CCCTERM ) -Fo$@ libvterm/src/pen.c
1488+
1489+ $(OUTDIR ) /term_screen.obj : $(OUTDIR ) libvterm/src/screen.c $(TERM_DEPS )
1490+ $(CCCTERM ) -Fo$@ libvterm/src/screen.c
1491+
1492+ $(OUTDIR ) /term_state.obj : $(OUTDIR ) libvterm/src/state.c $(TERM_DEPS )
1493+ $(CCCTERM ) -Fo$@ libvterm/src/state.c
1494+
1495+ $(OUTDIR ) /term_unicode.obj : $(OUTDIR ) libvterm/src/unicode.c $(TERM_DEPS )
1496+ $(CCCTERM ) -Fo$@ libvterm/src/unicode.c
1497+
1498+ $(OUTDIR ) /term_vterm.obj : $(OUTDIR ) libvterm/src/vterm.c $(TERM_DEPS )
1499+ $(CCCTERM ) -Fo$@ libvterm/src/vterm.c
1500+
1501+
14591502# $CFLAGS may contain backslashes and double quotes, escape them both.
14601503E0_CFLAGS = $(CFLAGS:\=\\ )
14611504E_CFLAGS = $(E0_CFLAGS:"=\" )
@@ -1550,9 +1593,4 @@ proto.h: \
15501593.c.i :
15511594 $(CC ) $(CFLAGS ) /P /C $<
15521595
1553- libvterm/vterm.lib :
1554- cd libvterm
1555- $(MAKE ) /NOLOGO -f Makefile.msc " MSVC_MAJOR=$( MSVC_MAJOR) "
1556- cd ..
1557-
15581596# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
0 commit comments