1#
2# Makefile for VIM on MSDOS, using DJGPP 2.0
3#
4
5#>>>>> choose options:
6
7### See feature.h for a list of optionals.
8### Any other defines can be included here.
9
10DEFINES =
11
12#>>>>> name of the compiler and linker, name of lib directory
13CC = gcc
14
15#>>>>> end of choices
16###########################################################################
17
18INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_msdos.h structs.h
19CFLAGS = -O2 -DMSDOS -Iproto $(DEFINES) -Wall -Dinterrupt= -Dfar= -DMAXMEM=512 -D_NAIVE_DOS_REGS
20
21OBJ = \
22	obj/blowfish.o \
23	obj/buffer.o \
24	obj/charset.o \
25	obj/diff.o \
26	obj/digraph.o \
27	obj/edit.o \
28	obj/eval.o \
29	obj/ex_cmds.o \
30	obj/ex_cmds2.o \
31	obj/ex_docmd.o \
32	obj/ex_eval.o \
33	obj/ex_getln.o \
34	obj/fileio.o \
35	obj/fold.o \
36	obj/getchar.o \
37	obj/hardcopy.o \
38	obj/hashtab.o \
39	obj/main.o \
40	obj/mark.o \
41	obj/memfile.o \
42	obj/memline.o \
43	obj/menu.o \
44	obj/message.o \
45	obj/misc1.o \
46	obj/misc2.o \
47	obj/move.o \
48	obj/mbyte.o \
49	obj/normal.o \
50	obj/ops.o \
51	obj/option.o \
52	obj/os_msdos.o \
53	obj/popupmnu.o \
54	obj/quickfix.o \
55	obj/regexp.o \
56	obj/screen.o \
57	obj/search.o \
58	obj/sha256.o \
59	obj/spell.o \
60	obj/syntax.o \
61	obj/tag.o \
62	obj/term.o \
63	obj/ui.o \
64	obj/undo.o \
65	obj/window.o \
66	$(TERMLIB)
67
68all: vim.exe install.exe uninstal.exe xxd/xxd.exe
69
70# version.c is compiled each time, so that it sets the build time.
71vim.exe: obj $(OBJ) version.c version.h
72	$(CC) $(CFLAGS) -s -o vim.exe version.c $(OBJ) -lpc
73
74install.exe: dosinst.c
75	$(CC) $(CFLAGS) -s -o install.exe dosinst.c -lpc
76
77uninstal.exe: uninstal.c
78	$(CC) $(CFLAGS) -s -o uninstal.exe uninstal.c -lpc
79
80# This requires GNU make.
81xxd/xxd.exe: xxd/xxd.c
82	$(MAKE) --directory=xxd -f Make_djg.mak
83
84obj:
85	mkdir obj
86
87tags:
88	command /c ctags *.c $(INCL) ex_cmds.h
89
90clean:
91	-del obj\*.o
92	-rmdir obj
93	-del vim.exe
94	-del install.exe
95	-del xxd\xxd.exe
96	-del testdir\*.out
97
98# This requires GNU make.
99test:
100	$(MAKE) --directory=testdir -f Make_dos.mak
101
102###########################################################################
103
104obj/%.o: %.c obj $(INCL)
105	$(CC) -c $(CFLAGS) -o $@ $<
106
107# Extra dependency (there are actually many more...)
108obj/ex_docmd.o:	ex_cmds.h
109