!include <ntwin32.mak>
#
# Makefile for VIM on WINNT, using MS SDK
#

#>>>>> choose options:
### -DDIGRAPHS		digraph support (at the cost of 1.6 Kbyte code)
### -DCOMPATIBLE	start in vi-compatible mode
### -DNOBACKUP		default is no backup file
### -DDEBUG		output a lot of debugging garbage
### -DTERMCAP		include termcap file support
### -DNO_BUILTIN_TCAPS	do not include builtin termcap entries
###				(use only with -DTERMCAP)
### -DSOME_BUILTIN_TCAPS include most useful builtin termcap entries
###				(use only without -DNO_BUILTIN_TCAPS)
### -DALL_BUILTIN_TCAPS	include all builtin termcap entries
###				(use only without -DNO_BUILTIN_TCAPS)
### -DVIMRC_FILE	name of the .vimrc file in current dir
### -DEXRC_FILE		name of the .exrc file in current dir
### -DSYSVIMRC_FILE	name of the global .vimrc file
### -DSYSEXRC_FILE	name of the global .exrc file
### -DDEFVIMRC_FILE	name of the system-wide .vimrc file
### -DVIM_HLP		name of the help file
### -DWEBB_COMPLETE	include Webb's code for command line completion
### -DWEBB_KEYWORD_COMPL include Webb's code for keyword completion
### -DNOTITLE		'title' option off by default
DEFINES = -DDIGRAPHS -DWEBB_COMPLETE -DWEBB_KEYWORD_COMPL

#>>>>> name of the compiler and linker, name of lib directory
CC = cl
LINK = cl /ML /Fe$@ /Zi
LIB = c:\mstools\lib

#CFLAGS = -c -DMSDOS -DNT $(DEFINES) /Zi
CFLAGS = -c -DMSDOS -DNT $(DEFINES) /Ox


#>>>>> end of choices
###########################################################################

INCL = vim.h globals.h param.h keymap.h macros.h ascii.h term.h msdos.h structs.h

OBJ =	obj/alloc.obj obj/winnt.obj obj/buffer.obj obj/charset.obj obj/cmdcmds.obj obj/cmdline.obj \
	obj/csearch.obj obj/digraph.obj obj/edit.obj obj/fileio.obj obj/getchar.obj obj/help.obj \
	obj/linefunc.obj obj/main.obj obj/mark.obj obj/memfile.obj obj/memline.obj obj/message.obj obj/misccmds.obj \
	obj/normal.obj obj/ops.obj obj/param.obj obj/quickfix.obj obj/regexp.obj \
	obj/regsub.obj obj/screen.obj obj/search.obj \
	obj/tag.obj obj/term.obj obj/undo.obj obj/window.obj $(TERMLIB)

..\vim: $(OBJ) version.obj
	$(link) $(linkdebug) $(conflags) -out:$*.exe $** $(conlibs) \
	    user32.lib
        del version.obj

ctags:
	command /c ctags *.c *.h

clean:
	del $(OBJ) version.obj mkcmdtab.obj ..\vim mkcmdtab cmdtab.h

addcr:	addcr.c
	$(CC) addcr.c
	command /c addcr.bat

###########################################################################

obj/alloc.obj:	alloc.c  $(INCL)
	$(CC) $(CFLAGS) alloc.c /Foobj/alloc.obj

obj/winnt.obj:	msdos.c  $(INCL) msdos.h
	$(CC) $(CFLAGS) winnt.c /Foobj/winnt.obj

obj/buffer.obj:	buffer.c  $(INCL)
	$(CC) $(CFLAGS) buffer.c /Foobj/buffer.obj

obj/charset.obj:	charset.c  $(INCL)
	$(CC) $(CFLAGS) charset.c /Foobj/charset.obj

obj/cmdcmds.obj:	cmdcmds.c  $(INCL)
	$(CC) $(CFLAGS) cmdcmds.c /Foobj/cmdcmds.obj

obj/cmdline.obj:	cmdline.c  $(INCL) cmdtab.h
	$(CC) $(CFLAGS) cmdline.c /Foobj/cmdline.obj

obj/csearch.obj:	csearch.c  $(INCL)
	$(CC) $(CFLAGS) csearch.c /Foobj/csearch.obj

obj/digraph.obj:	digraph.c  $(INCL)
	$(CC) $(CFLAGS) digraph.c /Foobj/digraph.obj

obj/edit.obj:	edit.c  $(INCL)
	$(CC) $(CFLAGS) edit.c /Foobj/edit.obj

obj/fileio.obj:	fileio.c  $(INCL)
	$(CC) $(CFLAGS) fileio.c /Foobj/fileio.obj

obj/getchar.obj:	getchar.c  $(INCL)
	$(CC) $(CFLAGS) getchar.c /Foobj/getchar.obj

obj/help.obj:	help.c  $(INCL)
	$(CC) $(CFLAGS) help.c /Foobj/help.obj

obj/linefunc.obj:	linefunc.c  $(INCL)
	$(CC) $(CFLAGS) linefunc.c /Foobj/linefunc.obj

obj/main.obj:	main.c  $(INCL)
	$(CC) $(CFLAGS) main.c /Foobj/main.obj

obj/mark.obj:	mark.c  $(INCL)
	$(CC) $(CFLAGS) mark.c /Foobj/mark.obj

obj/memfile.obj:	memfile.c  $(INCL)
	$(CC) $(CFLAGS) memfile.c /Foobj/memfile.obj

obj/memline.obj:	memline.c  $(INCL)
	$(CC) $(CFLAGS) memline.c /Foobj/memline.obj

obj/message.obj:	message.c  $(INCL)
	$(CC) $(CFLAGS) message.c /Foobj/message.obj

obj/misccmds.obj:	misccmds.c  $(INCL)
	$(CC) $(CFLAGS) misccmds.c /Foobj/misccmds.obj

obj/normal.obj:	normal.c  $(INCL) ops.h
	$(CC) $(CFLAGS) normal.c /Foobj/normal.obj

obj/ops.obj:	ops.c  $(INCL) ops.h
	$(CC) $(CFLAGS) ops.c /Foobj/ops.obj

obj/param.obj:	param.c  $(INCL)
	$(CC) $(CFLAGS) param.c /Foobj/param.obj

obj/quickfix.obj:	quickfix.c  $(INCL)
	$(CC) $(CFLAGS) quickfix.c /Foobj/quickfix.obj

obj/regexp.obj:	regexp.c  $(INCL)
	$(CC) $(CFLAGS) regexp.c /Foobj/regexp.obj

obj/regsub.obj:	regsub.c  $(INCL)
	$(CC) $(CFLAGS) regsub.c /Foobj/regsub.obj

obj/screen.obj:	screen.c  $(INCL)
	$(CC) $(CFLAGS) screen.c /Foobj/screen.obj

obj/search.obj:	search.c  $(INCL)
	$(CC) $(CFLAGS) search.c /Foobj/search.obj

obj/tag.obj:	tag.c  $(INCL)
	$(CC) $(CFLAGS) tag.c /Foobj/tag.obj

obj/term.obj:	term.c  $(INCL)
	$(CC) $(CFLAGS) term.c /Foobj/term.obj

obj/undo.obj:	undo.c  $(INCL)
	$(CC) $(CFLAGS) undo.c /Foobj/undo.obj

obj/window.obj:	window.c  $(INCL)
	$(CC) $(CFLAGS) window.c /Foobj/window.obj

cmdtab.h: cmdtab.tab mkcmdtab.exe
	mkcmdtab cmdtab.tab cmdtab.h

mkcmdtab.exe: obj/mkcmdtab.obj
	$(link) $(linkdebug) $(conflags) -out:$*.exe $** $(conlibs) \
	    user32.lib

obj/mkcmdtab.obj: mkcmdtab.c
	$(CC) $(CFLAGS) mkcmdtab.c /Foobj/mkcmdtab.obj
