| # 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 = \ |
| arabic.c \ |
| blowfish.c \ |
| buffer.c \ |
| charset.c \ |
| crypt.c \ |
| crypt_zip.c \ |
| dict.c \ |
| diff.c \ |
| digraph.c \ |
| edit.c \ |
| eval.c \ |
| evalfunc.c \ |
| ex_cmds.c \ |
| ex_cmds2.c \ |
| ex_docmd.c \ |
| ex_eval.c \ |
| ex_getln.c \ |
| farsi.c \ |
| fileio.c \ |
| fold.c \ |
| getchar.c \ |
| hardcopy.c \ |
| hashtab.c \ |
| json.c \ |
| list.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 \ |
| spellfile.c \ |
| syntax.c \ |
| tag.c \ |
| term.c \ |
| ui.c \ |
| undo.c \ |
| userfunc.c \ |
| window.c \ |
| version.c |
| |
| OBJ = \ |
| arabic.o \ |
| blowfish.o \ |
| buffer.o \ |
| charset.o \ |
| crypt.o \ |
| crypt_zip.o \ |
| dict.o \ |
| diff.o \ |
| digraph.o \ |
| edit.o \ |
| eval.o \ |
| evalfunc.o \ |
| ex_cmds.o \ |
| ex_cmds2.o \ |
| ex_docmd.o \ |
| ex_eval.o \ |
| ex_getln.o \ |
| farsi.o \ |
| fileio.o \ |
| fold.o \ |
| getchar.o \ |
| hardcopy.o \ |
| hashtab.o \ |
| json.o \ |
| list.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 \ |
| spellfile.o \ |
| syntax.o \ |
| tag.o \ |
| term.o \ |
| ui.o \ |
| undo.o \ |
| userfunc.o \ |
| window.o \ |
| $(TERMLIB) |
| |
| PRO = \ |
| proto/arabic.pro \ |
| proto/blowfish.pro \ |
| proto/buffer.pro \ |
| proto/charset.pro \ |
| proto/crypt.pro \ |
| proto/crypt_zip.pro \ |
| proto/dict.pro \ |
| proto/diff.pro \ |
| proto/digraph.pro \ |
| proto/edit.pro \ |
| proto/eval.pro \ |
| proto/evalfunc.pro \ |
| proto/ex_cmds.pro \ |
| proto/ex_cmds2.pro \ |
| proto/ex_docmd.pro \ |
| proto/ex_eval.pro \ |
| proto/ex_getln.pro \ |
| proto/farsi.pro \ |
| proto/fileio.pro \ |
| proto/fold.pro \ |
| proto/getchar.pro \ |
| proto/hardcopy.pro \ |
| proto/hashtab.pro \ |
| proto/json.pro \ |
| proto/list.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/spellfile.pro \ |
| proto/syntax.pro \ |
| proto/tag.pro \ |
| proto/term.pro \ |
| proto/termlib.pro \ |
| proto/ui.pro \ |
| proto/undo.pro \ |
| proto/userfunc.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 around a 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 |
| |
| # dependencies |
| arabic.o: arabic.c |
| proto/arabic.pro: arabic.c |
| 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 |
| crypt.o: crypt.c |
| proto/crypt.pro: crypt.c |
| crypt_zip.o: crypt_zip.c |
| proto/crypt_zip.pro: crypt_zip.c |
| dict.o: dict.c |
| proto/dict.pro: dict.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 |
| evalfunc.o: evalfunc.c |
| proto/evalfunc.pro: evalfunc.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 |
| farsi.o: farsi.c |
| proto/farsi.pro: farsi.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 |
| json.o: json.c |
| proto/json.pro: json.c |
| list.o: list.c |
| proto/list.pro: list.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 |
| spellfile.o: spellfile.c |
| proto/spellfile.pro: spellfile.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 |
| userfunc.o: userfunc.c |
| proto/userfunc.pro: userfunc.c |
| window.o: window.c |