2 # Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.58
4 # Do NOT use the peephole optimizer with a version before 6.56!
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 # The "read.me" file for version 6.56 includes a remark about a fix for the
9 # peephole optimizer. Everything before 6.56 will probably fail.
11 # You should use Manx Aztec C whenever possible, because it has been tested.
13 # The prototypes from Manx and SAS are incompatible. If the prototypes
14 # were generated by Manx, first do "touch *.c; make proto" before "make".
15 # The prototypes generated on Unix work for both.
17 # Note: Not all dependencies are included. This was done to avoid having
18 # to compile everything when a global variable or function is added.
20 #>>>>> choose options:
22 ### See feature.h for a list of optionals.
23 ### Any other defines can be included here.
25 # NO_ARP Don't include ARP functions
26 # SASC=658 Sas/C version number
27 # NEWSASC fixes a bug in the syntax highlighting?
28 DEFINES
= DEF
=NO_ARP DEF
=NEWSASC DEF
="SASC=658"
30 #>>>>> if HAVE_TGETENT is defined termlib.o has to be used
34 #>>>>> choose NODEBUG for normal compiling, the other for debugging and
36 # don't switch on debugging when generating proto files, it crashes the
41 #>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging
42 # with version 6.56 and later you can probably use OPT
47 # for 6.58 you can use the line below, but be warned it takes a loooonnnggg time
48 #OPTIMIZE=OPT OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \
49 OptimizerComplexity
=10 OptimizerDepth
=10 OptimizerRecurDepth
=10 \
50 OptimizerInLocal OPTPEEP
52 #generate code for your processor - 68060 will work for 040's as well.
59 #Error reporting - rexx or console
60 ERROR
= ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
61 #ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
63 #memory types, if you have fast use it :->,
64 # ANY = will work on all machines
65 # FAST = this is the best option, for speed
69 #MEMSIZE - this is for compile time only for speed of compilation
75 ###########################################################################
79 COPTS
= SINT SCODE SDATA
81 DEL
= $(SHELL
) -c
rm -f
83 # ignore error messages for uninitialized variables, they are mostly not correct
84 CFLAGS
= NOLINK
$(DBG
) CPU
=$(CPU
) NOSTACKCHECK DEF
=AMIGA CODE
=FAR idir
=proto ignore
=317
85 CFLAGS2
= $(OPTIMIZE
) $(ERROR
) GSTIMMEDIATE GST
=$(GST
)
86 CFLAGS3
= $(COPTS
) STRINGMERGE MEMSIZE
=$(MEMSIZE
)
87 CFLAGS4
= $(DEFINES
) DATAMEMORY
=$(MEMORYTYPE
)
89 PROPT
= DEF
=PROTO GPROTO GPPARM MAXIMUMERRORS
=999 GENPROTOSTATICS GENPROTOPARAMETERS
228 Vim
: scoptions
$(OBJ
) version.c version.h
229 $(CC
) $(CFLAGS
) version.c
230 $(CC
) LINK
$(COPTS
) $(OBJ
) version.o
$(DBG
) PNAME
=Vim
232 debug
: scoptions
$(OBJ
) version.c version.h
233 $(CC
) $(CFLAGS
) version.c
234 $(CC
) LINK
$(COPTS
) $(OBJ
) version.o
$(DBG
) PNAME
=Vim
239 spat ctags
$(SRC
) *.h
240 # csh -c ctags $(SRC) *.h
242 # can't use delete here, too many file names
244 $(DEL
) *.o Vim
$(GST
)
246 # generate GlobalSymbolTable, which speeds up the compile time.
248 # A preprocessing stage is used to work arounda bug in the GST generator, in
249 # that it does not handle nested makefiles properly in this stage.
250 # Ignore error message for not producing any code (105).
251 $(GST
): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h
252 $(CC
) $(CFLAGS
) PREPROCESSORONLY vim.h objectname pre.h
253 $(CC
) MGST
=$(GST
) pre.h ignore
=105
256 # generate an options file, because SAS/C smake can't handle the amiga command
257 # line can handle the lengths that this makefile will impose on the shell.
258 # (Manx's make can do this).
259 scoptions
: Make_sas.mak
260 @echo
"Generating - $@ ..."
261 @echo
$(CFLAGS
) > scoptions
262 @echo
$(CFLAGS1
) >> scoptions
263 @echo
$(CFLAGS2
) >> scoptions
264 @echo
$(CFLAGS3
) >> scoptions
265 @echo
$(CFLAGS4
) >> scoptions
266 @echo
$(COPTS
) >>scoptions
269 ###########################################################################
278 $(CC
) $(CFLAGS
) GPFILE
=proto
/$*.pro
$(PROPT
) $*.c
282 proto
/buffer.pro
: buffer.c
284 proto
/charset.pro
: charset.c
286 proto
/diff.pro
: diff.c
288 proto
/digraph.pro
: digraph.c
290 proto
/edit.pro
: edit.c
292 proto
/eval.pro
: eval.c
294 proto
/ex_cmds.pro
: ex_cmds.c
295 ex_cmds2.o
: ex_cmds2.c
296 proto
/ex_cmds2.pro
: ex_cmds2.c
297 ex_docmd.o
: ex_docmd.c ex_cmds.h
298 proto
/ex_docmd.pro
: ex_docmd.c ex_cmds.h
299 ex_eval.o
: ex_eval.c ex_cmds.h
300 proto
/ex_eval.pro
: ex_eval.c ex_cmds.h
301 ex_getln.o
: ex_getln.c
302 proto
/ex_getln.pro
: ex_getln.c
304 proto
/fileio.pro
: fileio.c
306 proto
/fold.pro
: fold.c
308 proto
/getchar.pro
: getchar.c
309 hardcopy.o
: hardcopy.c
310 proto
/hardcopy.pro
: hardcopy.c
312 proto
/hashtab.pro
: hashtab.c
314 proto
/main.pro
: main.c
316 proto
/mark.pro
: mark.c
318 proto
/memfile.pro
: memfile.c
320 proto
/memline.pro
: memline.c
322 proto
/menu.pro
: menu.c
324 proto
/message.pro
: message.c
326 proto
/misc1.pro
: misc1.c
328 proto
/misc2.pro
: misc2.c
330 proto
/move.pro
: move.c
332 proto
/mbyte.pro
: mbyte.c
334 proto
/normal.pro
: normal.c
338 proto
/option.pro
: option.c
339 os_amiga.o
: os_amiga.c
340 proto
/os_amiga.pro
: os_amiga.c
341 popupmnu.o
: popupmnu.c
342 proto
/popupmnu.pro
: popupmnu.c
343 quickfix.o
: quickfix.c
344 proto
/quickfix.pro
: quickfix.c
346 proto
/regexp.pro
: regexp.c
348 proto
/screen.pro
: screen.c
350 proto
/search.pro
: search.c
352 proto
/spell.pro
: spell.c
354 proto
/syntax.pro
: syntax.c
358 proto
/term.pro
: term.c
360 proto
/termlib.pro
: termlib.c
364 proto
/undo.pro
: undo.c