changeset 22198:591f210d9324 v8.2.1648

patch 8.2.1648: Amiga: no common build file for Amiga (-like) systems Commit: https://github.com/vim/vim/commit/a62372be1f73b69f9d4c9413ec816d773a16a0f5 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 9 20:41:40 2020 +0200 patch 8.2.1648: Amiga: no common build file for Amiga (-like) systems Problem: Amiga: no common build file for Amiga (-like) systems. Solution: Turn Make_morph.mak into Make_ami.mak. (Ola S?der, closes https://github.com/vim/vim/issues/6805)
author Bram Moolenaar <Bram@vim.org>
date Wed, 09 Sep 2020 20:45:05 +0200
parents cdd94e6f5cfa
children df8b6f1ca6cf
files Filelist src/INSTALLami.txt src/Make_ami.mak src/Make_morph.mak src/version.c
diffstat 5 files changed, 212 insertions(+), 156 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -623,7 +623,7 @@ SRC_AMI =	\
 		README_amisrc.txt.info \
 		src.info \
 		src/INSTALLami.txt \
-		src/Make_morph.mak \
+		src/Make_ami.mak \
 		src/os_amiga.c \
 		src/os_amiga.h \
 		src/proto/os_amiga.pro \
--- a/src/INSTALLami.txt
+++ b/src/INSTALLami.txt
@@ -1,4 +1,4 @@
-INSTALLami.txt - Installation of Vim from source on Amiga
+INSTALLami.txt - Installation of Vim from source on Amiga and MorphOS
 
 This file contains instructions for compiling Vim. If you already have an
 executable version of Vim, you don't need this.
@@ -7,28 +7,13 @@ The file "feature.h" can be edited to ma
 this, then you will get the default behavior as is documented, which should
 be fine for most people.
 
-
 Summary:
-make -f Make_manx.mak		Manx C
-make -f Make_sas.mak		Lattice/SAS C
-make -f Make_dice.mak		DICE
-
-The Manx compiler is preferred, it was used to produce the Amiga executable
-and has been tested most. You should not get any errors or warnings.
+make -f Make_ami.mak        gcc
+make -f Make_ami.mak CC=vc  vbcc
 
-The SAS compiler can be used. Older versions (6.0 to 6.3) don't work with the
-optimizer switched on. This seems to be fixed with 6.5 or 6.56, but this has
-not been tested much.  Also disable optimizing when the compiler runs out of
-memory or crashes the system (yes, that happens; did I say the Manx compiler
-is preferred?).
-
-The DICE makefile has been reported to work by one person only.
+Please note that currently only gcc has been tested. VBCC would need its own
+CFLAGS, but should otherwise work out of the box. For cross-compiling, UNM
+can be used to override uname and thereby set the target. An example is shown
+below:
 
