blob: de1d88fe4c37dbef07bff92d5d407da9ae97fb98 [file] [log] [blame]
Bram Moolenaare2db4362012-09-05 17:57:39 +02001# Makefile for VIM on Win32
2#
Bram Moolenaar071d4272004-06-13 20:20:40 +00003# Info at http://www.mingw.org
Bram Moolenaare2db4362012-09-05 17:57:39 +02004# Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net
5# Also requires GNU make, which you can download from the same sites.
Bram Moolenaar071d4272004-06-13 20:20:40 +00006# Get missing libraries from http://gnuwin32.sf.net.
7#
8# Tested on Win32 NT 4 and Win95.
9#
Bram Moolenaare2db4362012-09-05 17:57:39 +020010# To make everything, just 'make -f Make_ming.mak'.
11# To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'.
12# After a run, you can 'make -f Make_ming.mak clean' to clean up.
Bram Moolenaar071d4272004-06-13 20:20:40 +000013#
14# NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think
15# it's just run out of memory or something. Run again, and it will continue
16# with 'xxd'.
17#
Bram Moolenaar91856272012-02-29 16:56:39 +010018# "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs,
19# using the excellent UPX compressor:
Bram Moolenaar071d4272004-06-13 20:20:40 +000020# http://upx.sourceforge.net/
Bram Moolenaar91856272012-02-29 16:56:39 +010021# "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
22# http://www.matcode.com/mpress.htm
Bram Moolenaar071d4272004-06-13 20:20:40 +000023#
Bram Moolenaare2db4362012-09-05 17:57:39 +020024# Maintained by Ron Aaron <ronaharon@yahoo.com> et al.
25# Updated 2012 Sep 5.
Bram Moolenaar071d4272004-06-13 20:20:40 +000026
27#>>>>> choose options:
28# set to yes for a debug build
29DEBUG=no
Bram Moolenaar7263a772007-05-10 17:35:54 +000030# set to SIZE for size, SPEED for speed, MAXSPEED for maximum optimization
Bram Moolenaar071d4272004-06-13 20:20:40 +000031OPTIMIZE=MAXSPEED
32# set to yes to make gvim, no for vim
33GUI=yes
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +020034# set to yes if you want to use DirectWrite (DirectX)
35DIRECTX=no
Bram Moolenaar071d4272004-06-13 20:20:40 +000036# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
Bram Moolenaare2db4362012-09-05 17:57:39 +020037# Set to TINY to make minimal version (few features).
Bram Moolenaar071d4272004-06-13 20:20:40 +000038FEATURES=BIG
Bram Moolenaare2db4362012-09-05 17:57:39 +020039# Set to one of i386, i486, i586, i686 as the minimum target processor.
40# For amd64/x64 architecture set ARCH=x86-64 .
Bram Moolenaar071d4272004-06-13 20:20:40 +000041ARCH=i386
Bram Moolenaare2db4362012-09-05 17:57:39 +020042# Set to yes to cross-compile from unix; no=native Windows.
Bram Moolenaar071d4272004-06-13 20:20:40 +000043CROSS=no
Bram Moolenaare2db4362012-09-05 17:57:39 +020044# Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'.
Bram Moolenaar071d4272004-06-13 20:20:40 +000045#ICONV="."
46ICONV=yes
47GETTEXT=yes
Bram Moolenaare2db4362012-09-05 17:57:39 +020048# Set to yes to include multibyte support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000049MBYTE=yes
Bram Moolenaare2db4362012-09-05 17:57:39 +020050# Set to yes to include IME support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000051IME=yes
52DYNAMIC_IME=yes
Bram Moolenaare2db4362012-09-05 17:57:39 +020053# Set to yes to enable writing a postscript file with :hardcopy.
Bram Moolenaar071d4272004-06-13 20:20:40 +000054POSTSCRIPT=no
Bram Moolenaare2db4362012-09-05 17:57:39 +020055# Set to yes to enable OLE support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000056OLE=no
Bram Moolenaare2db4362012-09-05 17:57:39 +020057# Set the default $(WINVER) to make it work with pre-Win2k.
Bram Moolenaara6cdc992012-04-20 16:13:25 +020058ifndef WINVER
Bram Moolenaar95b557b2012-07-06 13:40:50 +020059WINVER = 0x0500
Bram Moolenaara6cdc992012-04-20 16:13:25 +020060endif
Bram Moolenaare2db4362012-09-05 17:57:39 +020061# Set to yes to enable Cscope support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000062CSCOPE=yes
Bram Moolenaare2db4362012-09-05 17:57:39 +020063# Set to yes to enable Netbeans support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000064NETBEANS=$(GUI)
65
66
Bram Moolenaarb0d3f872010-12-30 14:50:52 +010067# Link against the shared version of libstdc++ by default. Set
68# STATIC_STDCPLUS to "yes" to link against static version instead.
69ifndef STATIC_STDCPLUS
70STATIC_STDCPLUS=no
71endif
72
Bram Moolenaar071d4272004-06-13 20:20:40 +000073# If the user doesn't want gettext, undefine it.
74ifeq (no, $(GETTEXT))
75GETTEXT=
76endif
77# Added by E.F. Amatria <eferna1@platea.ptic.mec.es> 2001 Feb 23
78# Uncomment the first line and one of the following three if you want Native Language
79# Support. You'll need gnu_gettext.win32, a MINGW32 Windows PORT of gettext by
80# Franco Bez <franco.bez@gmx.de>. It may be found at
81# http://home.a-city.de/franco.bez/gettext/gettext_win32_en.html
82# Tested with mingw32 with GCC-2.95.2 on Win98
83# Updated 2001 Jun 9
84#GETTEXT=c:/gettext.win32.msvcrt
85#STATIC_GETTEXT=USE_STATIC_GETTEXT
86#DYNAMIC_GETTEXT=USE_GETTEXT_DLL
87#DYNAMIC_GETTEXT=USE_SAFE_GETTEXT_DLL
88SAFE_GETTEXT_DLL_OBJ = $(GETTEXT)/src/safe_gettext_dll/safe_gettext_dll.o
89# Alternatively, if you uncomment the two following lines, you get a "safe" version
90# without linking the safe_gettext_dll.o object file.
91#DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
92#GETTEXT_DYNAMIC=gnu_gettext.dll
93INTLPATH=$(GETTEXT)/lib/mingw32
94INTLLIB=gnu_gettext
95
96# If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
97# or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
Bram Moolenaarc16756d2011-06-19 01:30:07 +020098# uncomment the following, but I can't build a static version with them, ?-(|
Bram Moolenaar071d4272004-06-13 20:20:40 +000099#GETTEXT=c:/gettext-0.10.37-20010430
100#STATIC_GETTEXT=USE_STATIC_GETTEXT
101#DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
102#INTLPATH=$(GETTEXT)/lib
103#INTLLIB=intl
104
105# uncomment 'PERL' if you want a perl-enabled version
106#PERL=C:/perl
107ifdef PERL
108ifndef PERL_VER
109PERL_VER=56
110endif
111ifndef DYNAMIC_PERL
112DYNAMIC_PERL=yes
113endif
114# on Linux, for cross-compile, it's here:
115#PERLLIB=/home/ron/ActivePerl/lib
116# on NT, it's here:
117PERLLIB=$(PERL)/lib
118PERLLIBS=$(PERLLIB)/Core
Bram Moolenaar08c51aa2011-10-12 14:11:45 +0200119XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
120XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
Bram Moolenaar612af432011-09-14 10:49:46 +0200121ifeq "$(XSUBPP_EXISTS)" ""
Bram Moolenaar08c51aa2011-10-12 14:11:45 +0200122XSUBPP=perl $(XSUBPPTRY)
Bram Moolenaar612af432011-09-14 10:49:46 +0200123else
124XSUBPP=xsubpp
125endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000126endif
127
Bram Moolenaar0ba04292010-07-14 23:23:17 +0200128# uncomment 'LUA' if you want a Lua-enabled version
129#LUA=/usr/local
130ifdef LUA
131ifndef DYNAMIC_LUA
132DYNAMIC_LUA=yes
133endif
134
135ifndef LUA_VER
136LUA_VER=51
137endif
138
139ifeq (no,$(DYNAMIC_LUA))
140LUA_LIB = -L$(LUA)/lib -llua
141endif
142
143endif
144
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000145# uncomment 'MZSCHEME' if you want a MzScheme-enabled version
146#MZSCHEME=d:/plt
147ifdef MZSCHEME
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000148ifndef DYNAMIC_MZSCHEME
149DYNAMIC_MZSCHEME=yes
150endif
151
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000152ifndef MZSCHEME_VER
153MZSCHEME_VER=205_000
154endif
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000155
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000156ifndef MZSCHEME_PRECISE_GC
157MZSCHEME_PRECISE_GC=no
158endif
159
160# for version 4.x we need to generate byte-code for Scheme base
161ifndef MZSCHEME_GENERATE_BASE
162MZSCHEME_GENERATE_BASE=no
163endif
164
Bram Moolenaar2d0860d2010-11-03 21:59:30 +0100165ifndef MZSCHEME_USE_RACKET
166MZSCHEME_MAIN_LIB=mzsch
167else
168MZSCHEME_MAIN_LIB=racket
169endif
170
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000171ifeq (no,$(DYNAMIC_MZSCHEME))
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000172ifeq (yes,$(MZSCHEME_PRECISE_GC))
Bram Moolenaar2d0860d2010-11-03 21:59:30 +0100173MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000174else
Bram Moolenaar2d0860d2010-11-03 21:59:30 +0100175MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000176endif
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000177# the modern MinGW can dynamically link to dlls directly.
178# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000179ifndef MZSCHEME_DLLS
180MZSCHEME_DLLS=$(MZSCHEME)
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000181endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000182MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000183endif
184
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000185endif
186
Bram Moolenaar071d4272004-06-13 20:20:40 +0000187# Python support -- works with the ActiveState python 2.0 release (and others
188# too, probably)
189#
190# uncomment 'PYTHON' to make python-enabled version
191# Put the path to the python distro here. If cross compiling from Linux, you
192# will also need to convert the header files to unix instead of dos format:
193# for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil
194# and also, you will need to make a mingw32 'libpython20.a' to link with:
195# cd $PYTHON/libs
196# pexports python20.dll > python20.def
197# dlltool -d python20.def -l libpython20.a
198# on my Linux box, I put the Python stuff here:
199#PYTHON=/home/ron/ActivePython-2.0.0-202/src/Core
200# on my NT box, it's here:
201#PYTHON=c:/python20
202
203ifdef PYTHON
204ifndef DYNAMIC_PYTHON
205DYNAMIC_PYTHON=yes
206endif
207
208ifndef PYTHON_VER
209PYTHON_VER=22
210endif
211
212ifeq (no,$(DYNAMIC_PYTHON))
213PYTHONLIB=-L$(PYTHON)/libs -lpython$(PYTHON_VER)
214endif
215# my include files are in 'win32inc' on Linux, and 'include' in the standard
216# NT distro (ActiveState)
217ifeq ($(CROSS),no)
218PYTHONINC=-I $(PYTHON)/include
219else
220PYTHONINC=-I $(PYTHON)/win32inc
221endif
222endif
223
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200224#PYTHON3: See comment for Python 2 above
225
226ifdef PYTHON3
227ifndef DYNAMIC_PYTHON3
228DYNAMIC_PYTHON3=yes
229endif
230
231ifndef PYTHON3_VER
232PYTHON3_VER=31
233endif
234
235ifeq (no,$(DYNAMIC_PYTHON3))
236PYTHON3LIB=-L$(PYTHON3)/libs -lPYTHON$(PYTHON3_VER)
237endif
238
239ifeq ($(CROSS),no)
240PYTHON3INC=-I $(PYTHON3)/include
241else
242PYTHON3INC=-I $(PYTHON3)/win32inc
243endif
244endif
245
Bram Moolenaar071d4272004-06-13 20:20:40 +0000246# TCL interface:
247# TCL=[Path to TCL directory]
248# DYNAMIC_TCL=yes (to load the TCL DLL dynamically)
249# TCL_VER=[TCL version, eg 83, 84] (default is 83)
250#TCL=c:/tcl
251ifdef TCL
252ifndef DYNAMIC_TCL
253DYNAMIC_TCL=yes
254endif
255ifndef TCL_VER
256TCL_VER = 83
257endif
258TCLINC += -I$(TCL)/include
259endif
260
261
262# Ruby interface:
263# RUBY=[Path to Ruby directory]
264# DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
265# RUBY_VER=[Ruby version, eg 16, 17] (default is 16)
266# RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6)
Bram Moolenaarda3cb832012-08-02 21:21:47 +0200267# You must set RUBY_VER_LONG when changing RUBY_VER.
268# You must set RUBY_API_VER version to RUBY_VER_LONG.
269# Don't set ruby API version to RUBY_VER like 191.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000270#RUBY=c:/ruby
271ifdef RUBY
272ifndef DYNAMIC_RUBY
273DYNAMIC_RUBY=yes
274endif
275# Set default value
276ifndef RUBY_VER
277RUBY_VER = 16
278endif
279ifndef RUBY_VER_LONG
280RUBY_VER_LONG = 1.6
281endif
Bram Moolenaarda3cb832012-08-02 21:21:47 +0200282ifndef RUBY_API_VER
283RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG))
284endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000285
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100286ifndef RUBY_PLATFORM
Bram Moolenaar071d4272004-06-13 20:20:40 +0000287ifeq ($(RUBY_VER), 16)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000288RUBY_PLATFORM = i586-mswin32
Bram Moolenaar8c79caf2010-03-17 17:25:09 +0100289else
290ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100291RUBY_PLATFORM = i386-mingw32
Bram Moolenaar071d4272004-06-13 20:20:40 +0000292else
Bram Moolenaardb3fbe52013-03-07 15:16:21 +0100293ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),)
294RUBY_PLATFORM = x64-mingw32
295else
Bram Moolenaar071d4272004-06-13 20:20:40 +0000296RUBY_PLATFORM = i386-mswin32
297endif
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100298endif
Bram Moolenaar8c79caf2010-03-17 17:25:09 +0100299endif
Bram Moolenaardb3fbe52013-03-07 15:16:21 +0100300endif
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100301
Bram Moolenaar071d4272004-06-13 20:20:40 +0000302ifndef RUBY_INSTALL_NAME
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100303ifeq ($(RUBY_VER), 16)
Bram Moolenaarda3cb832012-08-02 21:21:47 +0200304RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
Bram Moolenaar66ca3202010-03-10 13:20:40 +0100305else
Bram Moolenaardb3fbe52013-03-07 15:16:21 +0100306ifeq ($(ARCH),x86-64)
307RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER)
308else
Bram Moolenaarda3cb832012-08-02 21:21:47 +0200309RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000310endif
311endif
Bram Moolenaardb3fbe52013-03-07 15:16:21 +0100312endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000313
Bram Moolenaardd53a412012-11-28 16:18:29 +0100314ifeq (19, $(word 1,$(sort 19 $(RUBY_VER))))
315RUBY_19_OR_LATER = 1
316endif
317
318RUBYINC = -I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
319ifdef RUBY_19_OR_LATER
320RUBYINC += -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
321endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000322ifeq (no, $(DYNAMIC_RUBY))
323RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME)
324endif
325
326endif # RUBY
327
328# See feature.h for a list of options.
329# Any other defines can be included here.
330DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
331DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
332 -DHAVE_PATHDEF -DFEAT_$(FEATURES)
Bram Moolenaar254e0282013-07-06 13:35:08 +0200333ifeq ($(ARCH),x86-64)
334DEFINES+=-DMS_WIN64
335endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000336ifeq ($(CROSS),yes)
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100337# cross-compiler prefix:
338CROSS_COMPILE = i586-pc-mingw32msvc-
Bram Moolenaar071d4272004-06-13 20:20:40 +0000339DEL = rm
Bram Moolenaar0cf6f542005-01-16 21:59:36 +0000340MKDIR = mkdir -p
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100341DIRSLASH = /
Bram Moolenaar071d4272004-06-13 20:20:40 +0000342else
343# normal (Windows) compilation:
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100344CROSS_COMPILE =
Bram Moolenaar86ce1cc2010-02-26 22:05:22 +0100345ifneq (sh.exe, $(SHELL))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000346DEL = rm
Bram Moolenaar0cf6f542005-01-16 21:59:36 +0000347MKDIR = mkdir -p
Bram Moolenaar071d4272004-06-13 20:20:40 +0000348DIRSLASH = /
349else
350DEL = del
Bram Moolenaar0cf6f542005-01-16 21:59:36 +0000351MKDIR = mkdir
Bram Moolenaar071d4272004-06-13 20:20:40 +0000352DIRSLASH = \\
353endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000354endif
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100355CC := $(CROSS_COMPILE)gcc
Bram Moolenaarb0d3f872010-12-30 14:50:52 +0100356WINDRES := $(CROSS_COMPILE)windres
357WINDRES_CC = $(CC)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000358
359#>>>>> end of choices
360###########################################################################
361
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000362CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
Bram Moolenaarb0d3f872010-12-30 14:50:52 +0100363WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
Bram Moolenaar6b107212013-12-11 15:06:40 +0100364EXTRA_LIBS =
Bram Moolenaar071d4272004-06-13 20:20:40 +0000365
366ifdef GETTEXT
Bram Moolenaar8cd06ca2005-02-28 22:44:58 +0000367DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
Bram Moolenaar071d4272004-06-13 20:20:40 +0000368GETTEXTINCLUDE = $(GETTEXT)/include
369GETTEXTLIB = $(INTLPATH)
370ifeq (yes, $(GETTEXT))
Bram Moolenaar8cd06ca2005-02-28 22:44:58 +0000371DEFINES += -DDYNAMIC_GETTEXT
Bram Moolenaar071d4272004-06-13 20:20:40 +0000372else
373ifdef DYNAMIC_GETTEXT
Bram Moolenaar8cd06ca2005-02-28 22:44:58 +0000374DEFINES += -D$(DYNAMIC_GETTEXT)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000375ifdef GETTEXT_DYNAMIC
376DEFINES += -DGETTEXT_DYNAMIC -DGETTEXT_DLL=\"$(GETTEXT_DYNAMIC)\"
377endif
378endif
379endif
380endif
381
382ifdef PERL
Bram Moolenaar6b107212013-12-11 15:06:40 +0100383CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
Bram Moolenaar071d4272004-06-13 20:20:40 +0000384ifeq (yes, $(DYNAMIC_PERL))
385CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
Bram Moolenaar6b107212013-12-11 15:06:40 +0100386EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000387endif
388endif
389
Bram Moolenaar0ba04292010-07-14 23:23:17 +0200390ifdef LUA
391CFLAGS += -I$(LUA)/include -DFEAT_LUA
392ifeq (yes, $(DYNAMIC_LUA))
393CFLAGS += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
394endif
395endif
396
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000397ifdef MZSCHEME
398CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000399ifeq (yes, $(DYNAMIC_MZSCHEME))
Bram Moolenaar2d0860d2010-11-03 21:59:30 +0100400CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
Bram Moolenaar281bdce2005-01-25 21:53:18 +0000401endif
Bram Moolenaar75676462013-01-30 14:55:42 +0100402ifeq (yes, "$(MZSCHEME_DEBUG)")
403CFLAGS += -DMZSCHEME_FORCE_GC
404endif
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000405endif
406
Bram Moolenaar071d4272004-06-13 20:20:40 +0000407ifdef RUBY
408CFLAGS += -DFEAT_RUBY $(RUBYINC)
409ifeq (yes, $(DYNAMIC_RUBY))
410CFLAGS += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
411CFLAGS += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
412endif
413endif
414
415ifdef PYTHON
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200416CFLAGS += -DFEAT_PYTHON
Bram Moolenaar071d4272004-06-13 20:20:40 +0000417ifeq (yes, $(DYNAMIC_PYTHON))
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200418CFLAGS += -DDYNAMIC_PYTHON
419endif
420endif
421
422ifdef PYTHON3
423CFLAGS += -DFEAT_PYTHON3
424ifeq (yes, $(DYNAMIC_PYTHON3))
425CFLAGS += -DDYNAMIC_PYTHON3
Bram Moolenaar071d4272004-06-13 20:20:40 +0000426endif
427endif
428
429ifdef TCL
430CFLAGS += -DFEAT_TCL $(TCLINC)
431ifeq (yes, $(DYNAMIC_TCL))
432CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
433endif
434endif
435
436ifeq ($(POSTSCRIPT),yes)
437DEFINES += -DMSWINPS
438endif
439
440ifeq (yes, $(OLE))
441DEFINES += -DFEAT_OLE
442endif
443
444ifeq ($(CSCOPE),yes)
445DEFINES += -DFEAT_CSCOPE
446endif
447
448ifeq ($(NETBEANS),yes)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000449# Only allow NETBEANS for a GUI build.
450ifeq (yes, $(GUI))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000451DEFINES += -DFEAT_NETBEANS_INTG
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000452
453ifeq ($(NBDEBUG), yes)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000454DEFINES += -DNBDEBUG
455NBDEBUG_INCL = nbdebug.h
456NBDEBUG_SRC = nbdebug.c
457endif
458endif
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000459endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000460
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +0200461# DirectWrite (DirectX)
462ifeq ($(DIRECTX),yes)
463# Only allow DirectWrite for a GUI build.
464ifeq (yes, $(GUI))
465DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
466endif
467endif
468
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000469# Only allow XPM for a GUI build.
470ifeq (yes, $(GUI))
Bram Moolenaare2db4362012-09-05 17:57:39 +0200471
472ifndef XPM
473ifeq ($(ARCH),i386)
474XPM = xpm/x86
Bram Moolenaar071d4272004-06-13 20:20:40 +0000475endif
Bram Moolenaare2db4362012-09-05 17:57:39 +0200476ifeq ($(ARCH),i486)
477XPM = xpm/x86
478endif
479ifeq ($(ARCH),i586)
480XPM = xpm/x86
481endif
482ifeq ($(ARCH),i686)
483XPM = xpm/x86
484endif
485ifeq ($(ARCH),x86-64)
486XPM = xpm/x64
487endif
488endif
489ifdef XPM
490ifneq ($(XPM),no)
491CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include -I $(XPM)/../include
492endif
493endif
494
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000495endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000496
497ifeq ($(DEBUG),yes)
498CFLAGS += -g -fstack-check
499DEBUG_SUFFIX=d
500else
501ifeq ($(OPTIMIZE), SIZE)
502CFLAGS += -Os
503else
504ifeq ($(OPTIMIZE), MAXSPEED)
505CFLAGS += -O3
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000506CFLAGS += -fomit-frame-pointer -freg-struct-return
Bram Moolenaar071d4272004-06-13 20:20:40 +0000507else # SPEED
508CFLAGS += -O2
509endif
510endif
511CFLAGS += -s
512endif
513
Bram Moolenaara3ffd9c2005-07-21 21:03:15 +0000514LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion
Bram Moolenaar44ecf652005-03-07 23:09:59 +0000515GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000516OBJ = \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200517 $(OUTDIR)/blowfish.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000518 $(OUTDIR)/buffer.o \
519 $(OUTDIR)/charset.o \
520 $(OUTDIR)/diff.o \
521 $(OUTDIR)/digraph.o \
522 $(OUTDIR)/edit.o \
523 $(OUTDIR)/eval.o \
524 $(OUTDIR)/ex_cmds.o \
525 $(OUTDIR)/ex_cmds2.o \
526 $(OUTDIR)/ex_docmd.o \
527 $(OUTDIR)/ex_eval.o \
528 $(OUTDIR)/ex_getln.o \
529 $(OUTDIR)/fileio.o \
530 $(OUTDIR)/fold.o \
531 $(OUTDIR)/getchar.o \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000532 $(OUTDIR)/hardcopy.o \
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000533 $(OUTDIR)/hashtab.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000534 $(OUTDIR)/main.o \
535 $(OUTDIR)/mark.o \
536 $(OUTDIR)/memfile.o \
537 $(OUTDIR)/memline.o \
538 $(OUTDIR)/menu.o \
539 $(OUTDIR)/message.o \
540 $(OUTDIR)/misc1.o \
541 $(OUTDIR)/misc2.o \
542 $(OUTDIR)/move.o \
543 $(OUTDIR)/mbyte.o \
544 $(OUTDIR)/normal.o \
545 $(OUTDIR)/ops.o \
546 $(OUTDIR)/option.o \
547 $(OUTDIR)/os_win32.o \
548 $(OUTDIR)/os_mswin.o \
Bram Moolenaar693e40c2013-02-26 14:56:42 +0100549 $(OUTDIR)/winclip.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000550 $(OUTDIR)/pathdef.o \
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000551 $(OUTDIR)/popupmnu.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000552 $(OUTDIR)/quickfix.o \
553 $(OUTDIR)/regexp.o \
554 $(OUTDIR)/screen.o \
555 $(OUTDIR)/search.o \
Bram Moolenaaredac1852010-05-18 20:34:20 +0200556 $(OUTDIR)/sha256.o \
Bram Moolenaar6bb68362005-03-22 23:03:44 +0000557 $(OUTDIR)/spell.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000558 $(OUTDIR)/syntax.o \
559 $(OUTDIR)/tag.o \
560 $(OUTDIR)/term.o \
561 $(OUTDIR)/ui.o \
562 $(OUTDIR)/undo.o \
563 $(OUTDIR)/version.o \
564 $(OUTDIR)/vimrc.o \
565 $(OUTDIR)/window.o
566
567ifdef PERL
568OBJ += $(OUTDIR)/if_perl.o
569endif
Bram Moolenaar0ba04292010-07-14 23:23:17 +0200570ifdef LUA
571OBJ += $(OUTDIR)/if_lua.o
572endif
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000573ifdef MZSCHEME
574OBJ += $(OUTDIR)/if_mzsch.o
575MZSCHEME_INCL = if_mzsch.h
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000576ifeq (yes,$(MZSCHEME_GENERATE_BASE))
577CFLAGS += -DINCLUDE_MZSCHEME_BASE
578MZ_EXTRA_DEP += mzscheme_base.c
579endif
580ifeq (yes,$(MZSCHEME_PRECISE_GC))
581CFLAGS += -DMZ_PRECISE_GC
582endif
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000583endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000584ifdef PYTHON
585OBJ += $(OUTDIR)/if_python.o
586endif
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200587ifdef PYTHON3
588OBJ += $(OUTDIR)/if_python3.o
589endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000590ifdef RUBY
591OBJ += $(OUTDIR)/if_ruby.o
592endif
593ifdef TCL
594OBJ += $(OUTDIR)/if_tcl.o
595endif
596ifeq ($(CSCOPE),yes)
597OBJ += $(OUTDIR)/if_cscope.o
598endif
599ifeq ($(NETBEANS),yes)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000600# Only allow NETBEANS for a GUI build.
601ifeq (yes, $(GUI))
Bram Moolenaar44ecf652005-03-07 23:09:59 +0000602OBJ += $(OUTDIR)/netbeans.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000603LIB += -lwsock32
604endif
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000605endif
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +0200606ifeq ($(DIRECTX),yes)
607# Only allow DIRECTX for a GUI build.
608ifeq (yes, $(GUI))
609OBJ += $(OUTDIR)/gui_dwrite.o
610LIB += -ld2d1 -ldwrite
611USE_STDCPLUS = yes
612endif
613endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000614ifdef XPM
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000615# Only allow XPM for a GUI build.
616ifeq (yes, $(GUI))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000617OBJ += $(OUTDIR)/xpm_w32.o
618# You'll need libXpm.a from http://gnuwin32.sf.net
Bram Moolenaar5ec83052014-01-06 15:45:10 +0100619LIB += -L$(XPM)/lib -lXpm
Bram Moolenaar071d4272004-06-13 20:20:40 +0000620endif
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000621endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000622
623
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000624ifdef MZSCHEME
625MZSCHEME_SUFFIX = Z
626endif
627
Bram Moolenaar071d4272004-06-13 20:20:40 +0000628ifeq ($(GUI),yes)
629TARGET := gvim$(DEBUG_SUFFIX).exe
630DEFINES += $(DEF_GUI)
631OBJ += $(GUIOBJ)
632LFLAGS += -mwindows
Bram Moolenaare2db4362012-09-05 17:57:39 +0200633OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000634else
635TARGET := vim$(DEBUG_SUFFIX).exe
Bram Moolenaare2db4362012-09-05 17:57:39 +0200636OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000637endif
638
639ifdef GETTEXT
640ifneq (yes, $(GETTEXT))
641CFLAGS += -I$(GETTEXTINCLUDE)
642ifndef STATIC_GETTEXT
643LIB += -L$(GETTEXTLIB) -l$(INTLLIB)
644ifeq (USE_SAFE_GETTEXT_DLL, $(DYNAMIC_GETTEXT))
645OBJ+=$(SAFE_GETTEXT_DLL_OBJ)
646endif
647else
648LIB += -L$(GETTEXTLIB) -lintl
649endif
650endif
651endif
652
653ifdef PERL
654ifeq (no, $(DYNAMIC_PERL))
Bram Moolenaar6b107212013-12-11 15:06:40 +0100655LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000656endif
657endif
658
659ifdef TCL
660LIB += -L$(TCL)/lib
661ifeq (yes, $(DYNAMIC_TCL))
662LIB += -ltclstub$(TCL_VER)
663else
664LIB += -ltcl$(TCL_VER)
665endif
666endif
667
668ifeq (yes, $(OLE))
Bram Moolenaarb0d3f872010-12-30 14:50:52 +0100669LIB += -loleaut32
Bram Moolenaar071d4272004-06-13 20:20:40 +0000670OBJ += $(OUTDIR)/if_ole.o
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +0200671USE_STDCPLUS = yes
Bram Moolenaar071d4272004-06-13 20:20:40 +0000672endif
673
674ifeq (yes, $(MBYTE))
675DEFINES += -DFEAT_MBYTE
676endif
677
678ifeq (yes, $(IME))
679DEFINES += -DFEAT_MBYTE_IME
680ifeq (yes, $(DYNAMIC_IME))
681DEFINES += -DDYNAMIC_IME
682else
683LIB += -limm32
684endif
685endif
686
687ifdef ICONV
688ifneq (yes, $(ICONV))
689LIB += -L$(ICONV)
690CFLAGS += -I$(ICONV)
691endif
692DEFINES+=-DDYNAMIC_ICONV
693endif
694
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +0200695ifeq (yes, $(USE_STDCPLUS))
696ifeq (yes, $(STATIC_STDCPLUS))
697LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
698else
699LIB += -lstdc++
700endif
701endif
702
Bram Moolenaar071d4272004-06-13 20:20:40 +0000703all: $(TARGET) vimrun.exe xxd/xxd.exe install.exe uninstal.exe GvimExt/gvimext.dll
704
705vimrun.exe: vimrun.c
706 $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIB)
707
708install.exe: dosinst.c
709 $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIB) -lole32 -luuid
710
711uninstal.exe: uninstal.c
712 $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
713
714$(TARGET): $(OUTDIR) $(OBJ)
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200715 $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000716
717upx: exes
718 upx gvim.exe
719 upx vim.exe
720
Bram Moolenaar91856272012-02-29 16:56:39 +0100721mpress: exes
722 mpress gvim.exe
723 mpress vim.exe
724
Bram Moolenaar071d4272004-06-13 20:20:40 +0000725xxd/xxd.exe: xxd/xxd.c
Bram Moolenaar2369e352011-09-30 16:56:02 +0200726 $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000727
728GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100729 $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000730
731clean:
732 -$(DEL) $(OUTDIR)$(DIRSLASH)*.o
733 -$(DEL) $(OUTDIR)$(DIRSLASH)*.res
734 -rmdir $(OUTDIR)
735 -$(DEL) *.exe
736 -$(DEL) pathdef.c
737ifdef PERL
738 -$(DEL) if_perl.c
739endif
Bram Moolenaar2d6db762009-09-11 10:49:58 +0000740ifdef MZSCHEME
741 -$(DEL) mzscheme_base.c
742endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000743 $(MAKE) -C GvimExt -f Make_ming.mak clean
Bram Moolenaar2369e352011-09-30 16:56:02 +0200744 $(MAKE) -C xxd -f Make_ming.mak clean
Bram Moolenaar071d4272004-06-13 20:20:40 +0000745
746###########################################################################
747INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
748 structs.h regexp.h option.h ex_cmds.h proto.h globals.h farsi.h \
749 gui.h
750
Bram Moolenaardd9a4a42013-06-03 20:12:51 +0200751$(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL)
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200752 $(CC) -c $(CFLAGS) $(PYTHONINC) -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" $< -o $@
753
Bram Moolenaardd9a4a42013-06-03 20:12:51 +0200754$(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL)
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200755 $(CC) -c $(CFLAGS) $(PYTHON3INC) -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\" $< -o $@
756
Bram Moolenaar071d4272004-06-13 20:20:40 +0000757$(OUTDIR)/%.o : %.c $(INCL)
758 $(CC) -c $(CFLAGS) $< -o $@
759
Bram Moolenaarca628612012-03-28 17:43:11 +0200760$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
761 $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \
762 --input-format=rc --output-format=coff -i vim.rc -o $@
Bram Moolenaar071d4272004-06-13 20:20:40 +0000763
764$(OUTDIR):
Bram Moolenaar0cf6f542005-01-16 21:59:36 +0000765 $(MKDIR) $(OUTDIR)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000766
767$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
768 $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
769
770$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
771 $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
772
Bram Moolenaar4da70db2013-01-23 13:55:20 +0100773$(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL)
774 $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
775
Bram Moolenaarb5a7a8b2014-08-06 14:52:30 +0200776$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
777 $(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
778
Bram Moolenaar071d4272004-06-13 20:20:40 +0000779$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
780 $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
781
Bram Moolenaar8c69d532007-08-12 13:25:01 +0000782# Remove -D__IID_DEFINED__ for newer versions of the w32api
Bram Moolenaar071d4272004-06-13 20:20:40 +0000783$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
Bram Moolenaar8c69d532007-08-12 13:25:01 +0000784 $(CC) $(CFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000785
786$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
787ifeq (16, $(RUBY))
788 $(CC) $(CFLAGS) -U_WIN32 -c -o $(OUTDIR)/if_ruby.o if_ruby.c
789endif
790
791if_perl.c: if_perl.xs typemap
Bram Moolenaar612af432011-09-14 10:49:46 +0200792 $(XSUBPP) -prototypes -typemap \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000793 $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
794
795$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
796 $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
797
Bram Moolenaarfbc0d2e2013-05-19 19:40:29 +0200798$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
799 $(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o
800
Bram Moolenaar9e70cf12009-05-26 20:59:55 +0000801$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
802 $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
803
804mzscheme_base.c:
805 $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
806
Bram Moolenaar071d4272004-06-13 20:20:40 +0000807pathdef.c: $(INCL)
808ifneq (sh.exe, $(SHELL))
809 @echo creating pathdef.c
810 @echo '/* pathdef.c */' > pathdef.c
811 @echo '#include "vim.h"' >> pathdef.c
812 @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
813 @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
814 @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200815 @echo 'char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> pathdef.c
Bram Moolenaar071d4272004-06-13 20:20:40 +0000816 @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
817 @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
818else
819 @echo creating pathdef.c
820 @echo /* pathdef.c */ > pathdef.c
821 @echo #include "vim.h" >> pathdef.c
822 @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
823 @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
824 @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
Bram Moolenaarbd5e15f2010-07-17 21:19:38 +0200825 @echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> pathdef.c
Bram Moolenaar071d4272004-06-13 20:20:40 +0000826 @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
827 @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
828endif