vim72-20100325-kaoriya-w64j.zip
[MacVim/KaoriYa.git] / src / Make_mvc.mak
bloba3bfad247c0a7532e1d6d4d5dc09c5884fc2cc48
1 # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
2 # and Win64, using the Microsoft Visual C++ compilers. Known to work with
3 # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005),
4 # VC9 (VS2008), and VC10 (VS2010).
6 # To build using other Windows compilers, see INSTALLpc.txt
8 # This makefile can build the console, GUI, OLE-enable, Perl-enabled and
9 # Python-enabled versions of Vim for Win32 platforms.
11 # The basic command line to build Vim is:
13 # nmake -f Make_mvc.mak
15 # This will build the console version of Vim with no additional interfaces.
16 # To add features, define any of the following:
18 # !!!! After changing features do "nmake clean" first !!!!
20 # Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, HUGE] (default is BIG)
22 # GUI interface: GUI=yes (default is no)
24 # OLE interface: OLE=yes (usually with GUI=yes)
26 # Multibyte support: MBYTE=yes (default is no)
28 # IME support: IME=yes (requires GUI=yes)
29 # DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default
30 # is yes)
31 # Global IME support: GIME=yes (requires GUI=yes)
33 # MzScheme interface:
34 # MZSCHEME=[Path to MzScheme directory]
35 # DYNAMIC_MZSCHEME=yes (to load the MzScheme DLLs dynamically)
36 # MZSCHEME_VER=[version, 205_000, ...]
37 # MZSCHEME_DEBUG=no
39 # Perl interface:
40 # PERL=[Path to Perl directory]
41 # DYNAMIC_PERL=yes (to load the Perl DLL dynamically)
42 # PERL_VER=[Perl version, in the form 55 (5.005), 56 (5.6.x), etc]
43 # (default is 56)
45 # Python interface:
46 # PYTHON=[Path to Python directory]
47 # DYNAMIC_PYTHON=yes (to load the Python DLL dynamically)
48 # PYTHON_VER=[Python version, eg 15, 20] (default is 22)
50 # Ruby interface:
51 # RUBY=[Path to Ruby directory]
52 # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
53 # RUBY_VER=[Ruby version, eg 16, 17] (default is 18)
54 # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.8)
55 # You must set RUBY_VER_LONG when change RUBY_VER.
57 # Tcl interface:
58 # TCL=[Path to Tcl directory]
59 # DYNAMIC_TCL=yes (to load the Tcl DLL dynamically)
60 # TCL_VER=[Tcl version, e.g. 80, 83] (default is 83)
61 # TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.3)
62 # You must set TCL_VER_LONG when you set TCL_VER.
64 # SNiFF+ interface: SNIFF=yes
66 # Cscope support: CSCOPE=yes
68 # Iconv library support (always dynamically loaded):
69 # ICONV=[yes or no] (default is yes)
71 # Intl library support (always dynamically loaded):
72 # GETTEXT=[yes or no] (default is yes)
73 # See http://sourceforge.net/projects/gettext/
75 # PostScript printing: POSTSCRIPT=yes (default is no)
77 # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
79 # XPM Image Support: XPM=[path to XPM directory]
81 # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
83 # Processor Version: CPUNR=[i386, i486, i586, i686, pentium4] (default is
84 # i386)
86 # Version Support: WINVER=[0x0400, 0x0500] (default is 0x0400)
88 # Debug version: DEBUG=yes
89 # Mapfile: MAP=[no, yes or lines] (default is yes)
90 # no: Don't write a mapfile.
91 # yes: Write a normal mapfile.
92 # lines: Write a mapfile with line numbers (only for VC6 and later)
94 # Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes
95 # doesn't work)
97 # Visual C Version: MSVCVER=m.n (default derived from nmake if undefined)
99 # You can combine any of these interfaces
101 # Example: To build the non-debug, GUI version with Perl interface:
102 # nmake -f Make_mvc.mak GUI=yes PERL=C:\Perl
104 # DEBUG with Make_mvc.mak and Make_dvc.mak:
105 # This makefile gives a fineness of control which is not supported in
106 # Visual C++ configuration files. Therefore, debugging requires a bit of
107 # extra work.
108 # Make_dvc.mak is a Visual C++ project to access that support. It may be
109 # badly out of date for the Visual C++ you are using...
110 # To use Make_dvc.mak:
111 # 1) Build Vim with Make_mvc.mak.
112 # Use a "DEBUG=yes" argument to build Vim with debug support.
113 # E.g. the following builds gvimd.exe:
114 # nmake -f Make_mvc.mak debug=yes gui=yes
115 # 2) Use MS Devstudio and set it up to allow that file to be debugged:
116 # i) Pass Make_dvc.mak to the IDE.
117 # Use the "open workspace" menu entry to load Make_dvc.mak.
118 # Alternatively, from the command line:
119 # msdev /nologo Make_dvc.mak
120 # Note: Make_dvc.mak is in VC4.0 format. Later VC versions see
121 # this and offer to convert it to their own format. Accept that.
122 # It creates a file called Make_dvc.dsw which can then be used
123 # for further operations. E.g.
124 # msdev /nologo Make_dvc.dsw
125 # ii) Set the built executable for debugging:
126 # a) Alt+F7/Debug takes you to the Debug dialog.
127 # b) Fill "Executable for debug session". e.g. gvimd.exe
128 # c) Fill "Program arguments". e.g. -R dosinst.c
129 # d) Complete the dialog
130 # 3) You can now debug the executable you built with Make_mvc.mak
132 # Note: Make_dvc.mak builds vimrun.exe, because it must build something
133 # to be a valid makefile..
135 ### See feature.h for a list of optionals.
136 # If you want to build some optional features without modifying the source,
137 # you can set DEFINES on the command line, e.g.,
138 # nmake -f Make_mvc.mvc "DEFINES=-DEMACS_TAGS"
140 # Build on both Windows NT/XP and Windows 9x
142 TARGETOS = BOTH
144 # Select one of eight object code directories, depends on GUI, OLE, DEBUG and
145 # interfaces.
146 # If you change something else, do "make clean" first!
147 !if "$(GUI)" == "yes"
148 OBJDIR = .\Obj\G
149 !else
150 OBJDIR = .\Obj\C
151 !endif
152 !if "$(OLE)" == "yes"
153 OBJDIR = $(OBJDIR)O
154 !endif
155 !ifdef PERL
156 OBJDIR = $(OBJDIR)L
157 !endif
158 !ifdef PYTHON
159 OBJDIR = $(OBJDIR)Y
160 !endif
161 !ifdef TCL
162 OBJDIR = $(OBJDIR)T
163 !endif
164 !ifdef RUBY
165 OBJDIR = $(OBJDIR)R
166 !endif
167 !ifdef MZSCHEME
168 OBJDIR = $(OBJDIR)Z
169 !endif
170 !if "$(DEBUG)" == "yes"
171 OBJDIR = $(OBJDIR)d
172 !endif
174 # Win32.mak requires that CPU be set appropriately.
175 # To cross-compile for Win64, set CPU=AMD64 or CPU=IA64.
177 !ifdef PROCESSOR_ARCHITECTURE
178 # We're on Windows NT or using VC 6+
179 ! ifdef CPU
180 ASSEMBLY_ARCHITECTURE=$(CPU)
181 # Using I386 for $ASSEMBLY_ARCHITECTURE doesn't work for VC7.
182 ! if ("$(ASSEMBLY_ARCHITECTURE)" == "i386") || ("$(ASSEMBLY_ARCHITECTURE)" == "I386")
183 ASSEMBLY_ARCHITECTURE = x86
184 ! endif
185 ! else
186 CPU = $(PROCESSOR_ARCHITECTURE)
187 ASSEMBLY_ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)
188 ! if ("$(CPU)" == "x86") || ("$(CPU)" == "X86")
189 CPU = i386
190 ! endif
191 ! endif
192 !else # !PROCESSOR_ARCHITECTURE
193 # We're on Windows 95
194 CPU = i386
195 !endif # !PROCESSOR_ARCHITECTURE
197 # Build a retail version by default
199 !if "$(DEBUG)" != "yes"
200 NODEBUG = 1
201 !else
202 !undef NODEBUG
203 MAKEFLAGS_GVIMEXT = DEBUG=yes
204 !endif
207 # Get all sorts of useful, standard macros from the Platform SDK.
209 !include <Win32.mak>
211 # Turn on Win64 compatibility warnings for VC7.x and VC8.
212 # (/Wp64 is deprecated in VC9 and generates an obnoxious warning.)
213 !if ("$(MSVCVER)" == "7.0") || ("$(MSVCVER)" == "7.1") || ("$(MSVCVER)" == "8.0")
214 DEFINES=$(DEFINES) /Wp64
215 !endif
217 #>>>>> path of the compiler and linker; name of include and lib directories
218 # PATH = c:\msvc20\bin;$(PATH)
219 # INCLUDE = c:\msvc20\include
220 # LIB = c:\msvc20\lib
222 !ifndef CTAGS
223 CTAGS = ctags
224 !endif
226 !if "$(SNIFF)" == "yes"
227 # SNIFF - Include support for SNiFF+.
228 SNIFF_INCL = if_sniff.h
229 SNIFF_OBJ = $(OBJDIR)/if_sniff.obj
230 SNIFF_LIB = shell32.lib
231 SNIFF_DEFS = -DFEAT_SNIFF
232 # The SNiFF integration needs multithreaded libraries!
233 MULTITHREADED = yes
234 !endif
236 !ifndef CSCOPE
237 CSCOPE = yes
238 !endif
240 !if "$(CSCOPE)" == "yes"
241 # CSCOPE - Include support for Cscope
242 CSCOPE_INCL = if_cscope.h
243 CSCOPE_OBJ = $(OBJDIR)/if_cscope.obj
244 CSCOPE_DEFS = -DFEAT_CSCOPE
245 !endif
247 !ifndef NETBEANS
248 NETBEANS = $(GUI)
249 !endif
251 # Only allow NETBEANS and XPM for a GUI build.
252 !if "$(GUI)" == "yes"
253 !if "$(NETBEANS)" == "yes"
254 # NETBEANS - Include support for Netbeans integration
255 NETBEANS_PRO = proto/netbeans.pro
256 NETBEANS_OBJ = $(OBJDIR)/netbeans.obj
257 NETBEANS_DEFS = -DFEAT_NETBEANS_INTG
259 !if "$(NBDEBUG)" == "yes"
260 NBDEBUG_DEFS = -DNBDEBUG
261 NBDEBUG_INCL = nbdebug.h
262 NBDEBUG_SRC = nbdebug.c
263 !endif
264 NETBEANS_LIB = WSock32.lib
265 !endif
267 !ifdef XPM
268 # XPM - Include support for XPM signs
269 # you can get xpm.lib from http://iamphet.nm.ru/xpm or create it yourself
270 XPM_OBJ = $(OBJDIR)/xpm_w32.obj
271 XPM_DEFS = -DFEAT_XPM_W32
272 XPM_LIB = $(XPM)\lib\libXpm.lib
273 XPM_INC = -I $(XPM)\include
274 !endif
275 !endif
277 # Set which version of the CRT to use
278 !if defined(USE_MSVCRT)
279 # CVARS = $(cvarsdll)
280 # !elseif defined(MULTITHREADED)
281 # CVARS = $(cvarsmt)
282 !else
283 # CVARS = $(cvars)
284 # CVARS = $(cvarsmt)
285 !endif
287 # need advapi32.lib for GetUserName()
288 # need shell32.lib for ExtractIcon()
289 # gdi32.lib and comdlg32.lib for printing support
290 # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
291 CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
292 comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib
293 !if "$(DELAYLOAD)" == "yes"
294 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
295 !endif
297 ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
298 # When set to 0x0500 ":browse" stops working.
299 !ifndef WINVER
300 WINVER = 0x0400
301 !endif
303 # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
304 # default, use these lines.
305 #VIMRCLOC = somewhere
306 #VIMRUNTIMEDIR = somewhere
308 CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
309 $(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) \
310 $(NBDEBUG_DEFS) $(XPM_DEFS) \
311 $(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
312 /Fo$(OUTDIR)/
314 #>>>>> end of choices
315 ###########################################################################
317 !ifdef OS
318 OS_TYPE = winnt
319 DEL_TREE = rmdir /s /q
320 !else
321 OS_TYPE = win95
322 DEL_TREE = deltree /y
323 !endif
325 INTDIR=$(OBJDIR)
326 OUTDIR=$(OBJDIR)
328 # Derive version of VC being used from nmake if not specified
329 !if "$(MSVCVER)" == ""
330 !if "$(_NMAKE_VER)" == ""
331 MSVCVER = 4.0
332 !endif
333 !if "$(_NMAKE_VER)" == "162"
334 MSVCVER = 5.0
335 !endif
336 !if "$(_NMAKE_VER)" == "6.00.8168.0"
337 MSVCVER = 6.0
338 CPU = ix86
339 !endif
340 !if "$(_NMAKE_VER)" == "7.00.9466"
341 MSVCVER = 7.0
342 !endif
343 !if "$(_NMAKE_VER)" == "7.10.3077"
344 MSVCVER = 7.1
345 !endif
346 !if "$(_NMAKE_VER)" == "8.00.50727.42"
347 MSVCVER = 8.0
348 !endif
349 !if "$(_NMAKE_VER)" == "8.00.50727.762"
350 MSVCVER = 8.0
351 !endif
352 !if "$(_NMAKE_VER)" == "9.00.20706.01"
353 MSVCVER = 9.0
354 !endif
355 !if "$(_NMAKE_VER)" == "9.00.21022.08"
356 MSVCVER = 9.0
357 !endif
358 !if "$(_NMAKE_VER)" == "9.00.30729.01"
359 MSVCVER = 9.0
360 !endif
361 !if "$(_NMAKE_VER)" == "10.00.20506.01"
362 MSVCVER = 10.0
363 !endif
364 !if "$(_NMAKE_VER)" == "10.00.30128.01"
365 MSVCVER = 10.0
366 !endif
367 !endif
369 # Abort bulding VIM if version of VC is unrecognised.
370 !ifndef MSVCVER
371 !message *** ERROR
372 !message Cannot determine Visual C version being used. If you are using the
373 !message Windows SDK then you must have the environment variable MSVCVER set to
374 !message your version of the VC compiler. If you are not using the Express
375 !message version of Visual C, you can either set MSVCVER or update this makefile
376 !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)".
377 !error Make aborted.
378 !endif
380 # Convert processor ID to MVC-compatible number
381 !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0")
382 !if "$(CPUNR)" == "i386"
383 CPUARG = /G3
384 !elseif "$(CPUNR)" == "i486"
385 CPUARG = /G4
386 !elseif "$(CPUNR)" == "i586"
387 CPUARG = /G5
388 !elseif "$(CPUNR)" == "i686"
389 CPUARG = /G6
390 !elseif "$(CPUNR)" == "pentium4"
391 CPUARG = /G7 /arch:SSE2
392 !else
393 CPUARG =
394 !endif
395 !else
396 # VC8/9 only allows specifying SSE architecture
397 !if "$(CPUNR)" == "pentium4"
398 CPUARG = /arch:SSE2
399 !endif
400 !endif
402 LIBC =
403 DEBUGINFO = /Zi
405 !ifdef NODEBUG
406 VIM = vim
407 !if "$(OPTIMIZE)" == "SPACE"
408 OPTFLAG = /O1
409 !elseif "$(OPTIMIZE)" == "SPEED"
410 OPTFLAG = /O2
411 !else # MAXSPEED
412 OPTFLAG = /Ox
413 !endif
414 !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0")
415 # Use link time code generation if not worried about size
416 !if "$(OPTIMIZE)" != "SPACE"
417 OPTFLAG = $(OPTFLAG) /GL
418 !endif
419 !endif
420 CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
421 RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
422 ! ifdef USE_MSVCRT
423 CFLAGS = $(CFLAGS) /MD
424 LIBC = msvcrt.lib
425 ! else
426 LIBC = libcmt.lib
427 CFLAGS = $(CFLAGS) /Zl /MT
428 ! endif
429 !else # DEBUG
430 VIM = vimd
431 ! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
432 DEBUGINFO = /ZI
433 ! endif
434 CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
435 RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
436 # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
437 ! if "$(MSVCVER)" == "4.0"
438 LIBC =
439 ! else
440 LIBC = /fixed:no
441 ! endif
442 ! ifdef USE_MSVCRT
443 CFLAGS = $(CFLAGS) /MDd
444 LIBC = $(LIBC) msvcrtd.lib
445 ! else
446 LIBC = $(LIBC) libcmtd.lib
447 CFLAGS = $(CFLAGS) /Zl /MTd
448 ! endif
449 !endif # DEBUG
451 INCL = vim.h os_win32.h ascii.h feature.h globals.h keymap.h macros.h \
452 proto.h option.h structs.h term.h $(SNIFF_INCL) $(CSCOPE_INCL) \
453 $(NBDEBUG_INCL)
455 OBJ = \
456 $(OUTDIR)\buffer.obj \
457 $(OUTDIR)\charset.obj \
458 $(OUTDIR)\diff.obj \
459 $(OUTDIR)\digraph.obj \
460 $(OUTDIR)\edit.obj \
461 $(OUTDIR)\eval.obj \
462 $(OUTDIR)\ex_cmds.obj \
463 $(OUTDIR)\ex_cmds2.obj \
464 $(OUTDIR)\ex_docmd.obj \
465 $(OUTDIR)\ex_eval.obj \
466 $(OUTDIR)\ex_getln.obj \
467 $(OUTDIR)\fileio.obj \
468 $(OUTDIR)\fold.obj \
469 $(OUTDIR)\getchar.obj \
470 $(OUTDIR)\hardcopy.obj \
471 $(OUTDIR)\hashtab.obj \
472 $(OUTDIR)\main.obj \
473 $(OUTDIR)\mark.obj \
474 $(OUTDIR)\mbyte.obj \
475 $(OUTDIR)\memfile.obj \
476 $(OUTDIR)\memline.obj \
477 $(OUTDIR)\menu.obj \
478 $(OUTDIR)\message.obj \
479 $(OUTDIR)\misc1.obj \
480 $(OUTDIR)\misc2.obj \
481 $(OUTDIR)\move.obj \
482 $(OUTDIR)\normal.obj \
483 $(OUTDIR)\ops.obj \
484 $(OUTDIR)\option.obj \
485 $(OUTDIR)\os_mswin.obj \
486 $(OUTDIR)\os_win32.obj \
487 $(OUTDIR)\pathdef.obj \
488 $(OUTDIR)\popupmnu.obj \
489 $(OUTDIR)\quickfix.obj \
490 $(OUTDIR)\regexp.obj \
491 $(OUTDIR)\screen.obj \
492 $(OUTDIR)\search.obj \
493 $(OUTDIR)\spell.obj \
494 $(OUTDIR)\syntax.obj \
495 $(OUTDIR)\tag.obj \
496 $(OUTDIR)\term.obj \
497 $(OUTDIR)\ui.obj \
498 $(OUTDIR)\undo.obj \
499 $(OUTDIR)\window.obj \
500 $(OUTDIR)\vim.res
502 !if "$(OLE)" == "yes"
503 CFLAGS = $(CFLAGS) -DFEAT_OLE
504 RCFLAGS = $(RCFLAGS) -DFEAT_OLE
505 OLE_OBJ = $(OUTDIR)\if_ole.obj
506 OLE_IDL = if_ole.idl
507 OLE_LIB = oleaut32.lib
508 !endif
510 !if "$(IME)" == "yes"
511 CFLAGS = $(CFLAGS) -DFEAT_MBYTE_IME
512 !ifndef DYNAMIC_IME
513 DYNAMIC_IME = yes
514 !endif
515 !if "$(DYNAMIC_IME)" == "yes"
516 CFLAGS = $(CFLAGS) -DDYNAMIC_IME
517 !else
518 IME_LIB = imm32.lib
519 !endif
520 !endif
522 !if "$(GIME)" == "yes"
523 CFLAGS = $(CFLAGS) -DGLOBAL_IME
524 OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj
525 MBYTE = yes
526 !endif
528 !if "$(MBYTE)" == "yes"
529 CFLAGS = $(CFLAGS) -DFEAT_MBYTE
530 !endif
532 !if "$(GUI)" == "yes"
533 SUBSYSTEM = windows
534 CFLAGS = $(CFLAGS) -DFEAT_GUI_W32
535 RCFLAGS = $(RCFLAGS) -DFEAT_GUI_W32
536 VIM = g$(VIM)
537 GUI_INCL = \
538 gui.h \
539 regexp.h \
540 ascii.h \
541 ex_cmds.h \
542 farsi.h \
543 feature.h \
544 globals.h \
545 gui_beval.h \
546 keymap.h \
547 macros.h \
548 option.h \
549 os_dos.h \
550 os_win32.h
551 GUI_OBJ = \
552 $(OUTDIR)\gui.obj \
553 $(OUTDIR)\gui_beval.obj \
554 $(OUTDIR)\gui_w32.obj \
555 $(OUTDIR)\os_w32exe.obj
556 GUI_LIB = \
557 gdi32.lib version.lib $(IME_LIB) \
558 winspool.lib comctl32.lib advapi32.lib shell32.lib \
559 /machine:$(CPU) /nodefaultlib
560 !else
561 SUBSYSTEM = console
562 !endif
564 # iconv.dll library (dynamically loaded)
565 !ifndef ICONV
566 ICONV = yes
567 !endif
568 !if "$(ICONV)" == "yes"
569 CFLAGS = $(CFLAGS) -DDYNAMIC_ICONV
570 !endif
572 # libintl.dll library
573 !ifndef GETTEXT
574 GETTEXT = yes
575 !endif
576 !if "$(GETTEXT)" == "yes"
577 CFLAGS = $(CFLAGS) -DDYNAMIC_GETTEXT
578 !endif
581 # Support Migemo
583 !ifdef MIGEMO
584 !message Migemo supported - will be dynamic linked.
585 CFLAGS = $(CFLAGS) -DDYNAMIC_MIGEMO
586 !endif
588 # TCL interface
589 !ifdef TCL
590 !ifndef TCL_VER
591 TCL_VER = 83
592 TCL_VER_LONG = 8.3
593 !endif
594 !message Tcl requested (version $(TCL_VER)) - root dir is "$(TCL)"
595 !if "$(DYNAMIC_TCL)" == "yes"
596 !message Tcl DLL will be loaded dynamically
597 TCL_DLL = tcl$(TCL_VER).dll
598 CFLAGS = $(CFLAGS) -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" \
599 -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
600 TCL_OBJ = $(OUTDIR)\if_tcl.obj
601 TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
602 TCL_LIB = $(TCL)\lib\tclstub$(TCL_VER).lib
603 !else
604 CFLAGS = $(CFLAGS) -DFEAT_TCL
605 TCL_OBJ = $(OUTDIR)\if_tcl.obj
606 TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
607 TCL_LIB = $(TCL)\lib\tcl$(TCL_VER)vc.lib
608 !endif
609 !endif
611 # PYTHON interface
612 !ifdef PYTHON
613 !ifndef PYTHON_VER
614 PYTHON_VER = 22
615 !endif
616 !message Python requested (version $(PYTHON_VER)) - root dir is "$(PYTHON)"
617 !if "$(DYNAMIC_PYTHON)" == "yes"
618 !message Python DLL will be loaded dynamically
619 !endif
620 CFLAGS = $(CFLAGS) -DFEAT_PYTHON
621 PYTHON_OBJ = $(OUTDIR)\if_python.obj
622 PYTHON_INC = /I "$(PYTHON)\Include" /I "$(PYTHON)\PC"
623 !if "$(DYNAMIC_PYTHON)" == "yes"
624 CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON \
625 -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
626 PYTHON_LIB = /nodefaultlib:python$(PYTHON_VER).lib
627 !else
628 PYTHON_LIB = $(PYTHON)\libs\python$(PYTHON_VER).lib
629 !endif
630 !endif
632 # MzScheme interface
633 !ifdef MZSCHEME
634 !message MzScheme requested - root dir is "$(MZSCHEME)"
635 !ifndef MZSCHEME_VER
636 MZSCHEME_VER = 205_000
637 !endif
638 CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
639 !if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
640 # for MzScheme 4.x we need to include byte code for basic Scheme stuff
641 MZSCHEME_EXTRA_DEP = mzscheme_base.c
642 CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
643 !endif
644 !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
645 && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
646 !message Building with Precise GC
647 MZSCHEME_PRECISE_GC = yes
648 CFLAGS = $(CFLAGS) -DMZ_PRECISE_GC
649 !endif
650 !if "$(DYNAMIC_MZSCHEME)" == "yes"
651 !if "$(MZSCHEME_PRECISE_GC)" == "yes"
652 !error MzScheme with Precise GC cannot be loaded dynamically
653 !endif
654 !message MzScheme DLLs will be loaded dynamically
655 CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
656 -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
657 -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
658 !else
659 !if "$(MZSCHEME_DEBUG)" == "yes"
660 CFLAGS = $(CFLAGS) -DMZSCHEME_FORCE_GC
661 !endif
662 !if "$(MZSCHEME_PRECISE_GC)" == "yes"
663 # Precise GC does not use separate dll
664 MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
665 !else
666 MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
667 $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
668 !endif
669 !endif
670 MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
671 !endif
673 # Perl interface
674 !ifdef PERL
675 !ifndef PERL_VER
676 PERL_VER = 56
677 !endif
678 !message Perl requested (version $(PERL_VER)) - root dir is "$(PERL)"
679 !if "$(DYNAMIC_PERL)" == "yes"
680 !if $(PERL_VER) >= 56
681 !message Perl DLL will be loaded dynamically
682 !else
683 !message Dynamic loading is not supported for Perl versions earlier than 5.6.0
684 !message Reverting to static loading...
685 !undef DYNAMIC_PERL
686 !endif
687 !endif
689 # Is Perl installed in architecture-specific directories?
690 !if exist($(PERL)\Bin\MSWin32-x86)
691 PERL_ARCH = \MSWin32-x86
692 !endif
694 PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
696 # Version-dependent stuff
697 !if $(PERL_VER) == 55
698 PERL_LIB = $(PERL_INCDIR)\perl.lib
699 !else
700 PERL_DLL = perl$(PERL_VER).dll
701 PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
702 !endif
704 CFLAGS = $(CFLAGS) -DFEAT_PERL
706 # Do we want to load Perl dynamically?
707 !if "$(DYNAMIC_PERL)" == "yes"
708 CFLAGS = $(CFLAGS) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"$(PERL_DLL)\"
709 !undef PERL_LIB
710 !endif
712 PERL_EXE = $(PERL)\Bin$(PERL_ARCH)\perl
713 PERL_INC = /I $(PERL_INCDIR)
714 PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
715 XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
716 XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
718 !endif
721 # Support Ruby interface
723 !ifdef RUBY
724 # Set default value
725 !ifndef RUBY_VER
726 RUBY_VER = 18
727 !endif
728 !ifndef RUBY_VER_LONG
729 RUBY_VER_LONG = 1.8
730 !endif
732 !if $(RUBY_VER) >= 18
733 !ifndef RUBY_PLATFORM
734 RUBY_PLATFORM = i386-mswin32
735 !endif
736 !ifndef RUBY_INSTALL_NAME
737 RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
738 !endif
739 !else
740 !ifndef RUBY_PLATFORM
741 RUBY_PLATFORM = i586-mswin32
742 !endif
743 !ifndef RUBY_INSTALL_NAME
744 RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
745 !endif
746 !endif # $(RUBY_VER) >= 18
748 !message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
749 CFLAGS = $(CFLAGS) -DFEAT_RUBY
750 RUBY_OBJ = $(OUTDIR)\if_ruby.obj
751 RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
752 RUBY_LIB = $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
753 # Do we want to load Ruby dynamically?
754 !if "$(DYNAMIC_RUBY)" == "yes"
755 !message Ruby DLL will be loaded dynamically
756 CFLAGS = $(CFLAGS) -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=$(RUBY_VER) \
757 -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
758 !undef RUBY_LIB
759 !endif
760 !endif # RUBY
763 # Support PostScript printing
765 !if "$(POSTSCRIPT)" == "yes"
766 CFLAGS = $(CFLAGS) -DMSWINPS
767 !endif # POSTSCRIPT
770 # FEATURES: TINY, SMALL, NORMAL, BIG or HUGE
772 !if "$(FEATURES)"==""
773 FEATURES = BIG
774 !endif
775 CFLAGS = $(CFLAGS) -DFEAT_$(FEATURES)
778 # Always generate the .pdb file, so that we get debug symbols that can be used
779 # on a crash (doesn't add overhead to the executable).
780 # Generate edit-and-continue debug info when no optimization - allows to
781 # debug more conveniently (able to look at variables which are in registers)
783 CFLAGS = $(CFLAGS) /Fd$(OUTDIR)/ $(DEBUGINFO)
784 LINK_PDB = /PDB:$(VIM).pdb -debug
787 # End extra feature include
789 !message
791 conflags = /nologo /subsystem:$(SUBSYSTEM)
793 PATHDEF_SRC = $(OUTDIR)\pathdef.c
795 !IF "$(MAP)" == "yes"
796 # "/map" is for debugging
797 conflags = $(conflags) /map
798 !ELSEIF "$(MAP)" == "lines"
799 # "/mapinfo:lines" is for debugging, only works for VC6 and later
800 conflags = $(conflags) /map /mapinfo:lines
801 !ENDIF
803 LINKARGS1 = $(linkdebug) $(conflags)
804 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
805 $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \
806 $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
808 # Report link time code generation progress if used.
809 !ifdef NODEBUG
810 !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0")
811 !if "$(OPTIMIZE)" != "SPACE"
812 LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
813 !endif
814 !endif
815 !endif
817 all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \
818 GvimExt/gvimext.dll
820 $(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
821 $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \
822 $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) version.c version.h
823 $(CC) $(CFLAGS) version.c
824 $(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
825 $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) \
826 $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) \
827 $(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
828 IF EXIST $@.manifest mt -nologo -manifest $@.manifest kaoriya.mnf -outputresource:$@;1
830 $(VIM): $(VIM).exe
832 $(OUTDIR):
833 if not exist $(OUTDIR)/nul mkdir $(OUTDIR)
835 install.exe: dosinst.c
836 $(CC) /nologo -DNDEBUG -DWIN32 dosinst.c kernel32.lib shell32.lib \
837 ole32.lib advapi32.lib uuid.lib
838 - if exist install.exe del install.exe
839 ren dosinst.exe install.exe
841 uninstal.exe: uninstal.c
842 $(CC) /nologo -DNDEBUG -DWIN32 uninstal.c shell32.lib advapi32.lib
843 IF EXIST $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;1
845 vimrun.exe: vimrun.c
846 $(CC) /nologo -DNDEBUG vimrun.c
847 IF EXIST $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;1
849 xxd/xxd.exe: xxd/xxd.c
850 cd xxd
851 $(MAKE) /NOLOGO -f Make_mvc.mak
852 cd ..
853 IF EXIST $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;1
855 GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
856 cd GvimExt
857 $(MAKE) /NOLOGO -f Makefile $(MAKEFLAGS_GVIMEXT)
858 cd ..
861 tags: notags
862 $(CTAGS) *.c *.cpp *.h if_perl.xs proto\*.pro
864 notags:
865 - if exist tags del tags
867 clean:
868 - if exist $(OUTDIR)/nul $(DEL_TREE) $(OUTDIR)
869 - if exist *.obj del *.obj
870 - if exist $(VIM).exe del $(VIM).exe
871 - if exist $(VIM).exe.manifest del $(VIM).exe.manifest
872 - if exist $(VIM).ilk del $(VIM).ilk
873 - if exist $(VIM).pdb del $(VIM).pdb
874 - if exist $(VIM).map del $(VIM).map
875 - if exist $(VIM).ncb del $(VIM).ncb
876 - if exist vimrun.exe del vimrun.exe
877 - if exist install.exe del install.exe
878 - if exist uninstal.exe del uninstal.exe
879 - if exist if_perl.c del if_perl.c
880 - if exist dimm.h del dimm.h
881 - if exist dimm_i.c del dimm_i.c
882 - if exist dimm.tlb del dimm.tlb
883 - if exist dosinst.exe del dosinst.exe
884 - if exist mzscheme_base.c del mzscheme_base.c
885 cd xxd
886 $(MAKE) /NOLOGO -f Make_mvc.mak clean
887 cd ..
888 cd GvimExt
889 $(MAKE) /NOLOGO -f Makefile clean
890 cd ..
891 cd GvimExt
892 $(MAKE) /NOLOGO -f Makefile clean
893 cd ..
894 - if exist testdir\*.out del testdir\*.out
896 test:
897 cd testdir
898 $(MAKE) /NOLOGO -f Make_dos.mak win32
899 cd ..
901 testclean:
902 cd testdir
903 $(MAKE) /NOLOGO -f Make_dos.mak clean
904 cd ..
906 ###########################################################################
908 # Create a default rule for transforming .c files to .obj files in $(OUTDIR)
909 # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
910 !IF "$(MSVCVER)" == "4.0"
911 .c{$(OUTDIR)/}.obj:
912 !ELSE
913 .c{$(OUTDIR)/}.obj::
914 !ENDIF
915 $(CC) $(CFLAGS) $<
917 # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR)
918 # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
919 !IF "$(MSVCVER)" == "4.0"
920 .cpp{$(OUTDIR)/}.obj:
921 !ELSE
922 .cpp{$(OUTDIR)/}.obj::
923 !ENDIF
924 $(CC) $(CFLAGS) $<
926 $(OUTDIR)/buffer.obj: $(OUTDIR) buffer.c $(INCL)
928 $(OUTDIR)/charset.obj: $(OUTDIR) charset.c $(INCL)
930 $(OUTDIR)/diff.obj: $(OUTDIR) diff.c $(INCL)
932 $(OUTDIR)/digraph.obj: $(OUTDIR) digraph.c $(INCL)
934 $(OUTDIR)/edit.obj: $(OUTDIR) edit.c $(INCL)
936 $(OUTDIR)/eval.obj: $(OUTDIR) eval.c $(INCL)
938 $(OUTDIR)/ex_cmds.obj: $(OUTDIR) ex_cmds.c $(INCL)
940 $(OUTDIR)/ex_cmds2.obj: $(OUTDIR) ex_cmds2.c $(INCL)
942 $(OUTDIR)/ex_docmd.obj: $(OUTDIR) ex_docmd.c $(INCL) ex_cmds.h
944 $(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL) ex_cmds.h
946 $(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL)
948 $(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL)
950 $(OUTDIR)/fold.obj: $(OUTDIR) fold.c $(INCL)
952 $(OUTDIR)/getchar.obj: $(OUTDIR) getchar.c $(INCL)
954 $(OUTDIR)/hardcopy.obj: $(OUTDIR) hardcopy.c $(INCL)
956 $(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c $(INCL)
958 $(OUTDIR)/gui.obj: $(OUTDIR) gui.c $(INCL) $(GUI_INCL)
960 $(OUTDIR)/gui_beval.obj: $(OUTDIR) gui_beval.c $(INCL) $(GUI_INCL)
962 $(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c gui_w48.c $(INCL) $(GUI_INCL)
964 $(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
966 if_perl.c : if_perl.xs typemap
967 $(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
968 -typemap typemap if_perl.xs > if_perl.c
970 $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
971 $(CC) $(CFLAGS) $(PERL_INC) if_perl.c
973 $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
974 $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c
976 $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) $(MZSCHEME_EXTRA_DEP)
977 $(CC) $(CFLAGS) if_mzsch.c \
978 -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
979 mzscheme_base.c:
980 $(MZSCHEME)\mzc --c-mods mzscheme_base.c ++lib scheme/base
982 $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c $(INCL)
983 $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c
985 $(OUTDIR)/if_ole.obj: $(OUTDIR) if_ole.cpp $(INCL) if_ole.h
987 $(OUTDIR)/if_ruby.obj: $(OUTDIR) if_ruby.c $(INCL)
988 $(CC) $(CFLAGS) $(RUBY_INC) if_ruby.c
990 $(OUTDIR)/if_sniff.obj: $(OUTDIR) if_sniff.c $(INCL)
991 $(CC) $(CFLAGS) if_sniff.c
993 $(OUTDIR)/if_tcl.obj: $(OUTDIR) if_tcl.c $(INCL)
994 $(CC) $(CFLAGS) $(TCL_INC) if_tcl.c
996 $(OUTDIR)/main.obj: $(OUTDIR) main.c $(INCL)
998 $(OUTDIR)/mark.obj: $(OUTDIR) mark.c $(INCL)
1000 $(OUTDIR)/memfile.obj: $(OUTDIR) memfile.c $(INCL)
1002 $(OUTDIR)/memline.obj: $(OUTDIR) memline.c $(INCL)
1004 $(OUTDIR)/menu.obj: $(OUTDIR) menu.c $(INCL)
1006 $(OUTDIR)/message.obj: $(OUTDIR) message.c $(INCL)
1008 $(OUTDIR)/misc1.obj: $(OUTDIR) misc1.c $(INCL)
1010 $(OUTDIR)/misc2.obj: $(OUTDIR) misc2.c $(INCL)
1012 $(OUTDIR)/move.obj: $(OUTDIR) move.c $(INCL)
1014 $(OUTDIR)/mbyte.obj: $(OUTDIR) mbyte.c $(INCL)
1016 $(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL)
1018 $(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL)
1020 $(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL)
1022 $(OUTDIR)/ops.obj: $(OUTDIR) ops.c $(INCL)
1024 $(OUTDIR)/os_mswin.obj: $(OUTDIR) os_mswin.c $(INCL)
1026 $(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h
1028 $(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL)
1030 $(OUTDIR)/pathdef.obj: $(OUTDIR) $(PATHDEF_SRC) $(INCL)
1031 $(CC) $(CFLAGS) $(PATHDEF_SRC)
1033 $(OUTDIR)/popupmnu.obj: $(OUTDIR) popupmnu.c $(INCL)
1035 $(OUTDIR)/quickfix.obj: $(OUTDIR) quickfix.c $(INCL)
1037 $(OUTDIR)/regexp.obj: $(OUTDIR) regexp.c $(INCL)
1039 $(OUTDIR)/screen.obj: $(OUTDIR) screen.c $(INCL)
1041 $(OUTDIR)/search.obj: $(OUTDIR) search.c $(INCL)
1043 $(OUTDIR)/spell.obj: $(OUTDIR) spell.c $(INCL)
1045 $(OUTDIR)/syntax.obj: $(OUTDIR) syntax.c $(INCL)
1047 $(OUTDIR)/tag.obj: $(OUTDIR) tag.c $(INCL)
1049 $(OUTDIR)/term.obj: $(OUTDIR) term.c $(INCL)
1051 $(OUTDIR)/ui.obj: $(OUTDIR) ui.c $(INCL)
1053 $(OUTDIR)/undo.obj: $(OUTDIR) undo.c $(INCL)
1055 $(OUTDIR)/window.obj: $(OUTDIR) window.c $(INCL)
1057 $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c
1058 $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c
1060 $(OUTDIR)/vim.res: $(OUTDIR) vim.rc gvim.exe.mnf version.h tools.bmp tearoff.bmp \
1061 vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
1062 $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
1064 iid_ole.c if_ole.h vim.tlb: if_ole.idl
1065 midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb \
1066 /header if_ole.h if_ole.idl
1068 dimm.h dimm_i.c: dimm.idl
1069 midl /nologo /error none /proxy nul dimm.idl
1071 $(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL)
1073 $(OUTDIR)/glbl_ime.obj: $(OUTDIR) glbl_ime.cpp dimm.h $(INCL)
1075 # $CFLAGS may contain backslashes and double quotes, escape them both.
1076 E0_CFLAGS = $(CFLAGS:\=\\)
1077 E_CFLAGS = $(E0_CFLAGS:"=\")
1078 # ") stop the string
1080 $(PATHDEF_SRC): auto
1081 @echo creating $(PATHDEF_SRC)
1082 @echo /* pathdef.c */ > $(PATHDEF_SRC)
1083 @echo #include "vim.h" >> $(PATHDEF_SRC)
1084 @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
1085 @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
1086 @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
1087 @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
1088 @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
1089 @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
1091 auto:
1092 if not exist auto/nul mkdir auto
1094 # End Custom Build
1095 proto.h: \
1096 proto/buffer.pro \
1097 proto/charset.pro \
1098 proto/diff.pro \
1099 proto/digraph.pro \
1100 proto/edit.pro \
1101 proto/eval.pro \
1102 proto/ex_cmds.pro \
1103 proto/ex_cmds2.pro \
1104 proto/ex_docmd.pro \
1105 proto/ex_eval.pro \
1106 proto/ex_getln.pro \
1107 proto/fileio.pro \
1108 proto/getchar.pro \
1109 proto/hardcopy.pro \
1110 proto/hashtab.pro \
1111 proto/main.pro \
1112 proto/mark.pro \
1113 proto/memfile.pro \
1114 proto/memline.pro \
1115 proto/menu.pro \
1116 proto/message.pro \
1117 proto/misc1.pro \
1118 proto/misc2.pro \
1119 proto/move.pro \
1120 proto/mbyte.pro \
1121 proto/normal.pro \
1122 proto/ops.pro \
1123 proto/option.pro \
1124 proto/os_mswin.pro \
1125 proto/os_win32.pro \
1126 proto/popupmnu.pro \
1127 proto/quickfix.pro \
1128 proto/regexp.pro \
1129 proto/screen.pro \
1130 proto/search.pro \
1131 proto/spell.pro \
1132 proto/syntax.pro \
1133 proto/tag.pro \
1134 proto/term.pro \
1135 proto/ui.pro \
1136 proto/undo.pro \
1137 proto/window.pro \
1138 $(NETBEANS_PRO)
1140 .SUFFIXES: .cod .i
1142 # Generate foo.cod (mixed source and assembly listing) from foo.c via "nmake
1143 # foo.cod"
1144 .c.cod:
1145 $(CC) $(CFLAGS) /FAcs $<
1147 # Generate foo.i (preprocessor listing) from foo.c via "nmake foo.i"
1148 .c.i:
1149 $(CC) $(CFLAGS) /P /C $<
1152 # vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0: