diff options
Diffstat (limited to 'src/Make_agui.mak')
-rw-r--r-- | src/Make_agui.mak | 356 |
1 files changed, 356 insertions, 0 deletions
diff --git a/src/Make_agui.mak b/src/Make_agui.mak new file mode 100644 index 000000000..7b30a1976 --- /dev/null +++ b/src/Make_agui.mak @@ -0,0 +1,356 @@ +# +# 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) |