7
|
1 #
|
|
2 # Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.56
|
|
3 #
|
|
4 # Do NOT use the peephole optimizer with a version before 6.55!
|
|
5 # It messes up all kinds of things:
|
|
6 # For 6.0 and 6.1, expand_env() will not work correctly.
|
|
7 # For 6.2 and 6.3 the call to free_line in u_freeentry is wrong.
|
|
8 # Don't know about 6.50, might work...
|
|
9 # Version 6.56 seems to be working fine.
|
|
10 # You should use Manx Aztec C whenever possible.
|
|
11 #
|
|
12 # The prototypes from Manx and SAS are incompatible. If the prototypes
|
|
13 # were generated by Manx, first do "touch *.c; make proto" before "make".
|
|
14 # The prototypes generated on Unix work for both.
|
|
15 #
|
|
16 # Note: Not all dependencies are included. This was done to avoid having
|
|
17 # to compile everything when a global variable or function is added.
|
|
18
|
|
19 #>>>>> choose options:
|
|
20
|
|
21 #ANSI CODES
|
|
22 ANSIOFF = *e[0m
|
|
23 BBOLD = *e[1m
|
|
24 WBOLD = *e[2m
|
|
25 ITALIC = *e[3m
|
|
26 UNDERLI = *e[4m
|
|
27 ANSIOFF = *e[0m
|
|
28 FCOL1 = *e[31m
|
|
29 FCOL2 = *e[32m
|
|
30 FCOL3 = *e[33m
|
|
31 FCOL4 = *e[34m
|
|
32 BCOL1 = *e[41m
|
|
33 BCOL2 = *e[42m
|
|
34 BCOL3 = *e[43m
|
|
35 BCOL4 = *e[44m
|
|
36
|
|
37
|
|
38 ### See feature.h for a list of optionals.
|
|
39 ### Any other defines can be included here.
|
|
40
|
|
41 DEFINES = DEF=NO_ARP DEF=AMIGA DEF=NEWSASC DEF=FEAT_GUI_AMIGA \
|
|
42 DEF="SASC=658" #" this fixes a bug in the syntax highlighting
|
|
43
|
|
44 #>>>>> if HAVE_TGETENT is defined termlib.o has to be used
|
|
45 #TERMLIB = termlib.o
|
|
46 TERMLIB =
|
|
47
|
|
48 #>>>>> choose NODEBUG for normal compiling, the other for debugging and
|
|
49 # profiling
|
|
50 # don't switch on debugging when generating proto files, it crashes the
|
|
51 # compiler.
|
|
52 DBG = NODEBUG
|
|
53 #DBG = DBG=FULLFLUSH
|
|
54 #DBG = DBG=LINE
|
|
55
|
|
56 #>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging
|
|
57 #OPTIMIZE=NOOPTPEEP OPT
|
|
58
|
|
59 # for 6.58 you can use the line below, but be warned it takes a loooonnnggg time
|
|
60 #OPTIMIZE=OPT OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \
|
|
61 # OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
|
|
62 # OptimizerInLocal OPTPEEP
|
|
63 OPTIMIZE=OPT OPTIMIZERTIME NoOPTIMIZERALIAS \
|
|
64 OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
|
|
65 OptimizerInLocal OPTPEEP
|
|
66 #OPTIMIZE = NOOPT
|
|
67
|
|
68 # no optimization, (works on all platforms)
|
|
69 #OPTIMIZE=NOOPT
|
|
70
|
|
71 #generate code for your processor - note however, that the 060 selection will work for 040's
|
|
72 # as well.
|
|
73 #CPU=68000
|
|
74 #CPU=68020
|
|
75 #CPU=68030
|
|
76 #CPU=68040
|
|
77 CPU=68060
|
|
78
|
|
79
|
|
80 #Error reporting - I use rexx for reporting, but console reporting may be more
|
|
81 #useful for some people.
|
|
82 #ERROR = ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
|
|
83 ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
|
|
84
|
|
85
|
|
86 #memory types, if you have fast use it :->,
|
|
87 # ANY = will work on all machines
|
|
88 # FAST = this is the best option, for speed
|
|
89 # CHIP = not necessary for this application.
|
|
90 #MEMORYTYPE=FAST
|
|
91 MEMORYTYPE=ANY
|
|
92
|
|
93 #MEMSIZE - this is for compile time only for speed of compilation
|
|
94 #default is LARGE
|
|
95 MEMSIZE=HUGE
|
|
96 #MEMSIZE=LARGE
|
|
97 #MEMSIZE=SMALL
|
|
98
|
|
99 #>>>>> end of choices
|
|
100 ###########################################################################
|
|
101
|
|
102 CC = sc
|
|
103
|
|
104 GST=vim.gst
|
|
105 DEP = $(GST)
|
|
106
|
|
107
|
|
108 CFLAGS = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK
|
|
109 CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST)
|
|
110 CFLAGS3 =NOSINT SCODE SDATA STRINGMERGE MEMSIZE=$(MEMSIZE)
|
|
111 CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE)
|
|
112
|
|
113 PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS
|
|
114
|
|
115 SRC = \
|
|
116 buffer.c \
|
|
117 charset.c \
|
|
118 diff.c \
|
|
119 digraph.c \
|
|
120 edit.c \
|
|
121 eval.c \
|
|
122 ex_cmds.c \
|
|
123 ex_cmds2.c \
|
|
124 ex_docmd.c \
|
|
125 ex_eval.c \
|
|
126 ex_getln.c \
|
|
127 fileio.c \
|
|
128 fold.c \
|
|
129 getchar.c \
|
|
130 main.c \
|
|
131 mark.c \
|
|
132 memfile.c \
|
|
133 memline.c \
|
|
134 menu.c \
|
|
135 message.c \
|
|
136 misc1.c \
|
|
137 misc2.c \
|
|
138 move.c \
|
|
139 normal.c \
|
|
140 ops.c \
|
|
141 option.c \
|
|
142 os_amiga.c \
|
|
143 quickfix.c \
|
|
144 regexp.c \
|
|
145 screen.c \
|
|
146 search.c \
|
|
147 syntax.c \
|
|
148 tag.c \
|
|
149 term.c \
|
|
150 ui.c \
|
|
151 undo.c \
|
|
152 window.c \
|
|
153 version.c \
|
|
154 gui_amiga.c \
|
|
155 gui.c
|
|
156
|
|
157 OBJ = buffer.o charset.o diff.o digraph.o edit.o eval.o ex_cmds.o ex_cmds2.o ex_docmd.o ex_eval.o ex_getln.o \
|
|
158 fileio.o fold.o getchar.o main.o mark.o memfile.o memline.o menu.o message.o misc1.o misc2.o move.o \
|
|
159 normal.o ops.o option.o os_amiga.o quickfix.o regexp.o screen.o search.o syntax.o \
|
|
160 tag.o term.o ui.o undo.o window.o gui_amiga.o gui.o $(TERMLIB)
|
|
161
|
|
162 PRO = \
|
|
163 buffer.pro \
|
|
164 charset.pro \
|
|
165 diff.pro \
|
|
166 digraph.pro \
|
|
167 edit.pro \
|
|
168 eval.pro \
|
|
169 ex_cmds.pro \
|
|
170 ex_cmds2.pro \
|
|
171 ex_docmd.pro \
|
|
172 ex_eval.pro \
|
|
173 ex_getln.pro \
|
|
174 fileio.pro \
|
|
175 fold.pro \
|
|
176 getchar.pro \
|
|
177 main.pro \
|
|
178 mark.pro \
|
|
179 memfile.pro \
|
|
180 memline.pro \
|
|
181 menu.pro \
|
|
182 message.pro \
|
|
183 misc1.pro \
|
|
184 misc2.pro \
|
|
185 move.pro \
|
|
186 normal.pro \
|
|
187 ops.pro \
|
|
188 option.pro \
|
|
189 os_amiga.pro \
|
|
190 quickfix.pro \
|
|
191 regexp.pro \
|
|
192 screen.pro \
|
|
193 search.pro \
|
|
194 syntax.pro \
|
|
195 tag.pro \
|
|
196 term.pro \
|
|
197 termlib.pro \
|
|
198 ui.pro \
|
|
199 undo.pro \
|
|
200 window.pro \
|
|
201 version.pro \
|
|
202 gui_amiga.pro \
|
|
203 gui.pro
|
|
204
|
|
205 all:
|
|
206 @echo "$(BCOL2)building prototypes, this may take some time$(ANSIOFF)"
|
|
207 @smake proto
|
|
208 @echo "$(BCOL2)building vim production version$(ANSIOFF)"
|
|
209 @smake vim
|
|
210
|
|
211 Vim: scoptions proto $(OBJ) version.c version.h
|
|
212 $(CC) $(CFLAGS) version.c
|
|
213 $(CC) LINK $(OPT) $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
|
|
214
|
|
215 debug: scoption protos $(OBJ) version.c version.h
|
|
216 $(CC) $(CFLAGS) version.c
|
|
217 $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
|
|
218
|
|
219 proto: $(PRO)
|
|
220
|
|
221 tags: $(SRC)
|
|
222 spat ctags $(SRC) *.h
|
|
223 #csh -c ctags $(SRC) *.h
|
|
224
|
|
225 # can't use delete here, too many file names
|
|
226 clean:
|
|
227 @echo removing all object files
|
|
228 -delete $(OBJ) >nil:
|
|
229
|
|
230 clobber: clean
|
|
231 @echo removing all prototype files
|
|
232 -delete $(PRO) SCOPTIONS vim $(GST) > NIL:
|
|
233
|
|
234
|
|
235 # generate an options file, as there is no way the amiga command line can handle the
|
|
236 # lengths that this makefile will impose on the shell.
|
|
237 scoptions: smakefile
|
|
238 @echo "$(BCOL2)Generating $(ANSIOFF)$(FCOL4)- $@$(ANSIOFF)"
|
|
239 @echo $(CFLAGS) > scoptions
|
|
240 @echo $(CFLAGS1) >> scoptions
|
|
241 @echo $(CFLAGS2) >> scoptions
|
|
242 @echo $(CFLAGS3) >> scoptions
|
|
243 @echo $(CFLAGS4) >> scoptions
|
|
244 @echo $(COPTS) >>scoptions
|
|
245 @echo scoptions has been built
|
|
246
|
|
247
|
|
248 #generate GlobalSymbolTable, which both speeds up the compile time, but also
|
|
249 #solves some problems with prototypes, and types that are defined in a unixy
|
|
250 #manner.
|
|
251 #
|
|
252 #I use a preprocessing stage here to work arounda bug in the GST generator, in
|
|
253 #that it does not handle nested makefiles properly in this stage.
|
|
254 $(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h gui.h gui_amiga.h
|
|
255 @echo "$(BCOL2)Generating Global Symbol Table $(ANSIOFF)$(FCOL4) $(GST) $(ANSIOFF)"
|
|
256 $(CC) PREPROCESSORONLY gui_amiga.h objectname pre.h
|
|
257 $(CC) MGST=$(GST) pre.h ignore=105,316
|
|
258 del pre.h
|
|
259
|
|
260
|
|
261 ###########################################################################
|
|
262
|
|
263 .c.o:
|
|
264 @echo "$(BCOL2)Generating object for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)"
|
|
265 $(CC) $*.c
|
|
266
|
|
267 .c.pro:
|
|
268 @echo "$(BCOL2)Generating prototypes for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)"
|
|
269 @$(CC) NOERRORREXX GPFILE=$*.pro $(PROPT) $*.c ignore=306,316,317,304
|
|
270
|
|
271 $(PRO): $(GST)
|
|
272 $(OBJ): $(GST)
|
|
273
|
|
274 # dependancies
|
|
275 buffer.o: buffer.c $(DEP)
|
|
276 buffer.pro: buffer.c $(DEP)
|
|
277 charset.o: charset.c $(DEP)
|
|
278 charset.pro: charset.c $(DEP)
|
|
279 diff.o: diff.c $(DEP)
|
|
280 diff.pro: diff.c $(DEP)
|
|
281 digraph.o: digraph.c $(DEP)
|
|
282 digraph.pro: digraph.c $(DEP)
|
|
283 edit.o: edit.c $(DEP)
|
|
284 edit.pro: edit.c $(DEP)
|
|
285 eval.o: eval.c $(DEP)
|
|
286 eval.pro: eval.c $(DEP)
|
|
287 ex_cmds.o: ex_cmds.c $(DEP)
|
|
288 ex_cmds.pro: ex_cmds.c $(DEP)
|
|
289 ex_cmds2.o: ex_cmds2.c $(DEP)
|
|
290 ex_cmds2.pro: ex_cmds2.c $(DEP)
|
|
291 ex_docmd.o: ex_docmd.c ex_cmds.h $(DEP)
|
|
292 ex_docmd.pro: ex_docmd.c ex_cmds.h $(DEP)
|
|
293 ex_eval.o: ex_eval.c ex_cmds.h $(DEP)
|
|
294 ex_eval.pro: ex_eval.c ex_cmds.h $(DEP)
|
|
295 ex_getln.o: ex_getln.c $(DEP)
|
|
296 ex_getln.pro: ex_getln.c $(DEP)
|
|
297 fileio.o: fileio.c $(DEP)
|
|
298 fileio.pro: fileio.c $(DEP)
|
|
299 fold.o: fold.c $(DEP)
|
|
300 fold.pro: fold.c $(DEP)
|
|
301 getchar.o: getchar.c $(DEP)
|
|
302 getchar.pro: getchar.c $(DEP)
|
|
303 main.o: main.c globals.h $(DEP)
|
|
304 main.pro: main.c globals.h $(DEP)
|
|
305 mark.o: mark.c $(DEP)
|
|
306 mark.pro: mark.c $(DEP)
|
|
307 memfile.o: memfile.c $(DEP)
|
|
308 memfile.pro: memfile.c $(DEP)
|
|
309 memline.o: memline.c $(DEP)
|
|
310 memline.pro: memline.c $(DEP)
|
|
311 menu.o: menu.c $(DEP)
|
|
312 menu.pro: menu.c $(DEP)
|
|
313 message.o: message.c $(DEP)
|
|
314 message.pro: message.c $(DEP)
|
|
315 misc1.o: misc1.c $(DEP)
|
|
316 misc1.pro: misc1.c $(DEP)
|
|
317 misc2.o: misc2.c $(DEP)
|
|
318 misc2.pro: misc2.c $(DEP)
|
|
319 move.o: move.c $(DEP)
|
|
320 move.pro: move.c $(DEP)
|
|
321 normal.o: normal.c $(DEP)
|
|
322 normal.pro: normal.c $(DEP)
|
|
323 ops.o: ops.c $(DEP)
|
|
324 ops.pro: ops.c $(DEP)
|
|
325 option.o: option.c $(DEP)
|
|
326 option.pro: option.c $(DEP)
|
|
327 os_amiga.o: os_amiga.c $(DEP)
|
|
328 os_amiga.pro: os_amiga.c $(DEP)
|
|
329 quickfix.o: quickfix.c $(DEP)
|
|
330 quickfix.pro: quickfix.c $(DEP)
|
|
331 regexp.o: regexp.c $(DEP)
|
|
332 regexp.pro: regexp.c $(DEP)
|
|
333 screen.o: screen.c $(DEP)
|
|
334 screen.pro: screen.c $(DEP)
|
|
335 search.o: search.c $(DEP)
|
|
336 search.pro: search.c $(DEP)
|
|
337 syntax.o: syntax.c $(DEP)
|
|
338 syntax.pro: syntax.c $(DEP)
|
|
339 tag.o: tag.c $(DEP)
|
|
340 tag.pro: tag.c $(DEP)
|
|
341 term.o: term.c $(DEP)
|
|
342 term.pro: term.c $(DEP)
|
|
343 termlib.o: termlib.c $(DEP)
|
|
344 termlib.pro: termlib.c $(DEP)
|
|
345 ui.o: ui.c $(DEP)
|
|
346 ui.pro: ui.c $(DEP)
|
|
347 undo.o: undo.c $(DEP)
|
|
348 undo.pro: undo.c $(DEP)
|
|
349 window.o: window.c $(DEP)
|
|
350 window.pro: window.c $(DEP)
|
|
351 gui_amiga.o: gui_amiga.c $(DEP) amiga.h
|
|
352 #gui_amiga.pro: gui_amiga.c $(DEP) amiga.h
|
|
353 amiga.o: amiga.c $(DEP) amiga.h
|
|
354 amiga.pro: amiga.c $(DEP) amiga.h
|
|
355 gui.o: gui.c $(DEP)
|
|
356 gui.pro: gui.c $(DEP)
|