blob: 7b30a197603868e45228f0fcece5df3c3efcf515 [file] [log] [blame]
#
# 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)