-You will have to set the "VIM" environment variable to the location of the
-documentation files.
-
-
-MorphOS
-
-Use the Make_morph.mak Makefile:
-	make -f Make_morph.mak
+make -f Make_ami.mak CC=ppc-morphos-gcc UNM=MorphOS
new file mode 100644
--- /dev/null
+++ b/src/Make_ami.mak
@@ -0,0 +1,201 @@
+#
+# Makefile for AROS, AmigaOS4 and MorphOS.
+#
+BIN = vim
+CC ?= gcc
+LD = $(CC)
+UNM ?= $(shell uname)
+DEBUG ?= no
+BUILD ?= huge
+CFLAGS = -c -O3
+
+# Common compiler flags
+CFLAGS += \
+	-DNO_ARP \
+	-DUSE_TMPNAM \
+	-DHAVE_STDARG_H \
+	-DHAVE_TGETENT \
+	-DHAVE_TERMCAP \
+	-DNEW_SHELLSIZE \
+	-I proto \
+	-Wno-attributes \
+	-Wextra
+
+# Vim 'huge' build
+ifeq ($(BUILD),huge)
+CFLAGS += \
+	-DFEAT_BROWSE \
+	-DFEAT_MOUSE \
+	-DFEAT_HUGE
+else
+
+# Vim 'big' build
+ifeq ($(BUILD),big)
+CFLAGS += \
+	-DFEAT_BROWSE \
+	-DFEAT_MOUSE \
+	-DFEAT_BIG
+else
+
+# Vim 'normal' build
+ifeq ($(BUILD),normal)
+CFLAGS +=\
+	-DFEAT_BROWSE \
+	-DFEAT_MOUSE \
+	-DFEAT_NORMAL
+else
+
+# Vim 'small' build
+ifeq ($(BUILD),small)
+CFLAGS += -DFEAT_SMALL
+else
+
+# Vim 'tiny' build
+ifeq ($(BUILD),tiny)
+CFLAGS += -DFEAT_TINY
+endif
+endif
+endif
+endif
+endif
+
+# OS specific compiler flags
+ifeq ($(UNM),AmigaOS)
+LDFLAGS = -mcrt=clib2 -lauto -lm -lnet
+CFLAGS += -DHAVE_FSYNC -D__USE_INLINE__ -mcrt=clib2
+else
+ifeq ($(UNM),AROS)
+LDFLAGS = -DHAVE_FSYNC -ldebug
+else
+ifeq ($(UNM),MorphOS)
+LDFLAGS = -ldebug -noixemul
+endif
+endif
+endif
+
+# Patch level used for Amiga style version string
+ifdef PATCHLEVEL
+CFLAGS += -DPATCHLEVEL=\"$(PATCHLEVEL)\"
+endif
+
+# Common sources
+SRC += \
+	arabic.c \
+	arglist.c \
+	autocmd.c \
+	beval.c \
+	blob.c \
+	blowfish.c \
+	buffer.c \
+	bufwrite.c \
+	change.c \
+	charset.c \
+	cindent.c \
+	clientserver.c \
+	clipboard.c \
+	cmdhist.c \
+	cmdexpand.c \
+	crypt.c \
+	crypt_zip.c \
+	debugger.c \
+	dict.c \
+	diff.c \
+	digraph.c \
+	drawline.c \
+	drawscreen.c \
+	edit.c \
+	eval.c \
+	evalbuffer.c \
+	evalfunc.c \
+	evalvars.c \
+	evalwindow.c \
+	ex_cmds.c \
+	ex_cmds2.c \
+	ex_docmd.c \
+	ex_eval.c \
+	ex_getln.c \
+	fileio.c \
+	filepath.c \
+	findfile.c \
+	fold.c \
+	getchar.c \
+	hardcopy.c \
+	hashtab.c \
+	help.c \
+	highlight.c \
+	if_cscope.c \
+	indent.c \
+	insexpand.c \
+	json.c \
+	list.c \
+	locale.c \
+	main.c \
+	mark.c \
+	map.c \
+	match.c \
+	mbyte.c \
+	memfile.c \
+	memline.c \
+	menu.c \
+	message.c \
+	misc1.c \
+	misc2.c \
+	mouse.c \
+	move.c \
+	normal.c \
+	ops.c \
+	option.c \
+	optionstr.c \
+	os_amiga.c \
+	popupmenu.c \
+	popupwin.c \
+	quickfix.c \
+	regexp.c \
+	register.c \
+	screen.c \
+	scriptfile.c \
+	search.c \
+	session.c \
+	sha256.c \
+	sign.c \
+	spell.c \
+	spellfile.c \
+	spellsuggest.c \
+	syntax.c \
+	tag.c \
+	term.c \
+	termlib.c \
+	testing.c \
+	textformat.c \
+	textobject.c \
+	textprop.c \
+	time.c \
+	typval.c \
+	ui.c \
+	undo.c \
+	usercmd.c \
+	userfunc.c \
+	version.c \
+	viminfo.c \
+	vim9compile.c \
+	vim9execute.c \
+	vim9script.c \
+	vim9type.c \
+	window.c \
+	xdiff/xdiffi.c \
+	xdiff/xemit.c \
+	xdiff/xhistogram.c \
+	xdiff/xpatience.c \
+	xdiff/xprepare.c \
+	xdiff/xutils.c
+
+OBJ = $(SRC:.c=.o)
+
+# Build everything - Ignoring header dependencies.
+$(BIN): $(OBJ)
+	${LD} -o $(BIN) $(OBJ) $(LDFLAGS)
+
+# Clean up
+.PHONY: clean
+clean:
+	$(RM) -fv $(OBJ) $(BIN)
deleted file mode 100644
--- a/src/Make_morph.mak
+++ /dev/null
@@ -1,132 +0,0 @@
-#
-# Makefile for VIM, using MorphOS SDK (gcc 2.95.3)
-#
-
-CFLAGS =	-c						\
-		-pipe						\
-		-O2						\
-		-Wall						\
-								\
-		-DNO_ARP					\
-		-DUSE_TMPNAM					\
-								\
-		-I proto					\
-								\
-		-noixemul
-
-PRG =		Vim
-LIBS =		-noixemul -s
-CC =		gcc
-LD =		gcc
-OBJDUMP =	objdump
-RM =		rm
-
-.c.o:
-	${CC} ${CFLAGS} $< -o $@
-
-SRC =	arabic.c						\
-	arglist.c						\
-	autocmd.c						\
-	blowfish.c						\
-	buffer.c						\
-	bufwrite.c						\
-	change.c						\
-	charset.c						\
-	cindent.c						\
-	clientserver.c						\
-	clipboard.c						\
-	cmdexpand.c						\
-	cmdhist.c						\
-	crypt.c							\
-	crypt_zip.c						\
-	debugger.c						\
-	dict.c							\
-	diff.c							\
-	digraph.c						\
-	drawline.c						\
-	drawscreen.c						\
-	edit.c							\
-	eval.c							\
-	evalbuffer.c						\
-	evalfunc.c						\
-	evalvars.c						\
-	evalwindow.c						\
-	ex_cmds.c						\
-	ex_cmds2.c						\
-	ex_docmd.c						\
-	ex_eval.c						\
-	ex_getln.c						\
-	fileio.c						\
-	filepath.c						\
-	findfile.c						\
-	fold.c							\
-	getchar.c						\
-	gui_xim.c						\
-	hardcopy.c						\
-	hashtab.c						\
-	help.c							\
-	highlight.c						\
-	indent.c						\
-	insexpand.c						\
-	json.c							\
-	list.c							\
-	locale.c						\
-	main.c							\
-	map.c							\
-	mark.c							\
-	match.c							\
-	mbyte.c							\
-	memfile.c						\
-	memline.c						\
-	menu.c							\
-	message.c						\
-	misc1.c							\
-	misc2.c							\
-	mouse.c							\
-	move.c							\
-	normal.c						\
-	ops.c							\
-	option.c						\
-	optionstr.c						\
-	os_amiga.c						\
-	popupmenu.c						\
-	profiler.c						\
-	quickfix.c						\
-	regexp.c						\
-	register.c						\
-	scriptfile.c						\
-	screen.c						\
-	search.c						\
-	session.c						\
-	sha256.c						\
-	sign.c							\
-	spell.c							\
-	spellfile.c						\
-	spellsuggest.c						\
-	syntax.c						\
-	tag.c							\
-	term.c							\
-	testing.c						\
-	textformat.c						\
-	textobject.c						\
-	textprop.c						\
-	time.c							\
-	typval.c						\
-	ui.c							\
-	undo.c							\
-	usercmd.c						\
-	userfunc.c						\
-	version.c						\
-	viminfo.c						\
-	window.c						\
-
-OBJ =	$(SRC:.c=.o)
-
-$(PRG): $(OBJ)
-	${LD} -o $(PRG) $(OBJ) $(LIBS)
-
-dump: $(PRG)
-	$(OBJDUMP) --reloc --disassemble-all $(PRG) > $(PRG).s
-
-clean:
-	$(RM) -fv $(OBJ) $(PRG) $(PRG).s
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1648,
+/**/
     1647,
 /**/
     1646,