diff options
Diffstat (limited to 'src/Make_sas.mak')
-rw-r--r-- | src/Make_sas.mak | 375 |
1 files changed, 375 insertions, 0 deletions
diff --git a/src/Make_sas.mak b/src/Make_sas.mak new file mode 100644 index 0000000..ff678d1 --- /dev/null +++ b/src/Make_sas.mak @@ -0,0 +1,375 @@ +# vim: set ft=make : +# Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.58 +# +# Do NOT use the peephole optimizer with a version before 6.56! +# It messes up all kinds of things: +# For 6.0 and 6.1, expand_env() will not work correctly. +# For 6.2 and 6.3 the call to free_line in u_freeentry is wrong. +# The "read.me" file for version 6.56 includes a remark about a fix for the +# peephole optimizer. Everything before 6.56 will probably fail. +# +# You should use Manx Aztec C whenever possible, because it has been tested. +# +# The prototypes from Manx and SAS are incompatible. If the prototypes +# were generated by Manx, first do "touch *.c; make proto" before "make". +# The prototypes generated on Unix work for both. +# +# Note: Not all dependencies are included. This was done to avoid having +# to compile everything when a global variable or function is added. + +#>>>>> choose options: + +### See feature.h for a list of optionals. +### Any other defines can be included here. + +# NO_ARP Don't include ARP functions +# SASC=658 Sas/C version number +# NEWSASC fixes a bug in the syntax highlighting? +DEFINES = DEF=NO_ARP DEF=NEWSASC DEF="SASC=658" + +#>>>>> if HAVE_TGETENT is defined termlib.o has to be used +#TERMLIB = termlib.o +TERMLIB = + +#>>>>> choose NODEBUG for normal compiling, the other for debugging and +# profiling +# don't switch on debugging when generating proto files, it crashes the +# compiler. +DBG = NODEBUG +#DBG = DBG=SF + +#>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging +# with version 6.56 and later you can probably use OPT +OPTIMIZE = OPT +#OPTIMIZE = NOOPTPEEP +#OPTIMIZE = NOOPT + +# for 6.58 you can use the line below, but be warned it takes a loooonnnggg time +#OPTIMIZE=OPT OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \ + OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \ + OptimizerInLocal OPTPEEP + +#generate code for your processor - 68060 will work for 040's as well. +CPU=68000 +#CPU=68020 +#CPU=68030 +#CPU=68040 +#CPU=68060 + +#Error reporting - rexx or console +ERROR = ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT +#ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT + +#memory types, if you have fast use it :->, +# ANY = will work on all machines +# FAST = this is the best option, for speed +#MEMORYTYPE=FAST +MEMORYTYPE=ANY + +#MEMSIZE - this is for compile time only for speed of compilation +#MEMSIZE=HUGE +MEMSIZE=LARGE +#MEMSIZE=SMALL + +#>>>>> end of choices +########################################################################### + +CC = sc +GST = vim.gst +COPTS = SINT SCODE SDATA +SHELL = csh +DEL = $(SHELL) -c rm -f + +# ignore error messages for uninitialized variables, they are mostly not correct +CFLAGS = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK DEF=AMIGA CODE=FAR idir=proto ignore=317 +CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST) +CFLAGS3 = $(COPTS) STRINGMERGE MEMSIZE=$(MEMSIZE) +CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE) + +PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS + +SRC = \ + blowfish.c \ + buffer.c \ + charset.c \ + diff.c \ + digraph.c \ + edit.c \ + eval.c \ + ex_cmds.c \ + ex_cmds2.c \ + ex_docmd.c \ + ex_eval.c \ + ex_getln.c \ + fileio.c \ + fold.c \ + getchar.c \ + hardcopy.c \ + hashtab.c \ + main.c \ + mark.c \ + memfile.c \ + memline.c \ + menu.c \ + message.c \ + misc1.c \ + misc2.c \ + move.c \ + mbyte.c \ + normal.c \ + ops.c \ + option.c \ + os_amiga.c \ + popupmnu.c \ + quickfix.c \ + regexp.c \ + screen.c \ + search.c \ + sha256.c \ + spell.c \ + syntax.c \ + tag.c \ + term.c \ + ui.c \ + undo.c \ + window.c \ + version.c + +OBJ = \ + blowfish.o \ + 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 \ + fileio.o \ + fold.o \ + getchar.o \ + hardcopy.o \ + hashtab.o \ + main.o \ + mark.o \ + memfile.o \ + memline.o \ + menu.o \ + message.o \ + misc1.o \ + misc2.o \ + move.o \ + mbyte.o \ + normal.o \ + ops.o \ + option.o \ + os_amiga.o \ + popupmnu.o \ + quickfix.o \ + regexp.o \ + screen.o \ + search.o \ + sha256.o \ + spell.o \ + syntax.o \ + tag.o \ + term.o \ + ui.o \ + undo.o \ + window.o \ + $(TERMLIB) + +PRO = \ + proto/blowfish.pro \ + proto/buffer.pro \ + proto/charset.pro \ + proto/diff.pro \ + proto/digraph.pro \ + proto/edit.pro \ + proto/eval.pro \ + proto/ex_cmds.pro \ + proto/ex_cmds2.pro \ + proto/ex_docmd.pro \ + proto/ex_eval.pro \ + proto/ex_getln.pro \ + proto/fileio.pro \ + proto/fold.pro \ + proto/getchar.pro \ + proto/hardcopy.pro \ + proto/hashtab.pro \ + proto/main.pro \ + proto/mark.pro \ + proto/memfile.pro \ + proto/memline.pro \ + proto/menu.pro \ + proto/message.pro \ + proto/misc1.pro \ + proto/misc2.pro \ + proto/move.pro \ + proto/mbyte.pro \ + proto/normal.pro \ + proto/ops.pro \ + proto/option.pro \ + proto/os_amiga.pro \ + proto/popupmnu.pro \ + proto/quickfix.pro \ + proto/regexp.pro \ + proto/screen.pro \ + proto/search.pro \ + proto/sha256.pro \ + proto/spell.pro \ + proto/syntax.pro \ + proto/tag.pro \ + proto/term.pro \ + proto/termlib.pro \ + proto/ui.pro \ + proto/undo.pro \ + proto/window.pro + +all: proto Vim + +Vim: scoptions $(OBJ) version.c version.h + $(CC) $(CFLAGS) version.c + $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim + +debug: scoptions $(OBJ) version.c version.h + $(CC) $(CFLAGS) version.c + $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim + +proto: $(GST) $(PRO) + +tags: + spat ctags $(SRC) *.h +# csh -c ctags $(SRC) *.h + +# can't use delete here, too many file names +clean: + $(DEL) *.o Vim $(GST) + +# generate GlobalSymbolTable, which speeds up the compile time. +# +# A preprocessing stage is used to work arounda bug in the GST generator, in +# that it does not handle nested makefiles properly in this stage. +# Ignore error message for not producing any code (105). +$(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h + $(CC) $(CFLAGS) PREPROCESSORONLY vim.h objectname pre.h + $(CC) MGST=$(GST) pre.h ignore=105 + $(DEL) pre.h + +# generate an options file, because SAS/C smake can't handle the amiga command +# line can handle the lengths that this makefile will impose on the shell. +# (Manx's make can do this). +scoptions: Make_sas.mak + @echo "Generating - $@ ..." + @echo $(CFLAGS) > scoptions + @echo $(CFLAGS1) >> scoptions + @echo $(CFLAGS2) >> scoptions + @echo $(CFLAGS3) >> scoptions + @echo $(CFLAGS4) >> scoptions + @echo $(COPTS) >>scoptions + @echo done + +########################################################################### + +$(OBJ): $(GST) vim.h +$(PRO): $(GST) vim.h + +.c.o: + $(CC) $(CFLAGS) $*.c + +.c.pro: + $(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c + +# dependancies +blowfish.o: blowfish.c +proto/blowfish.pro: blowfish.c +buffer.o: buffer.c +proto/buffer.pro: buffer.c +charset.o: charset.c +proto/charset.pro: charset.c +diff.o: diff.c +proto/diff.pro: diff.c +digraph.o: digraph.c +proto/digraph.pro: digraph.c +edit.o: edit.c +proto/edit.pro: edit.c +eval.o: eval.c +proto/eval.pro: eval.c +ex_cmds.o: ex_cmds.c +proto/ex_cmds.pro: ex_cmds.c +ex_cmds2.o: ex_cmds2.c +proto/ex_cmds2.pro: ex_cmds2.c +ex_docmd.o: ex_docmd.c ex_cmds.h +proto/ex_docmd.pro: ex_docmd.c ex_cmds.h +ex_eval.o: ex_eval.c ex_cmds.h +proto/ex_eval.pro: ex_eval.c ex_cmds.h +ex_getln.o: ex_getln.c +proto/ex_getln.pro: ex_getln.c +fileio.o: fileio.c +proto/fileio.pro: fileio.c +fold.o: fold.c +proto/fold.pro: fold.c +getchar.o: getchar.c +proto/getchar.pro: getchar.c +hardcopy.o: hardcopy.c +proto/hardcopy.pro: hardcopy.c +hashtab.o: hashtab.c +proto/hashtab.pro: hashtab.c +main.o: main.c +proto/main.pro: main.c +mark.o: mark.c +proto/mark.pro: mark.c +memfile.o: memfile.c +proto/memfile.pro: memfile.c +memline.o: memline.c +proto/memline.pro: memline.c +menu.o: menu.c +proto/menu.pro: menu.c +message.o: message.c +proto/message.pro: message.c +misc1.o: misc1.c +proto/misc1.pro: misc1.c +misc2.o: misc2.c +proto/misc2.pro: misc2.c +move.o: move.c +proto/move.pro: move.c +mbyte.o: mbyte.c +proto/mbyte.pro: mbyte.c +normal.o: normal.c +proto/normal.pro: normal.c +ops.o: ops.c +proto/ops.pro: ops.c +option.o: option.c +proto/option.pro: option.c +os_amiga.o: os_amiga.c +proto/os_amiga.pro: os_amiga.c +popupmnu.o: popupmnu.c +proto/popupmnu.pro: popupmnu.c +quickfix.o: quickfix.c +proto/quickfix.pro: quickfix.c +regexp.o: regexp.c +proto/regexp.pro: regexp.c +screen.o: screen.c +proto/screen.pro: screen.c +search.o: search.c +proto/search.pro: search.c +sha256.o: sha256.c +proto/sha256.pro: sha256.c +spell.o: spell.c +proto/spell.pro: spell.c +syntax.o: syntax.c +proto/syntax.pro: syntax.c +tag.o: tag.c +proto/tag.pro: tag.c +term.o: term.c +proto/term.pro: term.c +termlib.o: termlib.c +proto/termlib.pro: termlib.c +ui.o: ui.c +proto/ui.pro: ui.c +undo.o: undo.c +proto/undo.pro: undo.c +window.o: window.c |