blob: 9091d09467165ce435940b182480b74d0a7788fa [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001#
2# Makefile for VIM on Win32, using Cygnus gcc
Bram Moolenaar48f80c22010-02-24 15:08:27 +01003# Last updated by Dan Sharp. Last Change: 2010 Feb 24
Bram Moolenaar65c1b012005-01-31 19:02:28 +00004#
5# Also read INSTALLpc.txt!
Bram Moolenaar071d4272004-06-13 20:20:40 +00006#
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# TCL define to path to TCL dir to get TCL support (not defined)
18# TCL_VER define to version of TCL being used (83)
19# DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes)
20# RUBY define to path to Ruby dir to get Ruby support (not defined)
21# RUBY_VER define to version of Ruby being used (16)
22# DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes)
Bram Moolenaar281bdce2005-01-25 21:53:18 +000023# MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined)
24# MZSCHEME_VER define to version of MzScheme being used (209_000)
25# DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes)
Bram Moolenaar65c1b012005-01-31 19:02:28 +000026# MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
Bram Moolenaar071d4272004-06-13 20:20:40 +000027# GETTEXT no or yes: set to yes for dynamic gettext support (yes)
28# ICONV no or yes: set to yes for dynamic iconv support (yes)
29# MBYTE no or yes: set to yes to include multibyte support (yes)
30# IME no or yes: set to yes to include IME support (yes)
31# DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
32# OLE no or yes: set to yes to make OLE gvim (no)
33# DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000034# CPUNR No longer supported, use ARCH.
Bram Moolenaar48f80c22010-02-24 15:08:27 +010035# ARCH i386 through pentium4: select -march argument to compile with
36# (i386)
Bram Moolenaar071d4272004-06-13 20:20:40 +000037# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
38# For USEDLL=yes the cygwin1.dll is required to run Vim.
Bram Moolenaar48f80c22010-02-24 15:08:27 +010039# "no" does not work with latest version of Cygwin, use
Bram Moolenaar164fca32010-07-14 13:58:07 +020040# Make_ming.mak instead. Or set CC to gcc-3 and add
41# -L/lib/w32api to EXTRA_LIBS.
Bram Moolenaar071d4272004-06-13 20:20:40 +000042# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
43# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
44# WINVER Lowest Win32 version to support. (0x0400)
45# CSCOPE no or yes: to include cscope interface support (yes)
46# OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
47# NETBEANS no or yes: to include netbeans interface support (yes when GUI
48# is yes)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000049# NBDEBUG no or yes: to include netbeans interface debugging support (no)
Bram Moolenaar071d4272004-06-13 20:20:40 +000050# XPM define to path to XPM dir to get XPM image support (not defined)
51#>>>>> choose options:
52ifndef GUI
53GUI=yes
54endif
55
56ifndef FEATURES
57FEATURES = BIG
58endif
59
60ifndef GETTEXT
61GETTEXT = yes
62endif
63
64ifndef ICONV
65ICONV = yes
66endif
67
68ifndef MBYTE
69MBYTE = yes
70endif
71
72ifndef IME
73IME = yes
74endif
75
Bram Moolenaar071d4272004-06-13 20:20:40 +000076ifndef ARCH
77ARCH = i386
78endif
79
80ifndef WINVER
81WINVER = 0x0400
82endif
83
84ifndef CSCOPE
85CSCOPE = yes
86endif
87
88ifndef NETBEANS
89ifeq ($(GUI),yes)
90NETBEANS = yes
91endif
92endif
93
94ifndef OPTIMIZE
95OPTIMIZE = MAXSPEED
96endif
97
98### See feature.h for a list of optionals.
99### Any other defines can be included here.
100
101DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
102 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000103INCLUDES = -march=$(ARCH) -Iproto
Bram Moolenaar071d4272004-06-13 20:20:40 +0000104
105#>>>>> name of the compiler and linker, name of lib directory
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100106CROSS_COMPILE =
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107CC = gcc
108RC = windres
109
110##############################
111# DYNAMIC_PERL=yes and no both work
112##############################
113ifdef PERL
114DEFINES += -DFEAT_PERL
115INCLUDES += -I$(PERL)/lib/CORE
116EXTRA_OBJS += $(OUTDIR)/if_perl.o
117
118ifndef DYNAMIC_PERL
119DYNAMIC_PERL = yes
120endif
121
122ifndef PERL_VER
123PERL_VER = 56
124endif
125
126ifeq (yes, $(DYNAMIC_PERL))
127DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
128else
129EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
130endif
131endif
132
133##############################
134# DYNAMIC_PYTHON=yes works.
135# DYNAMIC_PYTHON=no does not (unresolved externals on link).
136##############################
137ifdef PYTHON
138DEFINES += -DFEAT_PYTHON
139INCLUDES += -I$(PYTHON)/include
140EXTRA_OBJS += $(OUTDIR)/if_python.o
141
142ifndef DYNAMIC_PYTHON
143DYNAMIC_PYTHON = yes
144endif
145
146ifndef PYTHON_VER
147PYTHON_VER = 22
148endif
149
150ifeq (yes, $(DYNAMIC_PYTHON))
151DEFINES += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
152else
153EXTRA_LIBS += $(PYTHON)/libs/python$(PYTHON_VER).lib
154endif
155endif
156
157##############################
158# DYNAMIC_RUBY=yes works.
159# DYNAMIC_RUBY=no does not (process exits).
160##############################
161ifdef RUBY
162
163ifndef RUBY_VER
164RUBY_VER=16
165endif
166
167ifndef RUBY_VER_LONG
168RUBY_VER_LONG=1.6
169endif
170
171ifndef DYNAMIC_RUBY
172DYNAMIC_RUBY = yes
173endif
174
175ifeq ($(RUBY_VER), 16)
176ifndef RUBY_PLATFORM
177RUBY_PLATFORM = i586-mswin32
178endif
179ifndef RUBY_INSTALL_NAME
180RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
181endif
182else
183ifndef RUBY_PLATFORM
184RUBY_PLATFORM = i386-mswin32
185endif
186ifndef RUBY_INSTALL_NAME
187RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
188endif
189endif
190
191DEFINES += -DFEAT_RUBY
192INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
193EXTRA_OBJS += $(OUTDIR)/if_ruby.o
194
195ifeq (yes, $(DYNAMIC_RUBY))
196DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
197DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
198else
199EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
200endif
201endif
202
203##############################
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000204# DYNAMIC_MZSCHEME=yes works
205# DYNAMIC_MZSCHEME=no works too
206##############################
207ifdef MZSCHEME
208DEFINES += -DFEAT_MZSCHEME
209INCLUDES += -I$(MZSCHEME)/include
210EXTRA_OBJS += $(OUTDIR)/if_mzsch.o
211
212ifndef DYNAMIC_MZSCHEME
213DYNAMIC_MZSCHEME = yes
214endif
215
216ifndef MZSCHEME_VER
217MZSCHEME_VER = 209_000
218endif
219
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000220ifndef MZSCHEME_PRECISE_GC
221MZSCHEME_PRECISE_GC=no
222endif
223
224# for version 4.x we need to generate byte-code for Scheme base
225ifndef MZSCHEME_GENERATE_BASE
226MZSCHEME_GENERATE_BASE=no
227endif
228
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000229ifeq (yes, $(DYNAMIC_MZSCHEME))
230DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
231else
232ifndef MZSCHEME_DLLS
233MZSCHEME_DLLS = $(MZSCHEME)
234endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000235ifeq (yes,$(MZSCHEME_PRECISE_GC))
236MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
237else
238MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
239endif
240EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
241endif
242ifeq (yes,$(MZSCHEME_GENERATE_BASE))
243DEFINES += -DINCLUDE_MZSCHEME_BASE
244MZ_EXTRA_DEP += mzscheme_base.c
245endif
246ifeq (yes,$(MZSCHEME_PRECISE_GC))
247DEFINES += -DMZ_PRECISE_GC
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000248endif
249endif
250
251##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000252# DYNAMIC_TCL=yes and no both work.
253##############################
254ifdef TCL
255DEFINES += -DFEAT_TCL
256INCLUDES += -I$(TCL)/include
257EXTRA_OBJS += $(OUTDIR)/if_tcl.o
258
259ifndef DYNAMIC_TCL
260DYNAMIC_TCL = yes
261endif
262
263ifndef TCL_VER
264TCL_VER = 83
265endif
266
267ifeq (yes, $(DYNAMIC_TCL))
268DEFINES += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
269EXTRA_LIBS += $(TCL)/lib/tclstub$(TCL_VER).lib
270else
271EXTRA_LIBS += $(TCL)/lib/tcl$(TCL_VER).lib
272endif
273endif
274
275##############################
276ifeq (yes, $(GETTEXT))
277DEFINES += -DDYNAMIC_GETTEXT
278endif
279
280##############################
281ifeq (yes, $(ICONV))
282DEFINES += -DDYNAMIC_ICONV
283endif
284
285##############################
286ifeq (yes, $(MBYTE))
287DEFINES += -DFEAT_MBYTE
288endif
289
290##############################
291ifeq (yes, $(IME))
292DEFINES += -DFEAT_MBYTE_IME
293
294ifndef DYNAMIC_IME
295DYNAMIC_IME = yes
296endif
297
298ifeq (yes, $(DYNAMIC_IME))
299DEFINES += -DDYNAMIC_IME
300else
301EXTRA_LIBS += -limm32
302endif
303endif
304
305##############################
306ifeq (yes, $(DEBUG))
307DEFINES += -DDEBUG
308INCLUDES += -g -fstack-check
309DEBUG_SUFFIX = d
310else
311
312ifeq ($(OPTIMIZE), SIZE)
313OPTFLAG = -Os
314else
315ifeq ($(OPTIMIZE), MAXSPEED)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000316OPTFLAG = -O3 -fomit-frame-pointer -freg-struct-return
Bram Moolenaar071d4272004-06-13 20:20:40 +0000317else
318OPTFLAG = -O2
319endif
320endif
321
322# A bug in the GCC <= 3.2 optimizer can cause a crash. The
323# following option removes the problem optimization.
324OPTFLAG += -fno-strength-reduce
325
326INCLUDES += -s
327
328endif
329
330##############################
331# USEDLL=yes will build a Cygwin32 executable that relies on cygwin1.dll.
332# USEDLL=no will build a Mingw32 executable with no extra dll dependencies.
333##############################
334ifeq (yes, $(USEDLL))
335DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
336else
337INCLUDES += -mno-cygwin
338endif
339
340##############################
341ifeq (yes, $(POSTSCRIPT))
342DEFINES += -DMSWINPS
343endif
344
345##############################
346ifeq (yes, $(CSCOPE))
347DEFINES += -DFEAT_CSCOPE
348EXTRA_OBJS += $(OUTDIR)/if_cscope.o
349endif
350
351##############################
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000352ifeq ($(GUI),yes)
353
354##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000355ifeq (yes, $(NETBEANS))
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000356# Only allow NETBEANS for a GUI build.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000357DEFINES += -DFEAT_NETBEANS_INTG
Bram Moolenaar408fb622005-03-07 23:03:19 +0000358EXTRA_OBJS += $(OUTDIR)/netbeans.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000359EXTRA_LIBS += -lwsock32
360
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000361ifeq (yes, $(NBDEBUG))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000362DEFINES += -DNBDEBUG
363NBDEBUG_DEP = nbdebug.h nbdebug.c
364endif
365
366endif
367
368##############################
369ifdef XPM
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000370# Only allow XPM for a GUI build.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000371DEFINES += -DFEAT_XPM_W32
372INCLUDES += -I$(XPM)/include
373EXTRA_OBJS += $(OUTDIR)/xpm_w32.o
374EXTRA_LIBS += -L$(XPM)/lib -lXpm
375endif
376
377##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000378EXE = gvim$(DEBUG_SUFFIX).exe
379OUTDIR = gobj$(DEBUG_SUFFIX)
380DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
Bram Moolenaar408fb622005-03-07 23:03:19 +0000381EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
Bram Moolenaar45360022005-07-21 21:08:21 +0000382EXTRA_LIBS += -mwindows -lcomctl32 -lversion
Bram Moolenaar071d4272004-06-13 20:20:40 +0000383else
384EXE = vim$(DEBUG_SUFFIX).exe
385OUTDIR = obj$(DEBUG_SUFFIX)
386LIBS += -luser32 -lgdi32 -lcomdlg32
387endif
388
389##############################
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000390ifeq (yes, $(OLE))
391DEFINES += -DFEAT_OLE
392EXTRA_OBJS += $(OUTDIR)/if_ole.o
393EXTRA_LIBS += -loleaut32 -lstdc++
394endif
395
396##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000397ifneq (sh.exe, $(SHELL))
398DEL = rm
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000399MKDIR = mkdir -p
Bram Moolenaar071d4272004-06-13 20:20:40 +0000400DIRSLASH = /
401else
402DEL = del
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000403MKDIR = mkdir
Bram Moolenaar071d4272004-06-13 20:20:40 +0000404DIRSLASH = \\
405endif
406
407#>>>>> end of choices
408###########################################################################
409
410INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_win32.h \
411 structs.h version.h
412
413CFLAGS = $(OPTFLAG) $(DEFINES) $(INCLUDES)
414
415RCFLAGS = -O coff $(DEFINES)
416
417OBJ = \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200418 $(OUTDIR)/blowfish.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000419 $(OUTDIR)/buffer.o \
420 $(OUTDIR)/charset.o \
421 $(OUTDIR)/diff.o \
422 $(OUTDIR)/digraph.o \
423 $(OUTDIR)/edit.o \
424 $(OUTDIR)/eval.o \
425 $(OUTDIR)/ex_cmds.o \
426 $(OUTDIR)/ex_cmds2.o \
427 $(OUTDIR)/ex_docmd.o \
428 $(OUTDIR)/ex_eval.o \
429 $(OUTDIR)/ex_getln.o \
430 $(OUTDIR)/fileio.o \
431 $(OUTDIR)/fold.o \
432 $(OUTDIR)/getchar.o \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000433 $(OUTDIR)/hardcopy.o \
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000434 $(OUTDIR)/hashtab.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000435 $(OUTDIR)/main.o \
436 $(OUTDIR)/mark.o \
437 $(OUTDIR)/memfile.o \
438 $(OUTDIR)/memline.o \
439 $(OUTDIR)/menu.o \
440 $(OUTDIR)/message.o \
441 $(OUTDIR)/misc1.o \
442 $(OUTDIR)/misc2.o \
443 $(OUTDIR)/move.o \
444 $(OUTDIR)/mbyte.o \
445 $(OUTDIR)/normal.o \
446 $(OUTDIR)/ops.o \
447 $(OUTDIR)/option.o \
448 $(OUTDIR)/os_win32.o \
449 $(OUTDIR)/os_mswin.o \
450 $(OUTDIR)/pathdef.o \
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000451 $(OUTDIR)/popupmnu.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000452 $(OUTDIR)/quickfix.o \
453 $(OUTDIR)/regexp.o \
454 $(OUTDIR)/screen.o \
455 $(OUTDIR)/search.o \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200456 $(OUTDIR)/sha256.o \
Bram Moolenaarfc735152005-03-22 22:54:12 +0000457 $(OUTDIR)/spell.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000458 $(OUTDIR)/syntax.o \
459 $(OUTDIR)/tag.o \
460 $(OUTDIR)/term.o \
461 $(OUTDIR)/ui.o \
462 $(OUTDIR)/undo.o \
463 $(OUTDIR)/version.o \
464 $(OUTDIR)/vimrc.o \
465 $(OUTDIR)/window.o \
466 $(EXTRA_OBJS)
467
468all: $(EXE) xxd/xxd.exe vimrun.exe install.exe uninstal.exe GvimExt/gvimext.dll
469
470# According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for
471# linking unless calling ld directly.
472# See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information.
473$(EXE): $(OUTDIR) $(OBJ)
474 $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
475
476xxd/xxd.exe: xxd/xxd.c
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100477 $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000478
479GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100480 $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000481
482vimrun.exe: vimrun.c
483 $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
484
485install.exe: dosinst.c
486 $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIBS) -luuid -lole32
487
488uninstal.exe: uninstal.c
489 $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIBS)
490
491$(OUTDIR):
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000492 $(MKDIR) $(OUTDIR)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000493
494tags:
495 command /c ctags *.c $(INCL)
496
497clean:
498 -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
499 -rmdir $(OUTDIR)
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000500 -$(DEL) $(EXE) vimrun.exe install.exe uninstal.exe
Bram Moolenaar071d4272004-06-13 20:20:40 +0000501ifdef PERL
502 -$(DEL) if_perl.c
503endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000504ifdef MZSCHEME
505 -$(DEL) mzscheme_base.c
506endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000507 -$(DEL) pathdef.c
508 $(MAKE) -C xxd -f Make_cyg.mak clean
509 $(MAKE) -C GvimExt -f Make_ming.mak clean
510
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000511distclean: clean
512 -$(DEL) obj$(DIRSLASH)*.o
513 -rmdir obj
514 -$(DEL) gobj$(DIRSLASH)*.o
515 -rmdir gobj
516 -$(DEL) objd$(DIRSLASH)*.o
517 -rmdir objd
518 -$(DEL) gobjd$(DIRSLASH)*.o
519 -rmdir gobjd
520 -$(DEL) *.exe
521
Bram Moolenaar071d4272004-06-13 20:20:40 +0000522###########################################################################
523
524$(OUTDIR)/%.o : %.c $(INCL)
525 $(CC) -c $(CFLAGS) $< -o $@
526
527$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
528 $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
529
530$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
531 $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
532
533$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
534 $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
535
536$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
Bram Moolenaar61bfb9f2007-09-30 20:28:48 +0000537 $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000538
539if_perl.c: if_perl.xs typemap
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000540 $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \
541 -prototypes -typemap \
542 `cygpath -d $(PERL)/lib/ExtUtils/typemap` if_perl.xs > $@
Bram Moolenaar071d4272004-06-13 20:20:40 +0000543
544$(OUTDIR)/if_perl.o: if_perl.c $(INCL)
545ifeq (yes, $(USEDLL))
546 $(CC) -c $(CFLAGS) -I/usr/include/mingw -D__MINGW32__ if_perl.c -o $(OUTDIR)/if_perl.o
547endif
548
549$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
550ifeq (16, $(RUBY_VER))
551 $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o
552endif
553
554$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP)
555 $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
556
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000557$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
558 $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
559
Bram Moolenaar071d4272004-06-13 20:20:40 +0000560$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
561 $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
562
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000563mzscheme_base.c:
564 $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
565
Bram Moolenaar071d4272004-06-13 20:20:40 +0000566pathdef.c: $(INCL)
567ifneq (sh.exe, $(SHELL))
568 @echo creating pathdef.c
569 @echo '/* pathdef.c */' > pathdef.c
570 @echo '#include "vim.h"' >> pathdef.c
571 @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
572 @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
573 @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
574 @echo 'char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)";' >> pathdef.c
575 @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
576 @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
577else
578 @echo creating pathdef.c
579 @echo /* pathdef.c */ > pathdef.c
580 @echo #include "vim.h" >> pathdef.c
581 @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
582 @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
583 @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
584 @echo char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)"; >> pathdef.c
585 @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
586 @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
587endif