| # |
| # Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.56 |
| # |
| # Do NOT use the peephole optimizer with a version before 6.55! |
| # 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. |
| # Don't know about 6.50, might work... |
| # Version 6.56 seems to be working fine. |
| # You should use Manx Aztec C whenever possible. |
| # |
| # 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: |
| |
| #ANSI CODES |
| ANSIOFF = *e[0m |
| BBOLD = *e[1m |
| WBOLD = *e[2m |
| ITALIC = *e[3m |
| UNDERLI = *e[4m |
| ANSIOFF = *e[0m |
| FCOL1 = *e[31m |
| FCOL2 = *e[32m |
| FCOL3 = *e[33m |
| FCOL4 = *e[34m |
| BCOL1 = *e[41m |
| BCOL2 = *e[42m |
| BCOL3 = *e[43m |
| BCOL4 = *e[44m |
| |
| |
| ### See feature.h for a list of optionals. |
| ### Any other defines can be included here. |
| |
| DEFINES = DEF=NO_ARP DEF=AMIGA DEF=NEWSASC DEF=FEAT_GUI_AMIGA \ |
| DEF="SASC=658" #" this fixes a bug in the syntax highlighting |
| |
| #>>>>> 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=FULLFLUSH |
| #DBG = DBG=LINE |
| |
| #>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging |
| #OPTIMIZE=NOOPTPEEP OPT |
| |
| # 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 |
| OPTIMIZE=OPT OPTIMIZERTIME NoOPTIMIZERALIAS \ |
| OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \ |
| OptimizerInLocal OPTPEEP |
| #OPTIMIZE = NOOPT |
| |
| # no optimization, (works on all platforms) |
| #OPTIMIZE=NOOPT |
| |
| #generate code for your processor - note however, that the 060 selection will work for 040's |
| # as well. |
| #CPU=68000 |
| #CPU=68020 |
| #CPU=68030 |
| #CPU=68040 |
| CPU=68060 |
| |
| |
| #Error reporting - I use rexx for reporting, but console reporting may be more |
| #useful for some people. |
| #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 |
| # CHIP = not necessary for this application. |
| #MEMORYTYPE=FAST |
| MEMORYTYPE=ANY |
| |
| #MEMSIZE - this is for compile time only for speed of compilation |
| #default is LARGE |
| MEMSIZE=HUGE |
| #MEMSIZE=LARGE |
| #MEMSIZE=SMALL |
| |
| #>>>>> end of choices |
| ########################################################################### |
| |
| CC = sc |
| |
| GST=vim.gst |
| DEP = $(GST) |
| |
| |
| CFLAGS = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK |
| CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST) |
| CFLAGS3 =NOSINT SCODE SDATA STRINGMERGE MEMSIZE=$(MEMSIZE) |
| CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE) |
| |
| PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS |
| |
| SRC = \ |
| 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 \ |
| main.c \ |
| mark.c \ |
| memfile.c \ |
| memline.c \ |
| menu.c \ |
| message.c \ |
| misc1.c \ |
| misc2.c \ |
| move.c \ |
| normal.c \ |
| ops.c \ |
| option.c \ |
| os_amiga.c \ |
| quickfix.c \ |
| regexp.c \ |
| screen.c \ |
| search.c \ |
| syntax.c \ |
| tag.c \ |
| term.c \ |
| ui.c \ |
| undo.c \ |
| window.c \ |
| version.c \ |
| gui_amiga.c \ |
| gui.c |
| |
| 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 \ |
| fileio.o fold.o getchar.o main.o mark.o memfile.o memline.o menu.o message.o misc1.o misc2.o move.o \ |
| normal.o ops.o option.o os_amiga.o quickfix.o regexp.o screen.o search.o syntax.o \ |
| tag.o term.o ui.o undo.o window.o gui_amiga.o gui.o $(TERMLIB) |
| |
| PRO = \ |
| buffer.pro \ |
| charset.pro \ |
| diff.pro \ |
| digraph.pro \ |
| edit.pro \ |
| eval.pro \ |
| ex_cmds.pro \ |
| ex_cmds2.pro \ |
| ex_docmd.pro \ |
| ex_eval.pro \ |
| ex_getln.pro \ |
| fileio.pro \ |
| fold.pro \ |
| getchar.pro \ |
| main.pro \ |
| mark.pro \ |
| memfile.pro \ |
| memline.pro \ |
| menu.pro \ |
| message.pro \ |
| misc1.pro \ |
| misc2.pro \ |
| move.pro \ |
| normal.pro \ |
| ops.pro \ |
| option.pro \ |
| os_amiga.pro \ |
| quickfix.pro \ |
| regexp.pro \ |
| screen.pro \ |
| search.pro \ |
| syntax.pro \ |
| tag.pro \ |
| term.pro \ |
| termlib.pro \ |
| ui.pro \ |
| undo.pro \ |
| window.pro \ |
| version.pro \ |
| gui_amiga.pro \ |
| gui.pro |
| |
| all: |
| @echo "$(BCOL2)building prototypes, this may take some time$(ANSIOFF)" |
| @smake proto |
| @echo "$(BCOL2)building vim production version$(ANSIOFF)" |
| @smake vim |
| |
| Vim: scoptions proto $(OBJ) version.c version.h |
| $(CC) $(CFLAGS) version.c |
| $(CC) LINK $(OPT) $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim |
| |
| debug: scoption protos $(OBJ) version.c version.h |
| $(CC) $(CFLAGS) version.c |
| $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim |
| |
| proto: $(PRO) |
| |
| tags: $(SRC) |
| spat ctags $(SRC) *.h |
| #csh -c ctags $(SRC) *.h |
| |
| # can't use delete here, too many file names |
| clean: |
| @echo removing all object files |
| -delete $(OBJ) >nil: |
| |
| clobber: clean |
| @echo removing all prototype files |
| -delete $(PRO) SCOPTIONS vim $(GST) > NIL: |
| |
| |
| # generate an options file, as there is no way the amiga command line can handle the |
| # lengths that this makefile will impose on the shell. |
| scoptions: smakefile |
| @echo "$(BCOL2)Generating $(ANSIOFF)$(FCOL4)- $@$(ANSIOFF)" |
| @echo $(CFLAGS) > scoptions |
| @echo $(CFLAGS1) >> scoptions |
| @echo $(CFLAGS2) >> scoptions |
| @echo $(CFLAGS3) >> scoptions |
| @echo $(CFLAGS4) >> scoptions |
| @echo $(COPTS) >>scoptions |
| @echo scoptions has been built |
| |
| |
| #generate GlobalSymbolTable, which both speeds up the compile time, but also |
| #solves some problems with prototypes, and types that are defined in a unixy |
| #manner. |
| # |
| #I use a preprocessing stage here to work arounda bug in the GST generator, in |
| #that it does not handle nested makefiles properly in this stage. |
| $(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h gui.h gui_amiga.h |
| @echo "$(BCOL2)Generating Global Symbol Table $(ANSIOFF)$(FCOL4) $(GST) $(ANSIOFF)" |
| $(CC) PREPROCESSORONLY gui_amiga.h objectname pre.h |
| $(CC) MGST=$(GST) pre.h ignore=105,316 |
| del pre.h |
| |
| |
| ########################################################################### |
| |
| .c.o: |
| @echo "$(BCOL2)Generating object for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)" |
| $(CC) $*.c |
| |
| .c.pro: |
| @echo "$(BCOL2)Generating prototypes for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)" |
| @$(CC) NOERRORREXX GPFILE=$*.pro $(PROPT) $*.c ignore=306,316,317,304 |
| |
| $(PRO): $(GST) |
| $(OBJ): $(GST) |
| |
| # dependancies |
| buffer.o: buffer.c $(DEP) |
| buffer.pro: buffer.c $(DEP) |
| charset.o: charset.c $(DEP) |
| charset.pro: charset.c $(DEP) |
| diff.o: diff.c $(DEP) |
| diff.pro: diff.c $(DEP) |
| digraph.o: digraph.c $(DEP) |
| digraph.pro: digraph.c $(DEP) |
| edit.o: edit.c $(DEP) |
| edit.pro: edit.c $(DEP) |
| eval.o: eval.c $(DEP) |
| eval.pro: eval.c $(DEP) |
| ex_cmds.o: ex_cmds.c $(DEP) |
| ex_cmds.pro: ex_cmds.c $(DEP) |
| ex_cmds2.o: ex_cmds2.c $(DEP) |
| ex_cmds2.pro: ex_cmds2.c $(DEP) |
| ex_docmd.o: ex_docmd.c ex_cmds.h $(DEP) |
| ex_docmd.pro: ex_docmd.c ex_cmds.h $(DEP) |
| ex_eval.o: ex_eval.c ex_cmds.h $(DEP) |
| ex_eval.pro: ex_eval.c ex_cmds.h $(DEP) |
| ex_getln.o: ex_getln.c $(DEP) |
| ex_getln.pro: ex_getln.c $(DEP) |
| fileio.o: fileio.c $(DEP) |
| fileio.pro: fileio.c $(DEP) |
| fold.o: fold.c $(DEP) |
| fold.pro: fold.c $(DEP) |
| getchar.o: getchar.c $(DEP) |
| getchar.pro: getchar.c $(DEP) |
| main.o: main.c globals.h $(DEP) |
| main.pro: main.c globals.h $(DEP) |
| mark.o: mark.c $(DEP) |
| mark.pro: mark.c $(DEP) |
| memfile.o: memfile.c $(DEP) |
| memfile.pro: memfile.c $(DEP) |
| memline.o: memline.c $(DEP) |
| memline.pro: memline.c $(DEP) |
| menu.o: menu.c $(DEP) |
| menu.pro: menu.c $(DEP) |
| message.o: message.c $(DEP) |
| message.pro: message.c $(DEP) |
| misc1.o: misc1.c $(DEP) |
| misc1.pro: misc1.c $(DEP) |
| misc2.o: misc2.c $(DEP) |
| misc2.pro: misc2.c $(DEP) |
| move.o: move.c $(DEP) |
| move.pro: move.c $(DEP) |
| normal.o: normal.c $(DEP) |
| normal.pro: normal.c $(DEP) |
| ops.o: ops.c $(DEP) |
| ops.pro: ops.c $(DEP) |
| option.o: option.c $(DEP) |
| option.pro: option.c $(DEP) |
| os_amiga.o: os_amiga.c $(DEP) |
| os_amiga.pro: os_amiga.c $(DEP) |
| quickfix.o: quickfix.c $(DEP) |
| quickfix.pro: quickfix.c $(DEP) |
| regexp.o: regexp.c $(DEP) |
| regexp.pro: regexp.c $(DEP) |
| screen.o: screen.c $(DEP) |
| screen.pro: screen.c $(DEP) |
| search.o: search.c $(DEP) |
| search.pro: search.c $(DEP) |
| syntax.o: syntax.c $(DEP) |
| syntax.pro: syntax.c $(DEP) |
| tag.o: tag.c $(DEP) |
| tag.pro: tag.c $(DEP) |
| term.o: term.c $(DEP) |
| term.pro: term.c $(DEP) |
| termlib.o: termlib.c $(DEP) |
| termlib.pro: termlib.c $(DEP) |
| ui.o: ui.c $(DEP) |
| ui.pro: ui.c $(DEP) |
| undo.o: undo.c $(DEP) |
| undo.pro: undo.c $(DEP) |
| window.o: window.c $(DEP) |
| window.pro: window.c $(DEP) |
| gui_amiga.o: gui_amiga.c $(DEP) amiga.h |
| #gui_amiga.pro: gui_amiga.c $(DEP) amiga.h |
| amiga.o: amiga.c $(DEP) amiga.h |
| amiga.pro: amiga.c $(DEP) amiga.h |
| gui.o: gui.c $(DEP) |
| gui.pro: gui.c $(DEP) |