#
# Makefile for VIM, using DICE 2.06.40 and 2.06.21
#

#>>>>> choose options:
### -DDIGRAPHS		digraph support (at the cost of 1.6 Kbyte code)
### -DNO_ARP		do not use arp.library, DOS 2.0 required
### -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)
DEFINES = -DTERMCAP -DDIGRAPHS -DSOME_BUILTIN_TCAPS

#>>>>> if TERMCAP is defined termlib.o has to be used
TERMLIB = termlib.o
#TERMLIB = 

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

CFLAGS = -c -DAMIGA $(DEFINES)

INCL = vim.syms
PRE = -H${INCL}=vim.h
LIBS = -lmanx -la
CC = dcc
LD = dcc

.c.o:
	${CC} ${PRE} ${CFLAGS} $*.c -o $@

OBJ =	alloc.o amiga.o buffers.o charset.o cmdline.o csearch.o digraph.o \
	edit.o fileio.o help.o linefunc.o main.o mark.o message.o misccmds.o \
	normal.o ops.o param.o quickfix.o regexp.o regsub.o screen.o \
	script.o search.o storage.o tag.o undo.o $(TERMLIB)

/Vim: $(OBJ) version.c
	${CC} $(CFLAGS) version.c -o version.o
	${LD} -o /Vim $(OBJ) version.o $(LIBS)

debug: $(OBJ) version.c
	${CC} $(CFLAGS) version.c -o version.o
	${LD} -s -o /Vim $(OBJ) version.o $(LIBS)

ctags:
	csh -c ctags *.c *.h

# can't use delete here, too many file names
clean:
	csh -c rm -f $(OBJ) version.o mkcmdtab.o /Vim $(INCL) mkcmdtab

$(INCL)  : vim.h globals.h keymap.h macros.h ascii.h term.h amiga.h
	delete $(INCL)

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

alloc.o:	alloc.c  $(INCL)

amiga.o:	amiga.c  $(INCL) amiga.h

buffers.o:	buffers.c  $(INCL)

charset.o:	charset.c  $(INCL)

cmdline.o:	cmdline.c  $(INCL) cmdtab.h

csearch.o:	csearch.c  $(INCL) regexp.h

digraph.o: digraph.c	$(INCL)

edit.o: edit.c	$(INCL)

fileio.o:	fileio.c  $(INCL)

help.o: help.c	$(INCL)

linefunc.o:	linefunc.c  $(INCL)

main.o: main.c
	${CC} ${CFLAGS} main.c -o main.o

mark.o: mark.c	$(INCL) mark.h

message.o:	message.c  $(INCL)

misccmds.o:	misccmds.c  $(INCL)

normal.o:	normal.c  $(INCL) ops.h

ops.o:	ops.c  $(INCL) ops.h

param.o:	param.c  $(INCL)
# Because of a bug in DC1 2.06.40, initialisation of unions does not
# work correctly. dc1-21 is DC1 2.06.21 which does work.
	rename dc1-21 dc1
	${CC} ${CFLAGS} param.c -o param.o
	rename dc1 dc1-21

quickfix.o:	quickfix.c  $(INCL)

regexp.o:	regexp.c  $(INCL) regexp.h

regsub.o:	regsub.c  $(INCL) regexp.h

screen.o:	screen.c  $(INCL)

script.o:	script.c  $(INCL)

search.o:	search.c  $(INCL) regexp.h

tag.o:	tags.c  $(INCL) mark.h

termlib.o:	termlib.c $(INCL)

storage.o:	storage.c  $(INCL)

undo.o: undo.c	$(INCL)

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

mkcmdtab: mkcmdtab.o
	${LD} -o mkcmdtab mkcmdtab.o


syntax highlighted by Code2HTML, v. 0.9.1