diff options
-rw-r--r-- | Filelist | 1 | ||||
-rw-r--r-- | src/INSTALLpc.txt | 25 | ||||
-rw-r--r-- | src/Make_cyg.mak | 766 | ||||
-rw-r--r-- | src/Make_cyg_ming.mak | 847 | ||||
-rw-r--r-- | src/Make_ming.mak | 817 | ||||
-rw-r--r-- | src/Make_mvc.mak | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
7 files changed, 923 insertions, 1550 deletions
@@ -277,6 +277,7 @@ SRC_DOS = \ src/Make_bc3.mak \ src/Make_bc5.mak \ src/Make_cyg.mak \ + src/Make_cyg_ming.mak \ src/Make_djg.mak \ src/Make_ivc.mak \ src/Make_dvc.mak \ diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt index 370c208eec..24fb4f0aad 100644 --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -228,11 +228,15 @@ at: http://www.mingw.org/ +or you can use 'MinGW-w64' compiler. + + http://mingw-w64.sourceforge.net/ + Once you have downloaded the compiler binaries, unpack them on your hard disk somewhere, and put them on your PATH. If you are on Win95/98 you can edit your AUTOEXEC.BAT file with a line like: - set PATH=C:\GCC-2.95.2\BIN;%PATH% + set PATH=C:\MinGW\bin;%PATH% or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance), System, Advanced, and edit the environment from there. @@ -240,10 +244,10 @@ System, Advanced, and edit the environment from there. Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window: C:\> gcc --version - 2.95.2 + gcc (GCC) 4.8.1 - C:\> make --version - GNU Make version 3.77 (...etc...) + C:\> mingw32-make --version + GNU Make 3.82.90 (...etc...) Now you are ready to rock 'n' roll. Unpack the vim sources (look on www.vim.org for exactly which version of the vim files you need). @@ -255,7 +259,7 @@ Change directory to 'vim\src': and you type: - make -f Make_ming.mak gvim.exe + mingw32-make -f Make_ming.mak gvim.exe After churning for a while, you will end up with 'gvim.exe' in the 'vim\src' directory. @@ -264,7 +268,7 @@ You should not need to do *any* editing of any files to get vim compiled this way. If, for some reason, you want the console-mode-only version of vim (this is NOT recommended on Win32, especially on '95/'98!!!), you can use: - make -f Make_ming.mak GUI=no vim.exe + mingw32-make -f Make_ming.mak GUI=no vim.exe If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX' (also free!) and compress the file (typical compression is 50%). UPX can be @@ -291,8 +295,7 @@ You need to uncomment lines in Make_ming.mak to have NLS defined. Use Make_cyg.mak with Cygwin's GCC. See http://users.skynet.be/antoine.mechelynck/vim/compile.htm -The Cygnus one many not fully work yet. -With Cygnus gcc you can use the Unix Makefile instead (you need to get the +With Cygnus gcc you should use the Unix Makefile instead (you need to get the Unix archive then). Then you get a Cygwin application (feels like Vim is running on Unix), while with Make_cyg.mak you get a Windows application (like with the other makefiles). @@ -316,9 +319,9 @@ your Linux (or other unix) box. To do this, you need to follow a few steps: http://www.mingw.org/wiki/LinuxCrossMinGW http://www.libsdl.org/extras/win32/cross/README.txt 2) Get and unpack both the Unix sources and the extra archive - 3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'. - Make further changes to 'Make_ming.mak' as you wish. - If your cross-compiler prefix differs from the predefined value, + 3) in 'Make_cyg_ming.mak', set 'CROSS' to 'yes' instead of 'no'. + Make further changes to 'Make_cyg_ming.mak' and 'Make_ming.mak' as you + wish. If your cross-compiler prefix differs from the predefined value, set 'CROSS_COMPILE' corresponding. 4) make -f Make_ming.mak gvim.exe diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak index ff40548df9..828666ce0a 100644 --- a/src/Make_cyg.mak +++ b/src/Make_cyg.mak @@ -1,754 +1,52 @@ # -# Makefile for VIM on Win32, using Cygnus gcc -# Updated by Dan Sharp. -# Last Change: 2014 Aug 10 +# Makefile for VIM on Win32, using MinGW cross compiler on Cygwin # # Also read INSTALLpc.txt! # # This compiles Vim as a Windows application. If you want Vim to run as a # Cygwin application use the Makefile (just like on Unix). # -# GUI no or yes: set to yes if you want the GUI version (yes) -# DIRECTX no or yes: set to yes if you want use DirectWrite (no) -# PERL define to path to Perl dir to get Perl support (not defined) -# PERL_VER define to version of Perl being used (56) -# DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (yes) -# PYTHON define to path to Python dir to get PYTHON support (not defined) -# PYTHON_VER define to version of Python being used (22) -# DYNAMIC_PYTHON no or yes: use yes to load the Python DLL dynamically (yes) -# PYTHON3 define to path to Python3 dir to get PYTHON3 support (not defined) -# PYTHON3_VER define to version of Python3 being used (22) -# DYNAMIC_PYTHON3 no or yes: use yes to load the Python3 DLL dynamically (yes) -# TCL define to path to TCL dir to get TCL support (not defined) -# TCL_VER define to version of TCL being used (83) -# DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes) -# RUBY define to path to Ruby dir to get Ruby support (not defined) -# RUBY_VER define to version of Ruby being used (16) -# RUBY_VER_LONG same, but in format with dot. (1.6) -# You must set RUBY_VER_LONG when changing RUBY_VER. -# You must set RUBY_API_VER version to RUBY_VER_LONG. -# Don't set ruby API version to RUBY_VER like 191. -# DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes) -# MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined) -# MZSCHEME_VER define to version of MzScheme being used (209_000) -# DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes) -# MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build. -# MZSCHEME_USE_RACKET define to use "racket" instead of "mzsch". -# LUA define to path to Lua dir to get Lua support (not defined) -# LUA_VER define to version of Lua being used (51) -# DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes) -# GETTEXT no or yes: set to yes for dynamic gettext support (yes) -# ICONV no or yes: set to yes for dynamic iconv support (yes) -# MBYTE no or yes: set to yes to include multibyte support (yes) -# IME no or yes: set to yes to include IME support (yes) -# DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes) -# OLE no or yes: set to yes to make OLE gvim (no) -# DEBUG no or yes: set to yes if you wish a DEBUGging build (no) -# CPUNR No longer supported, use ARCH. -# ARCH i386 through pentium4: select -march argument to compile with -# (i386) -# USEDLL no or yes: set to yes to use the Runtime library DLL (no) -# For USEDLL=yes the cygwin1.dll is required to run Vim. -# For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++ -# package is required to compile Vim. Or set CC to gcc-3 and add -# -L/lib/w32api to EXTRA_LIBS. -# POSTSCRIPT no or yes: set to yes for PostScript printing (no) -# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) -# WINVER Lowest Win32 version to support. (0x0500) -# CSCOPE no or yes: to include cscope interface support (yes) -# OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED) -# NETBEANS no or yes: to include netbeans interface support (yes when GUI -# is yes) -# NBDEBUG no or yes: to include netbeans interface debugging support (no) -# XPM define to path to XPM dir to get XPM image support (not defined) -#>>>>> choose options: -ifndef GUI -GUI=yes -endif - -ifndef FEATURES -FEATURES = BIG -endif - -ifndef GETTEXT -GETTEXT = yes -endif - -ifndef ICONV -ICONV = yes -endif - -ifndef MBYTE -MBYTE = yes -endif - -ifndef IME -IME = yes -endif - -ifndef ARCH -ARCH = i386 -endif +# The old Make_cyg.mak (maintained by Dan Sharp et al.) was merged into +# Make_cyg_ming.mak. Note: USEDLL option was removed. +# This file contains Cygwin specific settings. Common settings are contained +# in Make_cyg_ming.mak. +# +# Last updated by Ken Takata. +# Last Change: 2014 Oct 21 -ifndef DIRECTX -DIRECTX = no -endif -ifndef WINVER -WINVER = 0x0500 -endif +# uncomment 'PERL' if you want a perl-enabled version +#PERL=/cygdrive/c/perl -ifndef CSCOPE -CSCOPE = yes -endif +# uncomment 'LUA' if you want a Lua-enabled version +#LUA=/cygdrive/c/lua -ifndef NETBEANS -ifeq ($(GUI),yes) -NETBEANS = yes -endif -endif +# uncomment 'MZSCHEME' if you want a MzScheme-enabled version +#MZSCHEME=/cygdrive/d/plt -ifndef OPTIMIZE -OPTIMIZE = MAXSPEED -endif +# uncomment 'PYTHON' if you want a python-enabled version +#PYTHON=/cygdrive/c/python20 +# uncomment 'PYTHON3' if you want a python3-enabled version +#PYTHON3=/cygdrive/c/python31 -# Link against the shared version of libstdc++ by default. Set -# STATIC_STDCPLUS to "yes" to link against static version instead. -ifndef STATIC_STDCPLUS -STATIC_STDCPLUS=no -endif +# uncomment 'TCL' if you want a Tcl-enabled version +#TCL=/cygdrive/c/tcl -### See feature.h for a list of optionals. -### Any other defines can be included here. +# uncomment 'RUBY' if you want a Ruby-enabled version +#RUBY=/cygdribe/c/ruby -DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \ - -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) -ifeq ($(ARCH),x86-64) -DEFINES+=-DMS_WIN64 -endif -INCLUDES = -march=$(ARCH) -Iproto -#>>>>> name of the compiler and linker, name of lib directory -ifeq (yes, $(USEDLL)) -# CROSS_COMPILE is used for the gvimext DLL. +# Use MinGW(-w64) cross compiler. +# There are three MinGW packages in Cygwin: +# 32-bit: mingw-gcc-g++ and mingw64-i686-gcc-g++ +# 64-bit: mingw64-x86_64-gcc-g++ +# You may also need to set 'ARCH' in Make_cyg_ming.mak. CROSS_COMPILE = i686-pc-mingw32- -CC = gcc -RC = windres -else -# i686-pc-mingw32-gcc, i686-w64-mingw32-gcc or gcc-3 can be used. -CROSS_COMPILE = i686-pc-mingw32- -CC = $(CROSS_COMPILE)gcc -RC = $(CROSS_COMPILE)windres -endif - -############################## -# DYNAMIC_PERL=yes and no both work -############################## -ifdef PERL -DEFINES += -DFEAT_PERL -INCLUDES += -I$(PERL)/lib/CORE -EXTRA_OBJS += $(OUTDIR)/if_perl.o - -ifndef DYNAMIC_PERL -DYNAMIC_PERL = yes -endif - -ifndef PERL_VER -PERL_VER = 56 -endif - -ifeq (yes, $(DYNAMIC_PERL)) -DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" -else -EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER) -endif -endif - -############################## -# DYNAMIC_PYTHON=yes works. -# DYNAMIC_PYTHON=no does not (unresolved externals on link). -############################## -ifdef PYTHON -DEFINES += -DFEAT_PYTHON -EXTRA_OBJS += $(OUTDIR)/if_python.o - -ifndef DYNAMIC_PYTHON -DYNAMIC_PYTHON = yes -endif - -ifndef PYTHON_VER -PYTHON_VER = 22 -endif - -ifeq (yes, $(DYNAMIC_PYTHON)) -DEFINES += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" -else -EXTRA_LIBS += $(PYTHON)/libs/python$(PYTHON_VER).lib -endif -endif - -############################## -# DYNAMIC_PYTHON3=yes works. -# DYNAMIC_PYTHON3=no does not (unresolved externals on link). -############################## -ifdef PYTHON3 -DEFINES += -DFEAT_PYTHON3 -EXTRA_OBJS += $(OUTDIR)/if_python3.o - -ifndef DYNAMIC_PYTHON3 -DYNAMIC_PYTHON3 = yes -endif - -ifndef PYTHON3_VER -PYTHON3_VER = 31 -endif - -ifeq (yes, $(DYNAMIC_PYTHON3)) -DEFINES += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\" -else -EXTRA_LIBS += $(PYTHON3)/libs/python$(PYTHON3_VER).lib -endif -endif - -############################## -# DYNAMIC_RUBY=yes works. -# DYNAMIC_RUBY=no does not (process exits). -############################## -ifdef RUBY - -ifndef DYNAMIC_RUBY -DYNAMIC_RUBY=yes -endif -# Set default value -ifndef RUBY_VER -RUBY_VER = 16 -endif -ifndef RUBY_VER_LONG -RUBY_VER_LONG = 1.6 -endif -ifndef RUBY_API_VER -RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG)) -endif - -ifndef RUBY_PLATFORM -ifeq ($(RUBY_VER), 16) -RUBY_PLATFORM = i586-mswin32 -else -ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) -RUBY_PLATFORM = i386-mingw32 -else -ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) -RUBY_PLATFORM = x64-mingw32 -else -RUBY_PLATFORM = i386-mswin32 -endif -endif -endif -endif - -ifndef RUBY_INSTALL_NAME -ifeq ($(RUBY_VER), 16) -RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) -else -ifeq ($(ARCH),x86-64) -RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) -else -RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) -endif -endif -endif - -ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) -RUBY_19_OR_LATER = 1 -endif - -DEFINES += -DFEAT_RUBY -ifneq ($(findstring w64-mingw32,$(CC)),) -# A workaround for mingw-w64 -DEFINES += -DHAVE_STRUCT_TIMESPEC -DHAVE_STRUCT_TIMEZONE -endif -INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -ifdef RUBY_19_OR_LATER -INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) -endif -EXTRA_OBJS += $(OUTDIR)/if_ruby.o - -ifeq (yes, $(DYNAMIC_RUBY)) -DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" -DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER) -else -EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME) -endif -endif - -############################## -# DYNAMIC_MZSCHEME=yes works -# DYNAMIC_MZSCHEME=no works too -############################## -ifdef MZSCHEME -DEFINES += -DFEAT_MZSCHEME -INCLUDES += -I$(MZSCHEME)/include -EXTRA_OBJS += $(OUTDIR)/if_mzsch.o - -ifndef DYNAMIC_MZSCHEME -DYNAMIC_MZSCHEME = yes -endif - -ifndef MZSCHEME_VER -MZSCHEME_VER = 209_000 -endif - -ifndef MZSCHEME_PRECISE_GC -MZSCHEME_PRECISE_GC=no -endif - -# for version 4.x we need to generate byte-code for Scheme base -ifndef MZSCHEME_GENERATE_BASE -MZSCHEME_GENERATE_BASE=no -endif - -ifndef MZSCHEME_USE_RACKET -MZSCHEME_MAIN_LIB=mzsch -else -MZSCHEME_MAIN_LIB=racket -endif - -ifeq (yes, $(DYNAMIC_MZSCHEME)) -DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" -else -ifndef MZSCHEME_DLLS -MZSCHEME_DLLS = $(MZSCHEME) -endif -ifeq (yes,$(MZSCHEME_PRECISE_GC)) -MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -else -MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) -endif -EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB) -endif -ifeq (yes,$(MZSCHEME_GENERATE_BASE)) -DEFINES += -DINCLUDE_MZSCHEME_BASE -MZ_EXTRA_DEP += mzscheme_base.c -endif -ifeq (yes,$(MZSCHEME_PRECISE_GC)) -DEFINES += -DMZ_PRECISE_GC -endif -endif - -############################## -# DYNAMIC_TCL=yes and no both work. -############################## -ifdef TCL -DEFINES += -DFEAT_TCL -INCLUDES += -I$(TCL)/include -EXTRA_OBJS += $(OUTDIR)/if_tcl.o - -ifndef DYNAMIC_TCL -DYNAMIC_TCL = yes -endif - -ifndef TCL_VER -TCL_VER = 83 -endif - -ifeq (yes, $(DYNAMIC_TCL)) -DEFINES += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" -EXTRA_LIBS += $(TCL)/lib/tclstub$(TCL_VER).lib -else -EXTRA_LIBS += $(TCL)/lib/tcl$(TCL_VER).lib -endif -endif - -############################## -# DYNAMIC_LUA=yes works. -# DYNAMIC_LUA=no does not (unresolved externals on link). -############################## -ifdef LUA -DEFINES += -DFEAT_LUA -INCLUDES += -I$(LUA)/include -EXTRA_OBJS += $(OUTDIR)/if_lua.o - -ifndef DYNAMIC_LUA -DYNAMIC_LUA = yes -endif - -ifndef LUA_VER -LUA_VER = 51 -endif - -ifeq (yes, $(DYNAMIC_LUA)) -DEFINES += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\" -else -EXTRA_LIBS += $(LUA)/lib/lua$(LUA_VER).lib -endif -endif - -############################## -ifeq (yes, $(GETTEXT)) -DEFINES += -DDYNAMIC_GETTEXT -endif - -############################## -ifeq (yes, $(ICONV)) -DEFINES += -DDYNAMIC_ICONV -endif - -############################## -ifeq (yes, $(MBYTE)) -DEFINES += -DFEAT_MBYTE -endif - -############################## -ifeq (yes, $(IME)) -DEFINES += -DFEAT_MBYTE_IME - -ifndef DYNAMIC_IME -DYNAMIC_IME = yes -endif - -ifeq (yes, $(DYNAMIC_IME)) -DEFINES += -DDYNAMIC_IME -else -EXTRA_LIBS += -limm32 -endif -endif - -############################## -ifeq (yes, $(DEBUG)) -DEFINES += -DDEBUG -INCLUDES += -g -fstack-check -DEBUG_SUFFIX = d -else - -ifeq ($(OPTIMIZE), SIZE) -OPTFLAG = -Os -else -ifeq ($(OPTIMIZE), MAXSPEED) -OPTFLAG = -O3 -fomit-frame-pointer -freg-struct-return -else -OPTFLAG = -O2 -endif -endif - -# A bug in the GCC <= 3.2 optimizer can cause a crash. The -# following option removes the problem optimization. -OPTFLAG += -fno-strength-reduce - -INCLUDES += -s - -endif - -############################## -# USEDLL=yes will build a Cygwin32 executable that relies on cygwin1.dll. -# USEDLL=no will build a Mingw32 executable with no extra dll dependencies. -############################## -ifeq (yes, $(USEDLL)) -DEFINES += -D_MAX_PATH=256 -D__CYGWIN__ -endif - -############################## -ifeq (yes, $(POSTSCRIPT)) -DEFINES += -DMSWINPS -endif - -############################## -ifeq (yes, $(CSCOPE)) -DEFINES += -DFEAT_CSCOPE -EXTRA_OBJS += $(OUTDIR)/if_cscope.o -endif - -############################## -ifeq ($(GUI),yes) - -############################## -ifeq (yes, $(NETBEANS)) -# Only allow NETBEANS for a GUI build. -DEFINES += -DFEAT_NETBEANS_INTG -EXTRA_OBJS += $(OUTDIR)/netbeans.o -EXTRA_LIBS += -lwsock32 - -ifeq (yes, $(NBDEBUG)) -DEFINES += -DNBDEBUG -NBDEBUG_DEP = nbdebug.h nbdebug.c -endif - -endif - -############################## -ifeq (yes, $(DIRECTX)) -# Only allow DIRECTX for a GUI build. -DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -EXTRA_OBJS += $(OUTDIR)/gui_dwrite.o -EXTRA_LIBS += -ld2d1 -ldwrite -USE_STDCPLUS = yes -endif - -############################## -ifndef XPM -ifeq ($(ARCH),i386) -XPM = xpm/x86 -endif -ifeq ($(ARCH),i486) -XPM = xpm/x86 -endif -ifeq ($(ARCH),i586) -XPM = xpm/x86 -endif -ifeq ($(ARCH),i686) -XPM = xpm/x86 -endif -ifeq ($(ARCH),x86-64) -XPM = xpm/x64 -endif -endif -ifdef XPM -ifneq ($(XPM),no) -# Only allow XPM for a GUI build. -DEFINES += -DFEAT_XPM_W32 -INCLUDES += -I$(XPM)/include -I$(XPM)/../include -EXTRA_OBJS += $(OUTDIR)/xpm_w32.o -EXTRA_LIBS += -L$(XPM)/lib -lXpm -endif -endif - -############################## -EXE = gvim$(DEBUG_SUFFIX).exe -OUTDIR = gobj$(DEBUG_SUFFIX) -DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o -EXTRA_LIBS += -mwindows -lcomctl32 -lversion -else -EXE = vim$(DEBUG_SUFFIX).exe -OUTDIR = obj$(DEBUG_SUFFIX) -LIBS += -luser32 -lgdi32 -lcomdlg32 -endif - -############################## -ifeq (yes, $(OLE)) -DEFINES += -DFEAT_OLE -EXTRA_OBJS += $(OUTDIR)/if_ole.o -EXTRA_LIBS += -loleaut32 -USE_STDCPLUS = yes -endif - -############################## -ifneq (sh.exe, $(SHELL)) -DEL = rm -MKDIR = mkdir -p -DIRSLASH = / -else -DEL = del -MKDIR = mkdir -DIRSLASH = \\ -endif - -############################## -ifeq (yes, $(USE_STDCPLUS)) -ifeq (yes, $(STATIC_STDCPLUS)) -EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -else -EXTRA_LIBS += -lstdc++ -endif -endif - -#>>>>> end of choices -########################################################################### - -INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_win32.h \ - structs.h version.h - -CFLAGS = $(OPTFLAG) $(DEFINES) $(INCLUDES) - -RCFLAGS = -O coff $(DEFINES) - -OBJ = \ - $(OUTDIR)/blowfish.o \ - $(OUTDIR)/buffer.o \ - $(OUTDIR)/charset.o \ - $(OUTDIR)/crypt.o \ - $(OUTDIR)/crypt_zip.o \ - $(OUTDIR)/diff.o \ - $(OUTDIR)/digraph.o \ - $(OUTDIR)/edit.o \ - $(OUTDIR)/eval.o \ - $(OUTDIR)/ex_cmds.o \ - $(OUTDIR)/ex_cmds2.o \ - $(OUTDIR)/ex_docmd.o \ - $(OUTDIR)/ex_eval.o \ - $(OUTDIR)/ex_getln.o \ - $(OUTDIR)/fileio.o \ - $(OUTDIR)/fold.o \ - $(OUTDIR)/getchar.o \ - $(OUTDIR)/hardcopy.o \ - $(OUTDIR)/hashtab.o \ - $(OUTDIR)/main.o \ - $(OUTDIR)/mark.o \ - $(OUTDIR)/memfile.o \ - $(OUTDIR)/memline.o \ - $(OUTDIR)/menu.o \ - $(OUTDIR)/message.o \ - $(OUTDIR)/misc1.o \ - $(OUTDIR)/misc2.o \ - $(OUTDIR)/move.o \ - $(OUTDIR)/mbyte.o \ - $(OUTDIR)/normal.o \ - $(OUTDIR)/ops.o \ - $(OUTDIR)/option.o \ - $(OUTDIR)/os_win32.o \ - $(OUTDIR)/os_mswin.o \ - $(OUTDIR)/winclip.o \ - $(OUTDIR)/pathdef.o \ - $(OUTDIR)/popupmnu.o \ - $(OUTDIR)/quickfix.o \ - $(OUTDIR)/regexp.o \ - $(OUTDIR)/screen.o \ - $(OUTDIR)/search.o \ - $(OUTDIR)/sha256.o \ - $(OUTDIR)/spell.o \ - $(OUTDIR)/syntax.o \ - $(OUTDIR)/tag.o \ - $(OUTDIR)/term.o \ - $(OUTDIR)/ui.o \ - $(OUTDIR)/undo.o \ - $(OUTDIR)/version.o \ - $(OUTDIR)/vimrc.o \ - $(OUTDIR)/window.o \ - $(EXTRA_OBJS) - -all: $(EXE) xxd/xxd.exe vimrun.exe install.exe uninstal.exe GvimExt/gvimext.dll - -# According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for -# linking unless calling ld directly. -# See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information. -$(EXE): $(OUTDIR) $(OBJ) - $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS) - -xxd/xxd.exe: xxd/xxd.c - $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL) - -GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h - $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE) - -vimrun.exe: vimrun.c - $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS) - -install.exe: dosinst.c - $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIBS) -luuid -lole32 - -uninstal.exe: uninstal.c - $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIBS) - -$(OUTDIR): - $(MKDIR) $(OUTDIR) - -tags: - command /c ctags *.c $(INCL) - -clean: - -$(DEL) $(OUTDIR)$(DIRSLASH)*.o - -rmdir $(OUTDIR) - -$(DEL) $(EXE) vimrun.exe install.exe uninstal.exe -ifdef PERL - -$(DEL) if_perl.c -endif -ifdef MZSCHEME - -$(DEL) mzscheme_base.c -endif - -$(DEL) pathdef.c - $(MAKE) -C xxd -f Make_cyg.mak clean - $(MAKE) -C GvimExt -f Make_cyg.mak clean - -distclean: clean - -$(DEL) obj$(DIRSLASH)*.o - -rmdir obj - -$(DEL) gobj$(DIRSLASH)*.o - -rmdir gobj - -$(DEL) objd$(DIRSLASH)*.o - -rmdir objd - -$(DEL) gobjd$(DIRSLASH)*.o - -rmdir gobjd - -$(DEL) *.exe - -########################################################################### - -$(OUTDIR)/%.o : %.c $(INCL) - $(CC) -c $(CFLAGS) $< -o $@ - -$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h - $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o - -$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h - $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o - -$(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) - $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o - -$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h - $(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o - -$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h - $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o - -$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) - $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o - -$(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL) - $(CC) -c $(CFLAGS) -I$(PYTHON)/include $< -o $@ - -$(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL) - $(CC) -c $(CFLAGS) -I$(PYTHON3)/include $< -o $@ - -if_perl.c: if_perl.xs typemap - $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \ - -prototypes -typemap \ - `cygpath -d $(PERL)/lib/ExtUtils/typemap` if_perl.xs > $@ - -$(OUTDIR)/if_perl.o: if_perl.c $(INCL) -ifeq (yes, $(USEDLL)) - $(CC) -c $(CFLAGS) -I/usr/include/mingw -D__MINGW32__ if_perl.c -o $(OUTDIR)/if_perl.o -endif - -$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) -ifeq (16, $(RUBY_VER)) - $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o -endif - -$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP) - $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o - -$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL) - $(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o - -$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP) - $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o - -$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h - $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o - -mzscheme_base.c: - $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base +#CROSS_COMPILE = i686-w64-mingw32- +#CROSS_COMPILE = x86_64-w64-mingw32- -pathdef.c: $(INCL) -ifneq (sh.exe, $(SHELL)) - @echo creating pathdef.c - @echo '/* pathdef.c */' > pathdef.c - @echo '#include "vim.h"' >> pathdef.c - @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c - @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c - @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c - @echo 'char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)";' >> pathdef.c - @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c - @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c -else - @echo creating pathdef.c - @echo /* pathdef.c */ > pathdef.c - @echo #include "vim.h" >> pathdef.c - @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c - @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c - @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c - @echo char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)"; >> pathdef.c - @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c - @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c -endif +# Do not change this. +UNDER_CYGWIN = yes +include Make_cyg_ming.mak diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak new file mode 100644 index 0000000000..e4764c52bf --- /dev/null +++ b/src/Make_cyg_ming.mak @@ -0,0 +1,847 @@ +# Makefile for VIM on Win32 (Cygwin and MinGW) +# +# This file contains common part for Cygwin and MinGW and it is included +# from Make_cyg.mak and Make_ming.mak. +# +# Info at http://www.mingw.org +# Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net +# Also requires GNU make, which you can download from the same sites. +# Get missing libraries from http://gnuwin32.sf.net. +# +# Tested on Win32 NT 4 and Win95. +# +# To make everything, just 'make -f Make_ming.mak'. +# To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'. +# After a run, you can 'make -f Make_ming.mak clean' to clean up. +# +# NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think +# it's just run out of memory or something. Run again, and it will continue +# with 'xxd'. +# +# "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs, +# using the excellent UPX compressor: +# http://upx.sourceforge.net/ +# "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs: +# http://www.matcode.com/mpress.htm +# +# Maintained by Ron Aaron <ronaharon@yahoo.com> et al. +# Updated 2014 Oct 13. + +#>>>>> choose options: +# set to yes for a debug build +DEBUG=no +# set to SIZE for size, SPEED for speed, MAXSPEED for maximum optimization +OPTIMIZE=MAXSPEED +# set to yes to make gvim, no for vim +GUI=yes +# set to yes if you want to use DirectWrite (DirectX) +# MinGW-w64 is needed, and ARCH should be set to i686 or x86-64. +DIRECTX=no +# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE] +# Set to TINY to make minimal version (few features). +FEATURES=BIG +# Set to one of i386, i486, i586, i686 as the minimum target processor. +# For amd64/x64 architecture set ARCH=x86-64 . +ARCH=i386 +# Set to yes to cross-compile from unix; no=native Windows (and Cygwin). +CROSS=no +# Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'. +#ICONV="." +ICONV=yes +GETTEXT=yes +# Set to yes to include multibyte support. +MBYTE=yes +# Set to yes to include IME support. +IME=yes +DYNAMIC_IME=yes +# Set to yes to enable writing a postscript file with :hardcopy. +POSTSCRIPT=no +# Set to yes to enable OLE support. +OLE=no +# Set the default $(WINVER) to make it work with pre-Win2k. +ifndef WINVER +WINVER = 0x0500 +endif +# Set to yes to enable Cscope support. +CSCOPE=yes +# Set to yes to enable Netbeans support. +NETBEANS=$(GUI) + + +# Link against the shared version of libstdc++ by default. Set +# STATIC_STDCPLUS to "yes" to link against static version instead. +ifndef STATIC_STDCPLUS +STATIC_STDCPLUS=no +endif + +# If the user doesn't want gettext, undefine it. +ifeq (no, $(GETTEXT)) +GETTEXT= +endif +# Added by E.F. Amatria <eferna1@platea.ptic.mec.es> 2001 Feb 23 +# Uncomment the first line and one of the following three if you want Native Language +# Support. You'll need gnu_gettext.win32, a MINGW32 Windows PORT of gettext by +# Franco Bez <franco.bez@gmx.de>. It may be found at +# http://home.a-city.de/franco.bez/gettext/gettext_win32_en.html +# Tested with mingw32 with GCC-2.95.2 on Win98 +# Updated 2001 Jun 9 +#GETTEXT=c:/gettext.win32.msvcrt +#STATIC_GETTEXT=USE_STATIC_GETTEXT +#DYNAMIC_GETTEXT=USE_GETTEXT_DLL +#DYNAMIC_GETTEXT=USE_SAFE_GETTEXT_DLL +SAFE_GETTEXT_DLL_OBJ = $(GETTEXT)/src/safe_gettext_dll/safe_gettext_dll.o +# Alternatively, if you uncomment the two following lines, you get a "safe" version +# without linking the safe_gettext_dll.o object file. +#DYNAMIC_GETTEXT=DYNAMIC_GETTEXT +#GETTEXT_DYNAMIC=gnu_gettext.dll +INTLPATH=$(GETTEXT)/lib/mingw32 +INTLLIB=gnu_gettext + +# If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext +# or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/ +# uncomment the following, but I can't build a static version with them, ?-(| +#GETTEXT=c:/gettext-0.10.37-20010430 +#STATIC_GETTEXT=USE_STATIC_GETTEXT +#DYNAMIC_GETTEXT=DYNAMIC_GETTEXT +#INTLPATH=$(GETTEXT)/lib +#INTLLIB=intl + +# Perl interface: +# PERL=[Path to Perl directory] (Set inside Make_cyg.mak or Make_ming.mak) +# DYNAMIC_PERL=yes (to load the Perl DLL dynamically) +# PERL_VER=[Perl version, eg 56, 58, 510] (default is 56) +ifdef PERL +ifndef PERL_VER +PERL_VER=56 +endif +ifndef DYNAMIC_PERL +DYNAMIC_PERL=yes +endif +# on Linux, for cross-compile, it's here: +#PERLLIB=/home/ron/ActivePerl/lib +# on NT, it's here: +PERLEXE=$(PERL)/bin/perl +PERLLIB=$(PERL)/lib +PERLLIBS=$(PERLLIB)/Core +ifeq ($(UNDER_CYGWIN),yes) +PERLTYPEMAP:=$(shell cygpath -m $(PERLLIB)/ExtUtils/typemap) +XSUBPPTRY:=$(shell cygpath -m $(PERLLIB)/ExtUtils/xsubpp) +else +PERLTYPEMAP=$(PERLLIB)/ExtUtils/typemap +XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp +endif +XSUBPP_EXISTS=$(shell $(PERLEXE) -e "print 1 unless -e '$(XSUBPPTRY)'") +ifeq "$(XSUBPP_EXISTS)" "" +XSUBPP=$(PERLEXE) "$(XSUBPPTRY)" +else +XSUBPP=xsubpp +endif +endif + +# Lua interface: +# LUA=[Path to Lua directory] (Set inside Make_cyg.mak or Make_ming.mak) +# DYNAMIC_LUA=yes (to load the Lua DLL dynamically) +# LUA_VER=[Lua version, eg 51, 52] (default is 51) +ifdef LUA +ifndef DYNAMIC_LUA +DYNAMIC_LUA=yes +endif + +ifndef LUA_VER +LUA_VER=51 +endif + +ifeq (no,$(DYNAMIC_LUA)) +LUA_LIB = -L$(LUA)/lib -llua +endif + +endif + +# MzScheme interface: +# MZSCHEME=[Path to MzScheme directory] (Set inside Make_cyg.mak or Make_ming.mak) +# DYNAMIC_MZSCHEME=yes (to load the MzScheme DLL dynamically) +# MZSCHEME_VER=[MzScheme version] (default is 205_000) +# MZSCHEME_DEBUG=no +ifdef MZSCHEME +ifndef DYNAMIC_MZSCHEME +DYNAMIC_MZSCHEME=yes +endif + +ifndef MZSCHEME_VER +MZSCHEME_VER=205_000 +endif + +ifndef MZSCHEME_PRECISE_GC +MZSCHEME_PRECISE_GC=no +endif + +# for version 4.x we need to generate byte-code for Scheme base +ifndef MZSCHEME_GENERATE_BASE +MZSCHEME_GENERATE_BASE=no +endif + +ifndef MZSCHEME_USE_RACKET +MZSCHEME_MAIN_LIB=mzsch +else +MZSCHEME_MAIN_LIB=racket +endif + +ifeq (no,$(DYNAMIC_MZSCHEME)) +ifeq (yes,$(MZSCHEME_PRECISE_GC)) +MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) +else +MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) +endif +# the modern MinGW can dynamically link to dlls directly. +# point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll +ifndef MZSCHEME_DLLS +MZSCHEME_DLLS=$(MZSCHEME) +endif +MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib +endif + +endif + +# Python interface: +# PYTHON=[Path to Python directory] (Set inside Make_cyg.mak or Make_ming.mak) +# DYNAMIC_PYTHON=yes (to load the Python DLL dynamically) +# PYTHON_VER=[Python version, eg 22, 23, ..., 27] (default is 22) +ifdef PYTHON +ifndef DYNAMIC_PYTHON +DYNAMIC_PYTHON=yes +endif + +ifndef PYTHON_VER +PYTHON_VER=22 +endif + +ifeq (no,$(DYNAMIC_PYTHON)) +PYTHONLIB=-L$(PYTHON)/libs -lpython$(PYTHON_VER) +endif +# my include files are in 'win32inc' on Linux, and 'include' in the standard +# NT distro (ActiveState) +ifeq ($(CROSS),no) +PYTHONINC=-I $(PYTHON)/include +else +PYTHONINC=-I $(PYTHON)/win32inc +endif +endif + +# Python3 interface: +# PYTHON3=[Path to Python3 directory] (Set inside Make_cyg.mak or Make_ming.mak) +# DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically) +# PYTHON3_VER=[Python3 version, eg 31, 32] (default is 31) +ifdef PYTHON3 +ifndef DYNAMIC_PYTHON3 +DYNAMIC_PYTHON3=yes +endif + +ifndef PYTHON3_VER +PYTHON3_VER=31 +endif + +ifeq (no,$(DYNAMIC_PYTHON3)) +PYTHON3LIB=-L$(PYTHON3)/libs -lPYTHON$(PYTHON3_VER) +endif |