blob: b3650bb05b7fe109e02f7510be28f6e217092c31 [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 Moolenaar0ba04292010-07-14 23:23:17 +020027# LUA define to path to Lua dir to get Lua support (not defined)
28# LUA_VER define to version of Lua being used (51)
29# DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes)
Bram Moolenaar071d4272004-06-13 20:20:40 +000030# GETTEXT no or yes: set to yes for dynamic gettext support (yes)
31# ICONV no or yes: set to yes for dynamic iconv support (yes)
32# MBYTE no or yes: set to yes to include multibyte support (yes)
33# IME no or yes: set to yes to include IME support (yes)
34# DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
35# OLE no or yes: set to yes to make OLE gvim (no)
36# DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000037# CPUNR No longer supported, use ARCH.
Bram Moolenaar48f80c22010-02-24 15:08:27 +010038# ARCH i386 through pentium4: select -march argument to compile with
39# (i386)
Bram Moolenaar071d4272004-06-13 20:20:40 +000040# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
41# For USEDLL=yes the cygwin1.dll is required to run Vim.
Bram Moolenaar48f80c22010-02-24 15:08:27 +010042# "no" does not work with latest version of Cygwin, use
Bram Moolenaar164fca32010-07-14 13:58:07 +020043# Make_ming.mak instead. Or set CC to gcc-3 and add
44# -L/lib/w32api to EXTRA_LIBS.
Bram Moolenaar071d4272004-06-13 20:20:40 +000045# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
46# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
47# WINVER Lowest Win32 version to support. (0x0400)
48# CSCOPE no or yes: to include cscope interface support (yes)
49# OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
50# NETBEANS no or yes: to include netbeans interface support (yes when GUI
51# is yes)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000052# NBDEBUG no or yes: to include netbeans interface debugging support (no)
Bram Moolenaar071d4272004-06-13 20:20:40 +000053# XPM define to path to XPM dir to get XPM image support (not defined)
54#>>>>> choose options:
55ifndef GUI
56GUI=yes
57endif
58
59ifndef FEATURES
60FEATURES = BIG
61endif
62
63ifndef GETTEXT
64GETTEXT = yes
65endif
66
67ifndef ICONV
68ICONV = yes
69endif
70
71ifndef MBYTE
72MBYTE = yes
73endif
74
75ifndef IME
76IME = yes
77endif
78
Bram Moolenaar071d4272004-06-13 20:20:40 +000079ifndef ARCH
80ARCH = i386
81endif
82
83ifndef WINVER
84WINVER = 0x0400
85endif
86
87ifndef CSCOPE
88CSCOPE = yes
89endif
90
91ifndef NETBEANS
92ifeq ($(GUI),yes)
93NETBEANS = yes
94endif
95endif
96
97ifndef OPTIMIZE
98OPTIMIZE = MAXSPEED
99endif
100
101### See feature.h for a list of optionals.
102### Any other defines can be included here.
103
104DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
105 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000106INCLUDES = -march=$(ARCH) -Iproto
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107
108#>>>>> name of the compiler and linker, name of lib directory
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100109CROSS_COMPILE =
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110CC = gcc
111RC = windres
112
113##############################
114# DYNAMIC_PERL=yes and no both work
115##############################
116ifdef PERL
117DEFINES += -DFEAT_PERL
118INCLUDES += -I$(PERL)/lib/CORE
119EXTRA_OBJS += $(OUTDIR)/if_perl.o
120
121ifndef DYNAMIC_PERL
122DYNAMIC_PERL = yes
123endif
124
125ifndef PERL_VER
126PERL_VER = 56
127endif
128
129ifeq (yes, $(DYNAMIC_PERL))
130DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
131else
132EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
133endif
134endif
135
136##############################
137# DYNAMIC_PYTHON=yes works.
138# DYNAMIC_PYTHON=no does not (unresolved externals on link).
139##############################
140ifdef PYTHON
141DEFINES += -DFEAT_PYTHON
142INCLUDES += -I$(PYTHON)/include
143EXTRA_OBJS += $(OUTDIR)/if_python.o
144
145ifndef DYNAMIC_PYTHON
146DYNAMIC_PYTHON = yes
147endif
148
149ifndef PYTHON_VER
150PYTHON_VER = 22
151endif
152
153ifeq (yes, $(DYNAMIC_PYTHON))
154DEFINES += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
155else
156EXTRA_LIBS += $(PYTHON)/libs/python$(PYTHON_VER).lib
157endif
158endif
159
160##############################
161# DYNAMIC_RUBY=yes works.
162# DYNAMIC_RUBY=no does not (process exits).
163##############################
164ifdef RUBY
165
166ifndef RUBY_VER
167RUBY_VER=16
168endif
169
170ifndef RUBY_VER_LONG
171RUBY_VER_LONG=1.6
172endif
173
174ifndef DYNAMIC_RUBY
175DYNAMIC_RUBY = yes
176endif
177
178ifeq ($(RUBY_VER), 16)
179ifndef RUBY_PLATFORM
180RUBY_PLATFORM = i586-mswin32
181endif
182ifndef RUBY_INSTALL_NAME
183RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
184endif
185else
186ifndef RUBY_PLATFORM
187RUBY_PLATFORM = i386-mswin32
188endif
189ifndef RUBY_INSTALL_NAME
190RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
191endif
192endif
193
194DEFINES += -DFEAT_RUBY
195INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
196EXTRA_OBJS += $(OUTDIR)/if_ruby.o
197
198ifeq (yes, $(DYNAMIC_RUBY))
199DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
200DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
201else
202EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
203endif
204endif
205
206##############################
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000207# DYNAMIC_MZSCHEME=yes works
208# DYNAMIC_MZSCHEME=no works too
209##############################
210ifdef MZSCHEME
211DEFINES += -DFEAT_MZSCHEME
212INCLUDES += -I$(MZSCHEME)/include
213EXTRA_OBJS += $(OUTDIR)/if_mzsch.o
214
215ifndef DYNAMIC_MZSCHEME
216DYNAMIC_MZSCHEME = yes
217endif
218
219ifndef MZSCHEME_VER
220MZSCHEME_VER = 209_000
221endif
222
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000223ifndef MZSCHEME_PRECISE_GC
224MZSCHEME_PRECISE_GC=no
225endif
226
227# for version 4.x we need to generate byte-code for Scheme base
228ifndef MZSCHEME_GENERATE_BASE
229MZSCHEME_GENERATE_BASE=no
230endif
231
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000232ifeq (yes, $(DYNAMIC_MZSCHEME))
233DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
234else
235ifndef MZSCHEME_DLLS
236MZSCHEME_DLLS = $(MZSCHEME)
237endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000238ifeq (yes,$(MZSCHEME_PRECISE_GC))
239MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
240else
241MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
242endif
243EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
244endif
245ifeq (yes,$(MZSCHEME_GENERATE_BASE))
246DEFINES += -DINCLUDE_MZSCHEME_BASE
247MZ_EXTRA_DEP += mzscheme_base.c
248endif
249ifeq (yes,$(MZSCHEME_PRECISE_GC))
250DEFINES += -DMZ_PRECISE_GC
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000251endif
252endif
253
254##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000255# DYNAMIC_TCL=yes and no both work.
256##############################
257ifdef TCL
258DEFINES += -DFEAT_TCL
259INCLUDES += -I$(TCL)/include
260EXTRA_OBJS += $(OUTDIR)/if_tcl.o
261
262ifndef DYNAMIC_TCL
263DYNAMIC_TCL = yes
264endif
265
266ifndef TCL_VER
267TCL_VER = 83
268endif
269
270ifeq (yes, $(DYNAMIC_TCL))
271DEFINES += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
272EXTRA_LIBS += $(TCL)/lib/tclstub$(TCL_VER).lib
273else
274EXTRA_LIBS += $(TCL)/lib/tcl$(TCL_VER).lib
275endif
276endif
277
278##############################
Bram Moolenaar0ba04292010-07-14 23:23:17 +0200279# DYNAMIC_LUA=yes works.
280# DYNAMIC_LUA=no does not (unresolved externals on link).
281##############################
282ifdef LUA
283DEFINES += -DFEAT_LUA
284INCLUDES += -I$(LUA)/include
285EXTRA_OBJS += $(OUTDIR)/if_lua.o
286
287ifndef DYNAMIC_LUA
288DYNAMIC_LUA = yes
289endif
290
291ifndef LUA_VER
292LUA_VER = 51
293endif
294
295ifeq (yes, $(DYNAMIC_LUA))
296DEFINES += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
297else
298EXTRA_LIBS += $(LUA)/lib/lua$(LUA_VER).lib
299endif
300endif
301
302##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000303ifeq (yes, $(GETTEXT))
304DEFINES += -DDYNAMIC_GETTEXT
305endif
306
307##############################
308ifeq (yes, $(ICONV))
309DEFINES += -DDYNAMIC_ICONV
310endif
311
312##############################
313ifeq (yes, $(MBYTE))
314DEFINES += -DFEAT_MBYTE
315endif
316
317##############################
318ifeq (yes, $(IME))
319DEFINES += -DFEAT_MBYTE_IME
320
321ifndef DYNAMIC_IME
322DYNAMIC_IME = yes
323endif
324
325ifeq (yes, $(DYNAMIC_IME))
326DEFINES += -DDYNAMIC_IME
327else
328EXTRA_LIBS += -limm32
329endif
330endif
331
332##############################
333ifeq (yes, $(DEBUG))
334DEFINES += -DDEBUG
335INCLUDES += -g -fstack-check
336DEBUG_SUFFIX = d
337else
338
339ifeq ($(OPTIMIZE), SIZE)
340OPTFLAG = -Os
341else
342ifeq ($(OPTIMIZE), MAXSPEED)
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000343OPTFLAG = -O3 -fomit-frame-pointer -freg-struct-return
Bram Moolenaar071d4272004-06-13 20:20:40 +0000344else
345OPTFLAG = -O2
346endif
347endif
348
349# A bug in the GCC <= 3.2 optimizer can cause a crash. The
350# following option removes the problem optimization.
351OPTFLAG += -fno-strength-reduce
352
353INCLUDES += -s
354
355endif
356
357##############################
358# USEDLL=yes will build a Cygwin32 executable that relies on cygwin1.dll.
359# USEDLL=no will build a Mingw32 executable with no extra dll dependencies.
360##############################
361ifeq (yes, $(USEDLL))
362DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
363else
364INCLUDES += -mno-cygwin
365endif
366
367##############################
368ifeq (yes, $(POSTSCRIPT))
369DEFINES += -DMSWINPS
370endif
371
372##############################
373ifeq (yes, $(CSCOPE))
374DEFINES += -DFEAT_CSCOPE
375EXTRA_OBJS += $(OUTDIR)/if_cscope.o
376endif
377
378##############################
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000379ifeq ($(GUI),yes)
380
381##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000382ifeq (yes, $(NETBEANS))
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000383# Only allow NETBEANS for a GUI build.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000384DEFINES += -DFEAT_NETBEANS_INTG
Bram Moolenaar408fb622005-03-07 23:03:19 +0000385EXTRA_OBJS += $(OUTDIR)/netbeans.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000386EXTRA_LIBS += -lwsock32
387
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000388ifeq (yes, $(NBDEBUG))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000389DEFINES += -DNBDEBUG
390NBDEBUG_DEP = nbdebug.h nbdebug.c
391endif
392
393endif
394
395##############################
396ifdef XPM
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000397# Only allow XPM for a GUI build.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000398DEFINES += -DFEAT_XPM_W32
399INCLUDES += -I$(XPM)/include
400EXTRA_OBJS += $(OUTDIR)/xpm_w32.o
401EXTRA_LIBS += -L$(XPM)/lib -lXpm
402endif
403
404##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000405EXE = gvim$(DEBUG_SUFFIX).exe
406OUTDIR = gobj$(DEBUG_SUFFIX)
407DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
Bram Moolenaar408fb622005-03-07 23:03:19 +0000408EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
Bram Moolenaar45360022005-07-21 21:08:21 +0000409EXTRA_LIBS += -mwindows -lcomctl32 -lversion
Bram Moolenaar071d4272004-06-13 20:20:40 +0000410else
411EXE = vim$(DEBUG_SUFFIX).exe
412OUTDIR = obj$(DEBUG_SUFFIX)
413LIBS += -luser32 -lgdi32 -lcomdlg32
414endif
415
416##############################
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000417ifeq (yes, $(OLE))
418DEFINES += -DFEAT_OLE
419EXTRA_OBJS += $(OUTDIR)/if_ole.o
420EXTRA_LIBS += -loleaut32 -lstdc++
421endif
422
423##############################
Bram Moolenaar071d4272004-06-13 20:20:40 +0000424ifneq (sh.exe, $(SHELL))
425DEL = rm
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000426MKDIR = mkdir -p
Bram Moolenaar071d4272004-06-13 20:20:40 +0000427DIRSLASH = /
428else
429DEL = del
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000430MKDIR = mkdir
Bram Moolenaar071d4272004-06-13 20:20:40 +0000431DIRSLASH = \\
432endif
433
434#>>>>> end of choices
435###########################################################################
436
437INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_win32.h \
438 structs.h version.h
439
440CFLAGS = $(OPTFLAG) $(DEFINES) $(INCLUDES)
441
442RCFLAGS = -O coff $(DEFINES)
443
444OBJ = \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200445 $(OUTDIR)/blowfish.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000446 $(OUTDIR)/buffer.o \
447 $(OUTDIR)/charset.o \
448 $(OUTDIR)/diff.o \
449 $(OUTDIR)/digraph.o \
450 $(OUTDIR)/edit.o \
451 $(OUTDIR)/eval.o \
452 $(OUTDIR)/ex_cmds.o \
453 $(OUTDIR)/ex_cmds2.o \
454 $(OUTDIR)/ex_docmd.o \
455 $(OUTDIR)/ex_eval.o \
456 $(OUTDIR)/ex_getln.o \
457 $(OUTDIR)/fileio.o \
458 $(OUTDIR)/fold.o \
459 $(OUTDIR)/getchar.o \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000460 $(OUTDIR)/hardcopy.o \
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000461 $(OUTDIR)/hashtab.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000462 $(OUTDIR)/main.o \
463 $(OUTDIR)/mark.o \
464 $(OUTDIR)/memfile.o \
465 $(OUTDIR)/memline.o \
466 $(OUTDIR)/menu.o \
467 $(OUTDIR)/message.o \
468 $(OUTDIR)/misc1.o \
469 $(OUTDIR)/misc2.o \
470 $(OUTDIR)/move.o \
471 $(OUTDIR)/mbyte.o \
472 $(OUTDIR)/normal.o \
473 $(OUTDIR)/ops.o \
474 $(OUTDIR)/option.o \
475 $(OUTDIR)/os_win32.o \
476 $(OUTDIR)/os_mswin.o \
477 $(OUTDIR)/pathdef.o \
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000478 $(OUTDIR)/popupmnu.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000479 $(OUTDIR)/quickfix.o \
480 $(OUTDIR)/regexp.o \
481 $(OUTDIR)/screen.o \
482 $(OUTDIR)/search.o \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200483 $(OUTDIR)/sha256.o \
Bram Moolenaarfc735152005-03-22 22:54:12 +0000484 $(OUTDIR)/spell.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000485 $(OUTDIR)/syntax.o \
486 $(OUTDIR)/tag.o \
487 $(OUTDIR)/term.o \
488 $(OUTDIR)/ui.o \
489 $(OUTDIR)/undo.o \
490 $(OUTDIR)/version.o \
491 $(OUTDIR)/vimrc.o \
492 $(OUTDIR)/window.o \
493 $(EXTRA_OBJS)
494
495all: $(EXE) xxd/xxd.exe vimrun.exe install.exe uninstal.exe GvimExt/gvimext.dll
496
497# According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for
498# linking unless calling ld directly.
499# See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information.
500$(EXE): $(OUTDIR) $(OBJ)
501 $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)
502
503xxd/xxd.exe: xxd/xxd.c
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100504 $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000505
506GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100507 $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000508
509vimrun.exe: vimrun.c
510 $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
511
512install.exe: dosinst.c
513 $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIBS) -luuid -lole32
514
515uninstal.exe: uninstal.c
516 $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIBS)
517
518$(OUTDIR):
Bram Moolenaar32e4e1f2005-01-16 21:57:33 +0000519 $(MKDIR) $(OUTDIR)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000520
521tags:
522 command /c ctags *.c $(INCL)
523
524clean:
525 -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
526 -rmdir $(OUTDIR)
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000527 -$(DEL) $(EXE) vimrun.exe install.exe uninstal.exe
Bram Moolenaar071d4272004-06-13 20:20:40 +0000528ifdef PERL
529 -$(DEL) if_perl.c
530endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000531ifdef MZSCHEME
532 -$(DEL) mzscheme_base.c
533endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000534 -$(DEL) pathdef.c
535 $(MAKE) -C xxd -f Make_cyg.mak clean
536 $(MAKE) -C GvimExt -f Make_ming.mak clean
537
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000538distclean: clean
539 -$(DEL) obj$(DIRSLASH)*.o
540 -rmdir obj
541 -$(DEL) gobj$(DIRSLASH)*.o
542 -rmdir gobj
543 -$(DEL) objd$(DIRSLASH)*.o
544 -rmdir objd
545 -$(DEL) gobjd$(DIRSLASH)*.o
546 -rmdir gobjd
547 -$(DEL) *.exe
548
Bram Moolenaar071d4272004-06-13 20:20:40 +0000549###########################################################################
550
551$(OUTDIR)/%.o : %.c $(INCL)
552 $(CC) -c $(CFLAGS) $< -o $@
553
554$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
555 $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
556
557$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
558 $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
559
560$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
561 $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
562
563$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
Bram Moolenaar61bfb9f2007-09-30 20:28:48 +0000564 $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000565
566if_perl.c: if_perl.xs typemap
Bram Moolenaarcf3630f2005-01-08 16:04:29 +0000567 $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \
568 -prototypes -typemap \
569 `cygpath -d $(PERL)/lib/ExtUtils/typemap` if_perl.xs > $@
Bram Moolenaar071d4272004-06-13 20:20:40 +0000570
571$(OUTDIR)/if_perl.o: if_perl.c $(INCL)
572ifeq (yes, $(USEDLL))
573 $(CC) -c $(CFLAGS) -I/usr/include/mingw -D__MINGW32__ if_perl.c -o $(OUTDIR)/if_perl.o
574endif
575
576$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
577ifeq (16, $(RUBY_VER))
578 $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o
579endif
580
581$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP)
582 $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
583
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000584$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
585 $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
586
Bram Moolenaar071d4272004-06-13 20:20:40 +0000587$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
588 $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
589
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000590mzscheme_base.c:
591 $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
592
Bram Moolenaar071d4272004-06-13 20:20:40 +0000593pathdef.c: $(INCL)
594ifneq (sh.exe, $(SHELL))
595 @echo creating pathdef.c
596 @echo '/* pathdef.c */' > pathdef.c
597 @echo '#include "vim.h"' >> pathdef.c
598 @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
599 @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
600 @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
601 @echo 'char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)";' >> pathdef.c
602 @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
603 @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
604else
605 @echo creating pathdef.c
606 @echo /* pathdef.c */ > pathdef.c
607 @echo #include "vim.h" >> pathdef.c
608 @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
609 @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
610 @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
611 @echo char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)"; >> pathdef.c
612 @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
613 @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
614endif