fork for IVI
[profile/ivi/vim.git] / src / Make_cyg.mak
1 #
2 # Makefile for VIM on Win32, using Cygnus gcc
3 # Last updated by Dan Sharp.  Last Change: 2010 Nov 03
4 #
5 # Also read INSTALLpc.txt!
6 #
7 # This compiles Vim as a Windows application.  If you want Vim to run as a
8 # Cygwin application use the Makefile (just like on Unix).
9 #
10 # GUI           no or yes: set to yes if you want the GUI version (yes)
11 # PERL          define to path to Perl dir to get Perl support (not defined)
12 #   PERL_VER      define to version of Perl being used (56)
13 #   DYNAMIC_PERL  no or yes: set to yes to load the Perl DLL dynamically (yes)
14 # PYTHON        define to path to Python dir to get PYTHON support (not defined)
15 #   PYTHON_VER      define to version of Python being used (22)
16 #   DYNAMIC_PYTHON  no or yes: use yes to load the Python DLL dynamically (yes)
17 # PYTHON3       define to path to Python3 dir to get PYTHON3 support (not defined)
18 #   PYTHON3_VER     define to version of Python3 being used (22)
19 #   DYNAMIC_PYTHON3  no or yes: use yes to load the Python3 DLL dynamically (yes)
20 # TCL           define to path to TCL dir to get TCL support (not defined)
21 #   TCL_VER     define to version of TCL being used (83)
22 #   DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes)
23 # RUBY          define to path to Ruby dir to get Ruby support (not defined)
24 #   RUBY_VER    define to version of Ruby being used (16)
25 #   DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes)
26 # MZSCHEME      define to path to MzScheme dir to get MZSCHEME support (not defined)
27 #   MZSCHEME_VER      define to version of MzScheme being used (209_000)
28 #   DYNAMIC_MZSCHEME  no or yes: use yes to load the MzScheme DLLs dynamically (yes)
29 #   MZSCHEME_DLLS     path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
30 #   MZSCHEME_USE_RACKET  define to use "racket" instead of "mzsch".
31 # LUA   define to path to Lua dir to get Lua support (not defined)
32 #   LUA_VER         define to version of Lua being used (51)
33 #   DYNAMIC_LUA  no or yes: use yes to load the Lua DLL dynamically (yes)
34 # GETTEXT       no or yes: set to yes for dynamic gettext support (yes)
35 # ICONV         no or yes: set to yes for dynamic iconv support (yes)
36 # MBYTE         no or yes: set to yes to include multibyte support (yes)
37 # IME           no or yes: set to yes to include IME support (yes)
38 #   DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
39 # OLE           no or yes: set to yes to make OLE gvim (no)
40 # DEBUG         no or yes: set to yes if you wish a DEBUGging build (no)
41 # CPUNR         No longer supported, use ARCH.
42 # ARCH          i386 through pentium4: select -march argument to compile with
43 #               (i386)
44 # USEDLL        no or yes: set to yes to use the Runtime library DLL (no)
45 #               For USEDLL=yes the cygwin1.dll is required to run Vim.
46 #               "no" does not work with latest version of Cygwin, use
47 #               Make_ming.mak instead.  Or set CC to gcc-3 and add
48 #               -L/lib/w32api to EXTRA_LIBS.
49 # POSTSCRIPT    no or yes: set to yes for PostScript printing (no)
50 # FEATURES      TINY, SMALL, NORMAL, BIG or HUGE (BIG)
51 # WINVER        Lowest Win32 version to support.  (0x0400)
52 # CSCOPE        no or yes: to include cscope interface support (yes)
53 # OPTIMIZE      SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
54 # NETBEANS      no or yes: to include netbeans interface support (yes when GUI
55 #               is yes)
56 # NBDEBUG       no or yes: to include netbeans interface debugging support (no)
57 # XPM           define to path to XPM dir to get XPM image support (not defined)
58 #>>>>> choose options:
59 ifndef GUI
60 GUI=yes
61 endif
62
63 ifndef FEATURES
64 FEATURES = BIG
65 endif
66
67 ifndef GETTEXT
68 GETTEXT = yes
69 endif
70
71 ifndef ICONV
72 ICONV = yes
73 endif
74
75 ifndef MBYTE
76 MBYTE = yes
77 endif
78
79 ifndef IME
80 IME = yes
81 endif
82
83 ifndef ARCH
84 ARCH = i386
85 endif
86
87 ifndef WINVER
88 WINVER = 0x0400
89 endif
90
91 ifndef CSCOPE
92 CSCOPE = yes
93 endif
94
95 ifndef NETBEANS
96 ifeq ($(GUI),yes)
97 NETBEANS = yes
98 endif
99 endif
100
101 ifndef OPTIMIZE
102 OPTIMIZE = MAXSPEED
103 endif
104
105 ### See feature.h for a list of optionals.
106 ### Any other defines can be included here.
107
108 DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
109           -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
110 INCLUDES = -march=$(ARCH) -Iproto
111
112 #>>>>> name of the compiler and linker, name of lib directory
113 CROSS_COMPILE =
114 CC = gcc
115 RC = windres
116
117 ##############################
118 # DYNAMIC_PERL=yes and no both work
119 ##############################
120 ifdef PERL
121 DEFINES += -DFEAT_PERL
122 INCLUDES += -I$(PERL)/lib/CORE
123 EXTRA_OBJS += $(OUTDIR)/if_perl.o
124
125 ifndef DYNAMIC_PERL
126 DYNAMIC_PERL = yes
127 endif
128
129 ifndef PERL_VER
130 PERL_VER = 56
131 endif
132
133 ifeq (yes, $(DYNAMIC_PERL))
134 DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
135 else
136 EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
137 endif
138 endif
139
140 ##############################
141 # DYNAMIC_PYTHON=yes works.
142 # DYNAMIC_PYTHON=no does not (unresolved externals on link).
143 ##############################
144 ifdef PYTHON
145 DEFINES += -DFEAT_PYTHON
146 EXTRA_OBJS += $(OUTDIR)/if_python.o
147
148 ifndef DYNAMIC_PYTHON
149 DYNAMIC_PYTHON = yes
150 endif
151
152 ifndef PYTHON_VER
153 PYTHON_VER = 22
154 endif
155
156 ifeq (yes, $(DYNAMIC_PYTHON))
157 DEFINES += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
158 else
159 EXTRA_LIBS += $(PYTHON)/libs/python$(PYTHON_VER).lib
160 endif
161 endif
162
163 ##############################
164 # DYNAMIC_PYTHON3=yes works.
165 # DYNAMIC_PYTHON3=no does not (unresolved externals on link).
166 ##############################
167 ifdef PYTHON3
168 DEFINES += -DFEAT_PYTHON3
169 EXTRA_OBJS += $(OUTDIR)/if_python3.o
170
171 ifndef DYNAMIC_PYTHON3
172 DYNAMIC_PYTHON3 = yes
173 endif
174
175 ifndef PYTHON3_VER
176 PYTHON3_VER = 31
177 endif
178
179 ifeq (yes, $(DYNAMIC_PYTHON3))
180 DEFINES += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\"
181 else
182 EXTRA_LIBS += $(PYTHON3)/libs/python$(PYTHON3_VER).lib
183 endif
184 endif
185
186 ##############################
187 # DYNAMIC_RUBY=yes works.
188 # DYNAMIC_RUBY=no does not (process exits).
189 ##############################
190 ifdef RUBY
191
192 ifndef RUBY_VER
193 RUBY_VER=16
194 endif
195
196 ifndef RUBY_VER_LONG
197 RUBY_VER_LONG=1.6
198 endif
199
200 ifndef DYNAMIC_RUBY
201 DYNAMIC_RUBY = yes
202 endif
203
204 ifeq ($(RUBY_VER), 16)
205 ifndef RUBY_PLATFORM
206 RUBY_PLATFORM = i586-mswin32
207 endif
208 ifndef RUBY_INSTALL_NAME
209 RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
210 endif
211 else
212 ifndef RUBY_PLATFORM
213 RUBY_PLATFORM = i386-mswin32
214 endif
215 ifndef RUBY_INSTALL_NAME
216 RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
217 endif
218 endif
219
220 DEFINES += -DFEAT_RUBY
221 INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
222 EXTRA_OBJS += $(OUTDIR)/if_ruby.o
223
224 ifeq (yes, $(DYNAMIC_RUBY))
225 DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
226 DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
227 else
228 EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
229 endif
230 endif
231
232 ##############################
233 # DYNAMIC_MZSCHEME=yes works
234 # DYNAMIC_MZSCHEME=no works too
235 ##############################
236 ifdef MZSCHEME
237 DEFINES += -DFEAT_MZSCHEME
238 INCLUDES += -I$(MZSCHEME)/include
239 EXTRA_OBJS += $(OUTDIR)/if_mzsch.o
240
241 ifndef DYNAMIC_MZSCHEME
242 DYNAMIC_MZSCHEME = yes
243 endif
244
245 ifndef MZSCHEME_VER
246 MZSCHEME_VER = 209_000
247 endif
248
249 ifndef MZSCHEME_PRECISE_GC
250 MZSCHEME_PRECISE_GC=no
251 endif
252
253 # for version 4.x we need to generate byte-code for Scheme base
254 ifndef MZSCHEME_GENERATE_BASE
255 MZSCHEME_GENERATE_BASE=no
256 endif
257
258 ifndef MZSCHEME_USE_RACKET
259 MZSCHEME_MAIN_LIB=mzsch
260 else
261 MZSCHEME_MAIN_LIB=racket
262 endif
263
264 ifeq (yes, $(DYNAMIC_MZSCHEME))
265 DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
266 else
267 ifndef MZSCHEME_DLLS
268 MZSCHEME_DLLS = $(MZSCHEME)
269 endif
270 ifeq (yes,$(MZSCHEME_PRECISE_GC))
271 MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
272 else
273 MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
274 endif
275 EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
276 endif
277 ifeq (yes,$(MZSCHEME_GENERATE_BASE))
278 DEFINES += -DINCLUDE_MZSCHEME_BASE
279 MZ_EXTRA_DEP += mzscheme_base.c
280 endif
281 ifeq (yes,$(MZSCHEME_PRECISE_GC))
282 DEFINES += -DMZ_PRECISE_GC
283 endif
284 endif
285
286 ##############################
287 # DYNAMIC_TCL=yes and no both work.
288 ##############################
289 ifdef TCL
290 DEFINES += -DFEAT_TCL
291 INCLUDES += -I$(TCL)/include
292 EXTRA_OBJS += $(OUTDIR)/if_tcl.o
293
294 ifndef DYNAMIC_TCL
295 DYNAMIC_TCL = yes
296 endif
297
298 ifndef TCL_VER
299 TCL_VER = 83
300 endif
301
302 ifeq (yes, $(DYNAMIC_TCL))
303 DEFINES += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
304 EXTRA_LIBS += $(TCL)/lib/tclstub$(TCL_VER).lib
305 else
306 EXTRA_LIBS += $(TCL)/lib/tcl$(TCL_VER).lib
307 endif
308 endif
309
310 ##############################
311 # DYNAMIC_LUA=yes works.
312 # DYNAMIC_LUA=no does not (unresolved externals on link).
313 ##############################
314 ifdef LUA
315 DEFINES += -DFEAT_LUA
316 INCLUDES += -I$(LUA)/include
317 EXTRA_OBJS += $(OUTDIR)/if_lua.o
318
319 ifndef DYNAMIC_LUA
320 DYNAMIC_LUA = yes
321 endif
322
323 ifndef LUA_VER
324 LUA_VER = 51
325 endif
326
327 ifeq (yes, $(DYNAMIC_LUA))
328 DEFINES += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
329 else
330 EXTRA_LIBS += $(LUA)/lib/lua$(LUA_VER).lib
331 endif
332 endif
333
334 ##############################
335 ifeq (yes, $(GETTEXT))
336 DEFINES += -DDYNAMIC_GETTEXT
337 endif
338
339 ##############################
340 ifeq (yes, $(ICONV))
341 DEFINES += -DDYNAMIC_ICONV
342 endif
343
344 ##############################
345 ifeq (yes, $(MBYTE))
346 DEFINES += -DFEAT_MBYTE
347 endif
348
349 ##############################
350 ifeq (yes, $(IME))
351 DEFINES += -DFEAT_MBYTE_IME
352
353 ifndef DYNAMIC_IME
354 DYNAMIC_IME = yes
355 endif
356
357 ifeq (yes, $(DYNAMIC_IME))
358 DEFINES += -DDYNAMIC_IME
359 else
360 EXTRA_LIBS += -limm32
361 endif
362 endif
363
364 ##############################
365 ifeq (yes, $(DEBUG))
366 DEFINES += -DDEBUG
367 INCLUDES += -g -fstack-check
368 DEBUG_SUFFIX = d
369 else
370
371 ifeq ($(OPTIMIZE), SIZE)
372 OPTFLAG = -Os
373 else
374 ifeq ($(OPTIMIZE), MAXSPEED)
375 OPTFLAG = -O3 -fomit-frame-pointer -freg-struct-return
376 else
377 OPTFLAG = -O2
378 endif
379 endif
380
381 # A bug in the GCC <= 3.2 optimizer can cause a crash.  The
382 # following option removes the problem optimization.
383 OPTFLAG += -fno-strength-reduce
384
385 INCLUDES += -s
386
387 endif
388
389 ##############################
390 # USEDLL=yes will build a Cygwin32 executable that relies on cygwin1.dll.
391 # USEDLL=no will build a Mingw32 executable with no extra dll dependencies.
392 ##############################
393 ifeq (yes, $(USEDLL))
394 DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
395 else
396 INCLUDES += -mno-cygwin
397 endif
398
399 ##############################
400 ifeq (yes, $(POSTSCRIPT))
401 DEFINES += -DMSWINPS
402 endif
403
404 ##############################
405 ifeq (yes, $(CSCOPE))
406 DEFINES += -DFEAT_CSCOPE
407 EXTRA_OBJS += $(OUTDIR)/if_cscope.o
408 endif
409
410 ##############################
411 ifeq ($(GUI),yes)
412
413 ##############################
414 ifeq (yes, $(NETBEANS))
415 # Only allow NETBEANS for a GUI build.
416 DEFINES += -DFEAT_NETBEANS_INTG
417 EXTRA_OBJS += $(OUTDIR)/netbeans.o
418 EXTRA_LIBS += -lwsock32
419
420 ifeq (yes, $(NBDEBUG))
421 DEFINES += -DNBDEBUG
422 NBDEBUG_DEP = nbdebug.h nbdebug.c
423 endif
424
425 endif
426
427 ##############################
428 ifdef XPM
429 # Only allow XPM for a GUI build.
430 DEFINES += -DFEAT_XPM_W32
431 INCLUDES += -I$(XPM)/include
432 EXTRA_OBJS += $(OUTDIR)/xpm_w32.o
433 EXTRA_LIBS += -L$(XPM)/lib -lXpm
434 endif
435
436 ##############################
437 EXE = gvim$(DEBUG_SUFFIX).exe
438 OUTDIR = gobj$(DEBUG_SUFFIX)
439 DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
440 EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
441 EXTRA_LIBS += -mwindows -lcomctl32 -lversion
442 else
443 EXE = vim$(DEBUG_SUFFIX).exe
444 OUTDIR = obj$(DEBUG_SUFFIX)
445 LIBS += -luser32 -lgdi32 -lcomdlg32
446 endif
447
448 ##############################
449 ifeq (yes, $(OLE))
450 DEFINES += -DFEAT_OLE
451 EXTRA_OBJS += $(OUTDIR)/if_ole.o
452 EXTRA_LIBS += -loleaut32 -lstdc++
453 endif
454
455 ##############################
456 ifneq (sh.exe, $(SHELL))
457 DEL = rm
458 MKDIR = mkdir -p
459 DIRSLASH = /
460 else
461 DEL = del
462 MKDIR = mkdir
463 DIRSLASH = \\
464 endif
465
466 #>>>>> end of choices
467 ###########################################################################
468
469 INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_win32.h \
470        structs.h version.h
471
472 CFLAGS = $(OPTFLAG) $(DEFINES) $(INCLUDES)
473
474 RCFLAGS = -O coff $(DEFINES)
475
476 OBJ = \
477         $(OUTDIR)/blowfish.o \
478         $(OUTDIR)/buffer.o \
479         $(OUTDIR)/charset.o \
480         $(OUTDIR)/diff.o \
481         $(OUTDIR)/digraph.o \
482         $(OUTDIR)/edit.o \
483         $(OUTDIR)/eval.o \
484         $(OUTDIR)/ex_cmds.o \
485         $(OUTDIR)/ex_cmds2.o \
486         $(OUTDIR)/ex_docmd.o \
487         $(OUTDIR)/ex_eval.o \
488         $(OUTDIR)/ex_getln.o \
489         $(OUTDIR)/fileio.o \
490         $(OUTDIR)/fold.o \
491         $(OUTDIR)/getchar.o \
492         $(OUTDIR)/hardcopy.o \
493         $(OUTDIR)/hashtab.o \
494         $(OUTDIR)/main.o \
495         $(OUTDIR)/mark.o \
496         $(OUTDIR)/memfile.o \
497         $(OUTDIR)/memline.o \
498         $(OUTDIR)/menu.o \
499         $(OUTDIR)/message.o \
500         $(OUTDIR)/misc1.o \
501         $(OUTDIR)/misc2.o \
502         $(OUTDIR)/move.o \
503         $(OUTDIR)/mbyte.o \
504         $(OUTDIR)/normal.o \
505         $(OUTDIR)/ops.o \
506         $(OUTDIR)/option.o \
507         $(OUTDIR)/os_win32.o \
508         $(OUTDIR)/os_mswin.o \
509         $(OUTDIR)/pathdef.o \
510         $(OUTDIR)/popupmnu.o \
511         $(OUTDIR)/quickfix.o \
512         $(OUTDIR)/regexp.o \
513         $(OUTDIR)/screen.o \
514         $(OUTDIR)/search.o \
515         $(OUTDIR)/sha256.o \
516         $(OUTDIR)/spell.o \
517         $(OUTDIR)/syntax.o \
518         $(OUTDIR)/tag.o \
519         $(OUTDIR)/term.o \
520         $(OUTDIR)/ui.o \
521         $(OUTDIR)/undo.o \
522         $(OUTDIR)/version.o \
523         $(OUTDIR)/vimrc.o \
524         $(OUTDIR)/window.o \
525         $(EXTRA_OBJS)
526
527 all: $(EXE) xxd/xxd.exe vimrun.exe install.exe uninstal.exe GvimExt/gvimext.dll
528
529 # According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for
530 # linking unless calling ld directly.
531 # See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information.
532 $(EXE): $(OUTDIR) $(OBJ)
533         $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
534
535 xxd/xxd.exe: xxd/xxd.c
536         $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
537
538 GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
539         $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE)
540
541 vimrun.exe: vimrun.c
542         $(CC) $(CFLAGS) -o vimrun.exe vimrun.c  $(LIBS)
543
544 install.exe: dosinst.c
545         $(CC) $(CFLAGS) -o install.exe dosinst.c  $(LIBS) -luuid -lole32
546
547 uninstal.exe: uninstal.c
548         $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIBS)
549
550 $(OUTDIR):
551         $(MKDIR) $(OUTDIR)
552
553 tags:
554         command /c ctags *.c $(INCL)
555
556 clean:
557         -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
558         -rmdir $(OUTDIR)
559         -$(DEL) $(EXE) vimrun.exe install.exe uninstal.exe
560 ifdef PERL
561         -$(DEL) if_perl.c
562 endif
563 ifdef MZSCHEME
564         -$(DEL) mzscheme_base.c
565 endif
566         -$(DEL) pathdef.c
567         $(MAKE) -C xxd -f Make_cyg.mak clean
568         $(MAKE) -C GvimExt -f Make_cyg.mak clean
569
570 distclean: clean
571         -$(DEL) obj$(DIRSLASH)*.o
572         -rmdir obj
573         -$(DEL) gobj$(DIRSLASH)*.o
574         -rmdir gobj
575         -$(DEL) objd$(DIRSLASH)*.o
576         -rmdir objd
577         -$(DEL) gobjd$(DIRSLASH)*.o
578         -rmdir gobjd
579         -$(DEL) *.exe
580
581 ###########################################################################
582
583 $(OUTDIR)/%.o : %.c $(INCL)
584         $(CC) -c $(CFLAGS) $< -o $@
585
586 $(OUTDIR)/ex_docmd.o:   ex_docmd.c $(INCL) ex_cmds.h
587         $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
588
589 $(OUTDIR)/ex_eval.o:    ex_eval.c $(INCL) ex_cmds.h
590         $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
591
592 $(OUTDIR)/if_cscope.o:  if_cscope.c $(INCL) if_cscope.h
593         $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
594
595 $(OUTDIR)/if_ole.o:     if_ole.cpp $(INCL)
596         $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o
597
598 $(OUTDIR)/if_python.o : if_python.c $(INCL)
599         $(CC) -c $(CFLAGS) -I$(PYTHON)/include $< -o $@
600
601 $(OUTDIR)/if_python3.o : if_python3.c $(INCL)
602         $(CC) -c $(CFLAGS) -I$(PYTHON3)/include $< -o $@
603
604 if_perl.c: if_perl.xs typemap
605         $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \
606                 -prototypes -typemap \
607                 `cygpath -d $(PERL)/lib/ExtUtils/typemap` if_perl.xs > $@
608
609 $(OUTDIR)/if_perl.o:    if_perl.c $(INCL)
610 ifeq (yes, $(USEDLL))
611         $(CC) -c $(CFLAGS) -I/usr/include/mingw -D__MINGW32__ if_perl.c -o $(OUTDIR)/if_perl.o
612 endif
613
614 $(OUTDIR)/if_ruby.o:    if_ruby.c $(INCL)
615 ifeq (16, $(RUBY_VER))
616         $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o
617 endif
618
619 $(OUTDIR)/netbeans.o:   netbeans.c $(INCL) $(NBDEBUG_DEP)
620         $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
621
622 $(OUTDIR)/if_mzsch.o:   if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
623         $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
624
625 $(OUTDIR)/vimrc.o:      vim.rc version.h gui_w32_rc.h
626         $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
627
628 mzscheme_base.c:
629         $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
630
631 pathdef.c: $(INCL)
632 ifneq (sh.exe, $(SHELL))
633         @echo creating pathdef.c
634         @echo '/* pathdef.c */' > pathdef.c
635         @echo '#include "vim.h"' >> pathdef.c
636         @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
637         @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
638         @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
639         @echo 'char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)";' >> pathdef.c
640         @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
641         @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
642 else
643         @echo creating pathdef.c
644         @echo /* pathdef.c */ > pathdef.c
645         @echo #include "vim.h" >> pathdef.c
646         @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
647         @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
648         @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
649         @echo char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)"; >> pathdef.c
650         @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
651         @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
652 endif
653