]> granicus.if.org Git - nethack/commitdiff
last known Amiga cross-compile -> outdated
authornhmall <nhmall@nethack.org>
Tue, 1 Feb 2022 21:43:39 +0000 (16:43 -0500)
committernhmall <nhmall@nethack.org>
Tue, 1 Feb 2022 21:43:39 +0000 (16:43 -0500)
Place the last known Amiga cross-compile effort into the outdated folder
tree.

This shell script was meant to be run from the top of the NetHack tree:
    outdated/sys/unix/cross-amiga.sh
It attempts two things:
1. obtain the source-code for the Amiga cross compiler and build it
   from scratch. Warning: it pulls a number of the required packages
   from the internet and installs them. (Linux was tested, but the macOS
   usage never was).
2. move the outdated hints file and hints include files for Amiga
   into the live tree for someone attempting to resurrect an Amiga port.
   It doesn't tinker with any of the files needed for the NetHack-3.7
   work-in-progess for other platforms.

Once the shell script completes those things, the cross-compile build
steps would be:
  i) cd sys/unix ; sh setup.sh hints/cross-amiga ; cd ../..
 ii) make CROSS_TO_AMIGA=1 all
iii) make CROSS_TO_AMIGA=1 package

outdated/sys/amiga/amidos.c
outdated/sys/amiga/winchar.c
outdated/sys/amiga/winfuncs.c
outdated/sys/unix/cross-amiga.sh [new file with mode: 0644]
outdated/sys/unix/hints/cross-amiga [new file with mode: 0644]
outdated/sys/unix/hints/include/cross-amiga-post [new file with mode: 0644]
outdated/sys/unix/hints/include/cross-amiga-pre [new file with mode: 0644]

index 402e295350e89fc18f60347060aee54f170afb04..7acce202e51be46295d66fa2efdd4550ea10130a 100644 (file)
@@ -42,6 +42,7 @@
 extern char Initialized;
 extern struct window_procs amii_procs;
 struct ami_sysflags sysflags = {0};
+FILE *fopenp(const char *, const char *);
 
 #ifndef __SASC_60
 int Enable_Abort = 0; /* for stdio package */
index 9fb0508dc69bf9d45cd373420af96e601f2bf41b..222d7952ac2fc6e8307af129113fa396a985c725 100644 (file)
@@ -63,6 +63,13 @@ void MyFreeBitMap(struct BitMap *bmp);
 extern void display_map(struct Window *);
 #endif
 
+#ifdef USE_TILES
+extern int maxmontile, maxobjtile, maxothtile; /* from tile.c */
+#define MAXMONTILE maxmontile
+#define MAXOBJTILE maxobjtile
+#define MAXOTHTILE maxothtile
+#endif
+
 /*
  *  These values will be available from tile.c source
  *
@@ -895,9 +902,12 @@ SetMazeType(MazeType t)
 int
 GlyphToIcon(int glyph)
 {
+    glyph_info gi;
+
+    map_glyphinfo(0, 0, glyph, 0, &gi);
     if (glyph > 10000)
         return glyph;
-    return (glyph2tile[glyph]);
+    return (gi.gm.tileidx);
 }
 #endif
 
index dfbae4312884fc01d5607fcd6b2daf139848e652..eda6bd006335cb26a7c8bacc1c3ef1749696777e 100644 (file)
@@ -2002,8 +2002,14 @@ if(u.uz.dlevel != x){
     } else /* AMII, or Rogue level in either version */
     {
         /* map glyph to character and color */
-        (void) mapglyph(glyph, &och, &color, &special, x, y, 0);
-        ch = (uchar) och;
+#if 0
+       (void) mapglyph(glyph, &och, &color, &special, x, y, 0);
+       ch = (uchar) och;
+#else
+       glyph_info gi;
+       map_glyphinfo(0, 0, glyph, 0, &gi);
+       ch = gi.ttychar;
+#endif
         if (WINVERS_AMIV) { /* implies Rogue level here */
             amii_curs(win, x, y);
             amiga_print_glyph(win, NO_COLOR, ch + 10000);
diff --git a/outdated/sys/unix/cross-amiga.sh b/outdated/sys/unix/cross-amiga.sh
new file mode 100644 (file)
index 0000000..397ffb3
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+# outdated/sys/unix/cross-amiga.sh
+set -x
+
+cp outdated/sys/unix/hints/cross-amiga sys/unix/hints
+cp outdated/sys/unix/hints/include/cross-amiga-post sys/unix/hints/include
+cp outdated/sys/unix/hints/include/cross-amiga-pre sys/unix/hints/include
+
+CROSSCOMPILER_REPO="https://github.com/bebbo/amiga-gcc"
+
+if [ ! -d "/opt/amiga/bin" ]; then
+ export myname="$USER"
+ sudo mkdir -p /opt/amiga
+ sudo chown $myname /opt/amiga
+ mkdir -p lib
+ cd lib
+ git clone $CROSSCOMPILER_REPO
+ cd amiga-gcc
+ if [ "$(uname)" = "Darwin" ]; then
+    #Mac (git, Xcode and Homebrew assumed to already be installed)
+    platform=macOS
+    brew install bash wget make lhasa gmp mpfr libmpc flex gettext gnu-sed \
+        texinfo gcc@11 make autoconf
+    CC=gcc-11 CXX=g++-11 gmake all SHELL=$(brew --prefix)/bin/bash
+    special1=$(brew --prefix)/bin/bash
+    special=SHELL=$special1
+ elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]; then
+    #Linux (git gcc, g++ assumed to already be installed)
+    platform=Linux
+    sudo apt install make wget git lhasa libgmp-dev libmpfr-dev \
+        libmpc-dev flex bison gettext texinfo ncurses-dev autoconf rsync
+ else
+    echo "No Amiga cross-compiler for you, sorry."
+    exit 1
+ fi
+ make clean
+ make clean-prefix
+ make all
+ cd ../..
+fi
diff --git a/outdated/sys/unix/hints/cross-amiga b/outdated/sys/unix/hints/cross-amiga
new file mode 100644 (file)
index 0000000..ac66b60
--- /dev/null
@@ -0,0 +1,275 @@
+# NetHack 3.7  cross-amiga
+# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
+# NetHack may be freely redistributed.  See license for details.
+#
+#---------------------------------------------------------------------
+# Linux hints file with support for multiple window ports (interfaces)
+# Tested on:
+#     - Ubuntu focal
+#
+# If this doesn't work for your distribution, consider making a new
+# hints file for it, rather than changing this one.
+# And let us know about it.
+#
+
+#-PRE
+# cross-amiga hints file provides a single-user build for Linux (such
+# as Ubuntu focal).
+
+# note: '#-INCLUDE' is not just a comment
+#        multiw-1.370 contains sections 1 to 2
+#-INCLUDE multiw-1.370
+
+# 3. If you set WANT_WIN_QT, you need to
+#  A) set QTDIR either here or in the environment  to point to the Qt5
+#     Library installation root.
+#  B) set XPMLIB to point to the Xpm library
+ifndef WANT_WIN_QT
+ifdef WANT_WIN_ALL
+WANT_WIN_QT=1
+endif
+ifdef WANT_WIN_QT5
+ifndef WANT_WIN_QT
+WANT_WIN_QT=1
+endif   # not WANT_WIN_QT
+endif   # WANT_WIN_QT5
+ifdef WANT_WIN_QT6
+ifndef WANT_WIN_QT
+WANT_WIN_QT=1
+endif   # not WANT_WIN_QT
+endif   # WANT_WIN_QT6
+endif   # not WANT_WIN_QT
+
+ifdef WANT_WIN_QT
+ifndef WANT_WIN_QT5
+ifndef WANT_WIN_QT6
+WANT_WIN_QT5=1
+endif   # not WANT_WIN_QT6
+endif   # not WANT_WIN_QT5
+ifdef WANT_WIN_QT5
+QTDIR=/usr
+endif  # WANT_WIN_QT5
+ifdef WANT_WIN_QT6
+#if your Qt6 is elsewhere, change this to match
+QTDIR=/usr/local/qt6
+endif   # WANT_WIN_QT6
+endif  # WANT_WIN_QT
+
+ifndef LIBXPM
+LIBXPM= -L/opt/X11/lib -lXpm
+endif
+
+#4. Other
+GAMEUID  = $(USER)
+GAMEGRP  = games
+
+#-----------------------------------------------------------------------------
+# You shouldn't need to change anything below here (in the hints file; if
+# you're reading this in Makefile augmented by hints, that may not be true).
+#
+
+#-INCLUDE multiw-2.370
+
+# compiler.370 contains compiler detection and adjustments common
+# to both linux and macOS
+
+#-INCLUDE compiler.370
+
+# NetHack sources control
+NHCFLAGS+=-DDLB
+NHCFLAGS+=-DHACKDIR=\"$(HACKDIR)\"
+NHCFLAGS+=-DDEFAULT_WINDOW_SYS=\"$(WANT_DEFAULT)\"
+NHCFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
+NHCFLAGS+=-DTIMED_DELAY
+NHCFLAGS+=-DDUMPLOG
+NHCFLAGS+=-DCONFIG_ERROR_SECURE=FALSE
+#NHCFLAGS+=-DGREPPATH=\"/usr/bin/grep\"
+NHCFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\"
+#NHCFLAGS+=-DNOMAIL
+#NHCFLAGS+=-DEXTRA_SANITY_CHECKS
+#NHCFLAGS+=-DEDIT_GETLIN
+#NHCFLAGS+=-DSCORE_ON_BOTL
+#NHCFLAGS+=-DMSGHANDLER
+#NHCFLAGS+=-DTTY_TILES_ESCCODES
+#NHCFLAGS+=-DTTY_SOUND_ESCCODES
+
+CFLAGS+= $(WINCFLAGS)    #WINCFLAGS set from multiw-2.370
+CFLAGS+= $(NHCFLAGS)
+
+CCXXFLAGS+= $(WINCFLAGS)  #WINCFLAGS set from multiw-2.370
+CCXXFLAGS+= $(NHCFLAGS)
+
+VARDATND =
+VARDATND0 =
+CURSESLIB =
+
+#ifdef WANT_WIN_CHAIN
+#HINTSRC=$(CHAINSRC)
+#HINTOBJ=$(CHAINOBJ)
+#endif # WANT_WIN_CHAIN
+
+ifdef WANT_WIN_TTY
+CURSESLIB = -lncurses -ltinfo
+endif
+
+ifdef WANT_WIN_CURSES
+CURSESLIB = -lncurses -ltinfo
+endif
+
+ifdef CURSESLIB
+WINLIB += $(CURSESLIB)
+endif
+
+ifdef WANT_WIN_X11
+USE_XPM=1
+WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
+VARDATND0 += x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
+# -x: if built without dlb, some versions of mkfontdir think *.lev are fonts
+POSTINSTALL += bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; ( cd $(HACKDIR); mkfontdir -x .lev );
+# separate from CFLAGS so that we don't pass it to every file
+X11CFLAGS = -I/opt/X11/include
+# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
+X11CFLAGS += -Wno-variadic-macros
+ifdef USE_XPM
+CFLAGS += -DUSE_XPM
+WINX11LIB += -lXpm
+VARDATND0 += rip.xpm
+endif
+WINLIB += $(WINX11LIB)
+LFLAGS=-L/opt/X11/lib
+endif  # WANT_WIN_X11
+
+ifdef WANT_WIN_QT
+LINK = $(CXX)
+ifdef WANT_WIN_QT5
+QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --cflags))
+WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt5Gui Qt5Widgets Qt5Multimedia --libs)
+endif   # WANT_WIN_QT5
+ifdef WANT_WIN_QT6
+# As of January 2022 there was no Qt6 package available.
+ifndef QT_PACKAGE_AVAILABLE
+# Try some likely spots for a self-built Qt6.
+# You'll have to change these manually before using the hints file
+# if they don't match the installed location on your system.
+ifneq ($(wildcard /usr/local/Qt6/*),)
+QTDIR=/usr/local/Qt6
+QTLOCATED=1
+endif
+ifneq ($(wildcard /usr/local/qt6/*),)
+QTDIR=/usr/local/qt6
+QTLOCATED=1
+endif
+ifdef QTLOCATED
+QTCXXFLAGS += -I$(QTDIR)/include/QtCore
+QTCXXFLAGS += -I$(QTDIR)/include/QtGui
+QTCXXFLAGS += -I$(QTDIR)/include/QtMultimedia
+QTCXXFLAGS += -I$(QTDIR)/include/QtWidgets
+MOCPATH = $(QTDIR)/libexec/moc
+WINLIB += -L$(QTDIR)/lib -lQt6Widgets -lQt6Multimedia -lQt6Network -lQt6Gui -lQt6Core
+endif
+else   # QT_PACKAGE_AVAILABLE
+QTCXXFLAGS += $(sort $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --cflags))
+WINLIB += $(shell PKG_CONFIG_PATH=$(QTDIR)/lib/pkgconfig pkg-config Qt6Gui Qt6Widgets Qt6Multimedia --libs)
+endif   # WANT_WIN_QT6
+else    # QT_PACKAGE_AVAILABLE
+endif   # QT_PACKAGE_AVAILABLE
+ifndef QTDIR
+$(error QTDIR not defined in the environment or Makefile)
+endif  # QTDIR
+# XXX if /Developer/qt exists and QTDIR not set, use that
+# XXX make sure QTDIR points to something reasonable
+QTCXXFLAGS += -fPIC
+POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; \
+               ( cd $(INSTDIR); mkfontdir -x .lev );
+VARDATND0 += nhtiles.bmp rip.xpm nhsplash.xpm
+else
+LINK = $(CC)
+endif  # !WANT_WIN_QT
+
+# prevent duplicate tile.o in WINOBJ
+WINOBJ = $(sort $(WINOBJ0))
+# prevent duplicates in VARDATND if both X11 and Qt are being supported
+VARDATND += $(sort $(VARDATND0))
+
+GIT_HASH := $(shell echo `git rev-parse --verify HEAD` 2>&1)
+GIT_BRANCH := $(shell echo `git rev-parse --abbrev-ref HEAD` 2>&1)
+
+ifdef GIT_HASH
+GITHASH = -DNETHACK_GIT_SHA=\"$(GIT_HASH)\"
+endif
+ifdef GIT_BRANCH
+GITBRANCH = -DNETHACK_GIT_BRANCH=\"$(GIT_BRANCH)\"
+endif
+
+ifdef WANT_LIBNH
+CFLAGS += -DSHIM_GRAPHICS -DNOTTYGRAPHICS -DNOSHELL -DLIBNH -fpic
+LIBNHSYSSRC = ../sys/libnh/libnhmain.c \
+               ../sys/share/ioctl.c ../sys/share/unixtty.c \
+               ../sys/unix/unixunix.c ../sys/unix/unixres.c \
+               ../win/shim/winshim.c
+LIBNHSYSOBJ = $(TARGETPFX)libnhmain.o $(TARGETPFX)ioctl.o \
+               $(TARGETPFX)unixtty.o $(TARGETPFX)unixunix.o \
+               $(TARGETPFX)unixres.o $(TARGETPFX)winshim.o \
+               $(TARGETPFX)date.o
+#don't bother building the game executable as it will fail
+#without winshim
+override GAME=
+MOREALL += ( cd src ; $(MAKE) pregame ; $(MAKE) $(TARGETPFX)libnh.a )
+endif  # WANT_LIBNH
+
+#PREFIX=/usr
+PREFIX=$(wildcard ~)/nh/install
+HACKDIR=$(PREFIX)/games/lib/$(GAME)dir
+SHELLDIR = $(PREFIX)/games
+INSTDIR=$(HACKDIR)
+VARDIR = $(HACKDIR)
+
+POSTINSTALL+= cp -n sys/unix/sysconf $(INSTDIR)/sysconf; \
+       $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf; \
+       $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf; \
+       chmod $(VARFILEPERM) $(INSTDIR)/sysconf;
+
+ifneq "$(CCISCLANG)" ""
+# gdb may not be installed if clang is chosen compiler so the game
+# won't start in that case due to a sysconf error. Comment out
+# relevant lines in sysconf.
+POSTINSTALL+= sed -i -e 's;^GDBPATH=/usr/bin/gdb;\#GDBPATH=/usr/bin/gdb;' \
+               -e 's;PANICTRACE_GDB=1;PANICTRACE_GDB=0;' $(INSTDIR)/sysconf;
+endif
+
+# when building liblua.a, avoid warning that use of tmpnam() should be
+# replaced by mkstemp(); the lua code doesn't use nethack's config.h so
+# this needs to be passed via make rather than defined in unixconf.h
+SYSCFLAGS=-DLUA_USE_POSIX
+
+# Only needed for GLIBC stack trace:
+LFLAGS=-rdynamic
+
+# if TTY_TILES_ESCCODES
+#WINSRC += tile.c
+#WINOBJ += tile.o
+# endif
+
+CHOWN=true
+CHGRP=true
+
+VARDIRPERM = 0755
+VARFILEPERM = 0600
+GAMEPERM = 0755
+#
+#-INCLUDE cross-amiga-pre
+#
+#-POST
+#
+#-INCLUDE cross-amiga-post
+#
+ifdef WANT_LIBNH
+$(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
+       $(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua.a
+       @echo "$@ built."
+$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
+       $(CC) $(CFLAGS) -c -o$@ $<
+$(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
+       $(CC) $(CFLAGS) -c -o$@ $<
+endif  # WANT_LIBNH
+#
diff --git a/outdated/sys/unix/hints/include/cross-amiga-post b/outdated/sys/unix/hints/include/cross-amiga-post
new file mode 100644 (file)
index 0000000..52d8b54
--- /dev/null
@@ -0,0 +1,282 @@
+#===============-=================================================
+# NetHack 3.7  include/cross-amiga/post $NHDT-Date: 1597332785 2020/08/13 15:33:05 $  $NHDT-Branch: NetHack-3.7 $
+#
+# Cross-compiling -POST section for Amiga
+
+ifdef CROSS_TO_AMIGA
+$(TARGETPFX)amidos.o : ../outdated/sys/amiga/amidos.c $(HACK_H)
+$(TARGETPFX)amigst.o : ../outdated/sys/amiga/amigst.c $(HACK_H)
+$(TARGETPFX)amirip.o : ../outdated/sys/amiga/amirip.c $(HACK_H)
+$(TARGETPFX)amistack.o : ../outdated/sys/amiga/amistack.c $(HACK_H)
+$(TARGETPFX)amitty.o : ../outdated/sys/amiga/amitty.c $(HACK_H)
+$(TARGETPFX)amiwind.o : ../outdated/sys/amiga/amiwind.c \
+               ../outdated/sys/amiga/amimenu.c $(HACK_H)
+$(TARGETPFX)winami.o : ../outdated/sys/amiga/winami.c $(HACK_H)
+$(TARGETPFX)winchar.o : ../outdated/sys/amiga/winchar.c tile.c $(HACK_H)
+$(TARGETPFX)winfuncs.o : ../outdated/sys/amiga/winfuncs.c $(HACK_H)
+$(TARGETPFX)winkey.o : ../outdated/sys/amiga/winkey.c $(HACK_H)
+$(TARGETPFX)winamenu.o : ../outdated/sys/amiga/winamenu.c $(HACK_H)
+$(TARGETPFX)winreq.o : ../outdated/sys/amiga/winreq.c \
+               ../outdated/sys/amiga/colorwin.c \
+               ../outdated/sys/amiga/clipwin.c $(HACK_H)
+$(TARGETPFX)winstr.o : ../outdated/sys/amiga/winstr.c $(HACK_H)
+$(TARGETPFX)tomb.iff : ../util/xpm2iff ../outdated/sys/amiga/gave16.xpm
+../util/tiletext.o : ../win/share/tiletext.c
+       $(CC) $(CFLAGS) -c \
+               -o $@ ../win/share/tiletext.c
+../util/txt2iff : ../util/txt2iff.o ../util/tiletext.o \
+               ../util/tiletxt.o
+       $(LINK) $(LFLAGS) -L../lib -o $@ ../util/txt2iff.o ../util/tiletext.o \
+               ../util/tiletxt.o -lriffl
+../util/txt2iff.o : ../outdated/sys/amiga/txt2iff.c $(HACK_H)
+       $(CC) $(CFLAGS) -c \
+               -I../lib/riffl-0.2/include \
+               -I/opt/amiga/m68k-amigaos/ndk13-include \
+               -o $@ ../outdated/sys/amiga/txt2iff.c
+../util/xpm2iff : ../util/xpm2iff.o
+       $(LINK) $(LFLAGS) -L../lib -o $@ ../util/txt2iff.o -lriffl
+../util/xpm2iff.o : ../outdated/sys/amiga/xpm2iff.c $(HACK_H)
+       $(CC) $(CFLAGS) -o $@ ../outdated/sys/amiga/xpm2iff.c
+$(TARGETPFX)objects.iff: ../win/share/objects.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/objects.txt $@
+$(TARGETPFX)monsters.iff: ../win/share/monsters.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/monsters.txt $@
+$(TARGETPFX)other.iff: ../win/share/other.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/other.txt $@
+$(GAMEBIN) : $(HOBJ) $(LUACROSSLIB)
+       $(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
+       $(HOBJ) $(WINLIB) $(TARGET_LIBS)
+#
+.PHONY: amigapkg
+amigapkg: $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
+       mkdir -p $(TARGETPFX)pkg
+       cp $(GAMEBIN) $(TARGETPFX)pkg/nethack
+       cp ../dat/nhdat $(TARGETPFX)pkg/nhdat
+       cp ../dat/license $(TARGETPFX)pkg/license
+       cp ../dat/nhtiles.bmp $(TARGETPFX)pkg/nhtiles.bmp
+       cp $(TARGETPFX)tomb.iff $(TARGETPFX)pkg/tomb.iff
+       cp $(TARGETPFX)monsters.iff $(TARGETPFX)pkg/monsters.iff
+       cp $(TARGETPFX)objects.iff $(TARGETPFX)pkg/objects.iff
+       cp $(TARGETPFX)other.iff $(TARGETPFX)pkg/other.iff
+       cp ../dat/symbols $(TARGETPFX)pkg/symbols
+       cp ../sys/share/NetHack.cnf $(TARGETPFX)pkg/nethack.cnf
+       cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
+       cp ../outdated/sys/amiga/amii.hlp $(TARGETPFX)pkg/amii.hlp
+       cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
+       cp ../doc/nethack.txt $(TARGETPFX)pkg/nethack.txt
+       ../util/uudecode ../outdated/sys/amiga/amifont8.uu
+       cp 8 $(TARGETPFX)pkg/8
+       ../util/uudecode ../outdated/sys/amiga/amifont.uu
+       cp hack.font $(TARGETPFX)pkg/hack.font
+       ../util/uudecode ../outdated/sys/amiga/dflticon.uu
+       cp default.icon $(TARGETPFX)pkg/default.icon
+       ../util/uudecode ../outdated/sys/amiga/NHinfo.uu
+       cp NetHack.info $(TARGETPFX)pkg/NetHack.info
+       ../util/uudecode ../outdated/sys/amiga/NewGame.uu
+       cp NewGame.info $(TARGETPFX)pkg/NewGame.info
+       ../util/uudecode ../outdated/sys/amiga/HackWB.uu
+       cp HackWB.info $(TARGETPFX)pkg/HackWB.info
+       -touch $(TARGETPFX)pkg/record
+       zip -9 $(TARGETPFX)NH370AMI.ZIP $(TARGETPFX)pkg/*
+       @echo amiga package zip file $(TARGETPFX)NH370AMI.ZIP
+endif  # CROSS_TO_AMIGA
+
+ifdef CROSS_TO_AMIGA
+$(TARGETPFX)amidos.o : ../outdated/sys/amiga/amidos.c $(HACK_H)
+$(TARGETPFX)amigst.o : ../outdated/sys/amiga/amigst.c $(HACK_H)
+$(TARGETPFX)amirip.o : ../outdated/sys/amiga/amirip.c $(HACK_H)
+$(TARGETPFX)amistack.o : ../outdated/sys/amiga/amistack.c $(HACK_H)
+$(TARGETPFX)amitty.o : ../outdated/sys/amiga/amitty.c $(HACK_H)
+$(TARGETPFX)amiwind.o : ../outdated/sys/amiga/amiwind.c \
+               ../outdated/sys/amiga/amimenu.c $(HACK_H)
+$(TARGETPFX)winami.o : ../outdated/sys/amiga/winami.c $(HACK_H)
+$(TARGETPFX)winchar.o : ../outdated/sys/amiga/winchar.c tile.c $(HACK_H)
+$(TARGETPFX)winfuncs.o : ../outdated/sys/amiga/winfuncs.c $(HACK_H)
+$(TARGETPFX)winkey.o : ../outdated/sys/amiga/winkey.c $(HACK_H)
+$(TARGETPFX)winamenu.o : ../outdated/sys/amiga/winamenu.c $(HACK_H)
+$(TARGETPFX)winreq.o : ../outdated/sys/amiga/winreq.c \
+               ../outdated/sys/amiga/colorwin.c \
+               ../outdated/sys/amiga/clipwin.c $(HACK_H)
+$(TARGETPFX)winstr.o : ../outdated/sys/amiga/winstr.c $(HACK_H)
+$(TARGETPFX)tomb.iff : ../util/xpm2iff ../outdated/sys/amiga/gave16.xpm
+../util/tiletext.o : ../win/share/tiletext.c
+       $(CC) $(CFLAGS) -c \
+               -o $@ ../win/share/tiletext.c
+../util/txt2iff : ../util/txt2iff.o ../util/tiletext.o \
+               ../util/tiletxt.o
+       $(LINK) $(LFLAGS) -L../lib -o $@ ../util/txt2iff.o ../util/tiletext.o \
+               ../util/tiletxt.o -lriffl
+../util/txt2iff.o : ../outdated/sys/amiga/txt2iff.c $(HACK_H)
+       $(CC) $(CFLAGS) -c \
+               -I../lib/riffl-0.2/include \
+               -I/opt/amiga/m68k-amigaos/ndk13-include \
+               -o $@ ../outdated/sys/amiga/txt2iff.c
+../util/xpm2iff : ../util/xpm2iff.o
+       $(LINK) $(LFLAGS) -L../lib -o $@ ../util/txt2iff.o -lriffl
+../util/xpm2iff.o : ../outdated/sys/amiga/xpm2iff.c $(HACK_H)
+       $(CC) $(CFLAGS) -o $@ ../outdated/sys/amiga/xpm2iff.c
+$(TARGETPFX)objects.iff: ../win/share/objects.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/objects.txt $@
+$(TARGETPFX)monsters.iff: ../win/share/monsters.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/monsters.txt $@
+$(TARGETPFX)other.iff: ../win/share/other.txt ../util/txt2iff
+       ../util/txt2iff ../win/share/other.txt $@
+$(GAMEBIN) : $(HOBJ) $(LUACROSSLIB)
+       $(TARGET_LINK) $(TARGET_LFLAGS) -o $(GAMEBIN) \
+       $(HOBJ) $(WINLIB) $(TARGET_LIBS)
+#
+.PHONY: amigapkg
+amigapkg: $(GAMEBIN) $(TARGETPFX)recover.exe ../dat/nhtiles.bmp
+       mkdir -p $(TARGETPFX)pkg
+       cp $(GAMEBIN) $(TARGETPFX)pkg/nethack
+       cp ../dat/nhdat $(TARGETPFX)pkg/nhdat
+       cp ../dat/license $(TARGETPFX)pkg/license
+       cp ../dat/nhtiles.bmp $(TARGETPFX)pkg/nhtiles.bmp
+       cp $(TARGETPFX)tomb.iff $(TARGETPFX)pkg/tomb.iff
+       cp $(TARGETPFX)monsters.iff $(TARGETPFX)pkg/monsters.iff
+       cp $(TARGETPFX)objects.iff $(TARGETPFX)pkg/objects.iff
+       cp $(TARGETPFX)other.iff $(TARGETPFX)pkg/other.iff
+       cp ../dat/symbols $(TARGETPFX)pkg/symbols
+       cp ../sys/share/NetHack.cnf $(TARGETPFX)pkg/nethack.cnf
+       cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
+       cp ../outdated/sys/amiga/amii.hlp $(TARGETPFX)pkg/amii.hlp
+       cp ../sys/msdos/sysconf $(TARGETPFX)pkg/sysconf
+       cp ../doc/nethack.txt $(TARGETPFX)pkg/nethack.txt
+       ../util/uudecode ../outdated/sys/amiga/amifont8.uu
+       cp 8 $(TARGETPFX)pkg/8
+       ../util/uudecode ../outdated/sys/amiga/amifont.uu
+       cp hack.font $(TARGETPFX)pkg/hack.font
+       ../util/uudecode ../outdated/sys/amiga/dflticon.uu
+       cp default.icon $(TARGETPFX)pkg/default.icon
+       ../util/uudecode ../outdated/sys/amiga/NHinfo.uu
+       cp NetHack.info $(TARGETPFX)pkg/NetHack.info
+       ../util/uudecode ../outdated/sys/amiga/NewGame.uu
+       cp NewGame.info $(TARGETPFX)pkg/NewGame.info
+       ../util/uudecode ../outdated/sys/amiga/HackWB.uu
+       cp HackWB.info $(TARGETPFX)pkg/HackWB.info
+       -touch $(TARGETPFX)pkg/record
+       zip -9 $(TARGETPFX)NH370AMI.ZIP $(TARGETPFX)pkg/*
+       @echo amiga package zip file $(TARGETPFX)NH370AMI.ZIP
+endif  # CROSS_TO_AMIGA
+
+ifdef CROSS_SHARED
+# shared file dependencies
+$(TARGETPFX)pcmain.o : ../sys/share/pcmain.c $(HACK_H)
+$(TARGETPFX)pcsys.o : ../sys/share/pcsys.c $(HACK_H)
+$(TARGETPFX)pctty.o : ../sys/share/pctty.c $(HACK_H)
+$(TARGETPFX)pcunix.o : ../sys/share/pcunix.c $(HACK_H)
+$(TARGETPFX)tileset.o : ../win/share/tileset.c
+$(TARGETPFX)bmptiles.o : ../win/share/bmptiles.c
+$(TARGETPFX)giftiles.o : ../win/share/giftiles.c
+$(TARGETPFX)recover.o : ../util/recover.c
+$(TARGETPFX)recover.exe : $(TARGETPFX)recover.o
+       $(TARGET_LINK) $(TARGET_LFLAGS) $(TARGETPFX)recover.o -o $@
+endif  # CROSS_SHARED
+#
+ifdef BUILD_TARGET_LUA
+# Lua lib
+$(LUACROSSLIB): $(LUALIBOBJS)
+       if [ -f $@ ]; then rm $@; fi;
+       $(TARGET_AR) rcS $@ $(LUAOBJFILES1)
+       $(TARGET_AR) rcS $@ $(LUAOBJFILES2)
+       $(TARGET_AR) rcS $@ $(LUAOBJFILES3)
+       $(TARGET_AR) rcs $@ $(LUAOBJFILES4)
+
+#      $(TARGET_AR) rcs $@ $(LUALIBOBJS)
+
+# Lua src
+$(TARGETPFX)lapi.o : $(LUATOP)/src/lapi.c
+$(TARGETPFX)lauxlib.o : $(LUATOP)/src/lauxlib.c
+$(TARGETPFX)lbaselib.o : $(LUATOP)/src/lbaselib.c
+$(TARGETPFX)lbitlib.o : $(LUATOP)/src/lbitlib.c
+$(TARGETPFX)lcode.o : $(LUATOP)/src/lcode.c
+$(TARGETPFX)lcorolib.o : $(LUATOP)/src/lcorolib.c
+$(TARGETPFX)lctype.o : $(LUATOP)/src/lctype.c
+$(TARGETPFX)ldblib.o : $(LUATOP)/src/ldblib.c
+$(TARGETPFX)ldebug.o : $(LUATOP)/src/ldebug.c
+$(TARGETPFX)ldo.o : $(LUATOP)/src/ldo.c
+$(TARGETPFX)ldump.o : $(LUATOP)/src/ldump.c
+$(TARGETPFX)lfunc.o : $(LUATOP)/src/lfunc.c
+$(TARGETPFX)lgc.o : $(LUATOP)/src/lgc.c
+$(TARGETPFX)linit.o : $(LUATOP)/src/linit.c
+$(TARGETPFX)liolib.o : $(LUATOP)/src/liolib.c
+$(TARGETPFX)llex.o : $(LUATOP)/src/llex.c
+$(TARGETPFX)lmathlib.o : $(LUATOP)/src/lmathlib.c
+$(TARGETPFX)lmem.o : $(LUATOP)/src/lmem.c
+$(TARGETPFX)loadlib.o : $(LUATOP)/src/loadlib.c
+$(TARGETPFX)lobject.o : $(LUATOP)/src/lobject.c
+$(TARGETPFX)lopcodes.o : $(LUATOP)/src/lopcodes.c
+$(TARGETPFX)loslib.o : $(LUATOP)/src/loslib.c
+$(TARGETPFX)lparser.o : $(LUATOP)/src/lparser.c
+$(TARGETPFX)lstate.o : $(LUATOP)/src/lstate.c
+$(TARGETPFX)lstring.o : $(LUATOP)/src/lstring.c
+$(TARGETPFX)lstrlib.o : $(LUATOP)/src/lstrlib.c
+$(TARGETPFX)ltable.o : $(LUATOP)/src/ltable.c
+$(TARGETPFX)ltablib.o : $(LUATOP)/src/ltablib.c
+$(TARGETPFX)ltm.o : $(LUATOP)/src/ltm.c
+$(TARGETPFX)lundump.o : $(LUATOP)/src/lundump.c
+$(TARGETPFX)lutf8lib.o : $(LUATOP)/src/lutf8lib.c
+$(TARGETPFX)lvm.o : $(LUATOP)/src/lvm.c
+$(TARGETPFX)lzio.o : $(LUATOP)/src/lzio.c
+endif  # BUILD_TARGET_LUA
+
+ifdef BUILD_PDCURSES
+ifdef WANT_WIN_CURSES
+$(TARGETPFX)pdclib.a : $(PDCLIBOBJS) $(PDCOBJS)
+       if [ -f $@ ]; then rm $@; fi;
+       $(TARGET_AR) rcs $@ $(PDCLIBOBJS) $(PDCOBJS)
+endif
+# PDCurses src
+$(TARGETPFX)addch.o : $(PDCTOP)/pdcurses/addch.c
+$(TARGETPFX)addchstr.o : $(PDCTOP)/pdcurses/addchstr.c
+$(TARGETPFX)addstr.o : $(PDCTOP)/pdcurses/addstr.c
+$(TARGETPFX)attr.o : $(PDCTOP)/pdcurses/attr.c
+$(TARGETPFX)beep.o : $(PDCTOP)/pdcurses/beep.c
+$(TARGETPFX)bkgd.o : $(PDCTOP)/pdcurses/bkgd.c
+$(TARGETPFX)border.o : $(PDCTOP)/pdcurses/border.c
+$(TARGETPFX)clear.o : $(PDCTOP)/pdcurses/clear.c
+$(TARGETPFX)color.o : $(PDCTOP)/pdcurses/color.c
+$(TARGETPFX)delch.o : $(PDCTOP)/pdcurses/delch.c
+$(TARGETPFX)deleteln.o : $(PDCTOP)/pdcurses/deleteln.c
+$(TARGETPFX)getch.o : $(PDCTOP)/pdcurses/getch.c
+$(TARGETPFX)getstr.o : $(PDCTOP)/pdcurses/getstr.c
+$(TARGETPFX)getyx.o : $(PDCTOP)/pdcurses/getyx.c
+$(TARGETPFX)inch.o : $(PDCTOP)/pdcurses/inch.c
+$(TARGETPFX)inchstr.o : $(PDCTOP)/pdcurses/inchstr.c
+$(TARGETPFX)initscr.o : $(PDCTOP)/pdcurses/initscr.c
+$(TARGETPFX)inopts.o : $(PDCTOP)/pdcurses/inopts.c
+$(TARGETPFX)insch.o : $(PDCTOP)/pdcurses/insch.c
+$(TARGETPFX)insstr.o : $(PDCTOP)/pdcurses/insstr.c
+$(TARGETPFX)instr.o : $(PDCTOP)/pdcurses/instr.c
+$(TARGETPFX)kernel.o : $(PDCTOP)/pdcurses/kernel.c
+$(TARGETPFX)keyname.o : $(PDCTOP)/pdcurses/keyname.c
+$(TARGETPFX)mouse.o : $(PDCTOP)/pdcurses/mouse.c
+$(TARGETPFX)move.o : $(PDCTOP)/pdcurses/move.c
+$(TARGETPFX)outopts.o : $(PDCTOP)/pdcurses/outopts.c
+$(TARGETPFX)overlay.o : $(PDCTOP)/pdcurses/overlay.c
+$(TARGETPFX)pad.o : $(PDCTOP)/pdcurses/pad.c
+$(TARGETPFX)panel.o : $(PDCTOP)/pdcurses/panel.c
+$(TARGETPFX)printw.o : $(PDCTOP)/pdcurses/printw.c
+$(TARGETPFX)refresh.o : $(PDCTOP)/pdcurses/refresh.c
+$(TARGETPFX)scanw.o : $(PDCTOP)/pdcurses/scanw.c
+$(TARGETPFX)scr_dump.o : $(PDCTOP)/pdcurses/scr_dump.c
+$(TARGETPFX)scroll.o : $(PDCTOP)/pdcurses/scroll.c
+$(TARGETPFX)slk.o : $(PDCTOP)/pdcurses/slk.c
+$(TARGETPFX)termattr.o : $(PDCTOP)/pdcurses/termattr.c
+$(TARGETPFX)touch.o : $(PDCTOP)/pdcurses/touch.c
+$(TARGETPFX)util.o : $(PDCTOP)/pdcurses/util.c
+$(TARGETPFX)window.o : $(PDCTOP)/pdcurses/window.c
+$(TARGETPFX)debug.o : $(PDCTOP)/pdcurses/debug.c
+$(TARGETPFX)pdcclip.o : $(PDCTOP)/dos/pdcclip.c
+$(TARGETPFX)pdcdisp.o : $(PDCTOP)/dos/pdcdisp.c
+$(TARGETPFX)pdcgetsc.o : $(PDCTOP)/dos/pdcgetsc.c
+$(TARGETPFX)pdckbd.o : $(PDCTOP)/dos/pdckbd.c
+$(TARGETPFX)pdcscrn.o : $(PDCTOP)/dos/pdcscrn.c
+$(TARGETPFX)pdcsetsc.o : $(PDCTOP)/dos/pdcsetsc.c
+$(TARGETPFX)pdcutil.o : $(PDCTOP)/dos/pdcutil.c
+endif  # BUILD_PDCURSES
+#
+# End of cross-compiling -POST section for Amiga
+#===============-=================================================
+
+
diff --git a/outdated/sys/unix/hints/include/cross-amiga-pre b/outdated/sys/unix/hints/include/cross-amiga-pre
new file mode 100644 (file)
index 0000000..95e1af1
--- /dev/null
@@ -0,0 +1,224 @@
+#===============-=================================================
+# NetHack 3.7  include/cross-amiga-pre
+#
+# Cross-compiling -PRE section for amiga
+#
+
+CROSS=1
+CROSS_TO_AMIGA=1
+BUILD_TARGET_LUA=1
+BUILD_PDCURSES=1
+CROSS_SHARED=1
+override TARGET = amiga
+override TARGETDIR=../targets/$(TARGET)
+override TARGETPFX = $(TARGETDIR)/
+override TARGET_LIBS=
+
+ifdef CROSS
+override PREGAME=
+override BUILDMORE=
+override CLEANMORE=
+override PACKAGE=
+endif
+
+ifdef BUILD_TARGET_LUA
+#===============-=================================================
+# LUA library
+# Source from http://www.lua.org/ftp/lua-5.4.4.tar.gz
+#=================================================================
+LUA_VERSION ?=5.4.4
+LUATOP ?= ../lib/lua-$(LUA_VERSION)
+LUASRCDIR ?= $(LUATOP)/src
+LUAOBJFILES1 =  $(TARGETPFX)lapi.o $(TARGETPFX)lauxlib.o \
+               $(TARGETPFX)lbaselib.o $(TARGETPFX)lcode.o \
+               $(TARGETPFX)lcorolib.o $(TARGETPFX)lctype.o \
+               $(TARGETPFX)ldblib.o
+ifeq "$(LUA_VERSION)" "5.3.5"
+LUAOBJFILES1 += $(TARGETPFX)lbitlib.o
+endif
+LUAOBJFILES2 =  $(TARGETPFX)ldebug.o $(TARGETPFX)ldo.o $(TARGETPFX)ldump.o \
+               $(TARGETPFX)lfunc.o $(TARGETPFX)lgc.o $(TARGETPFX)linit.o \
+               $(TARGETPFX)liolib.o $(TARGETPFX)llex.o
+LUAOBJFILES3 =  $(TARGETPFX)lmathlib.o $(TARGETPFX)lmem.o \
+               $(TARGETPFX)loadlib.o $(TARGETPFX)lobject.o \
+               $(TARGETPFX)lopcodes.o $(TARGETPFX)loslib.o \
+               $(TARGETPFX)lparser.o $(TARGETPFX)lstate.o
+LUAOBJFILES4 =  $(TARGETPFX)lstring.o $(TARGETPFX)lstrlib.o \
+               $(TARGETPFX)ltable.o $(TARGETPFX)ltablib.o \
+               $(TARGETPFX)ltm.o $(TARGETPFX)lundump.o \
+               $(TARGETPFX)lutf8lib.o $(TARGETPFX)lvm.o $(TARGETPFX)lzio.o
+LUALIBOBJS = $(LUAOBJFILES1) $(LUAOBJFILES2) $(LUAOBJFILES3) $(LUAOBJFILES4)
+LUACROSSLIB = $(TARGETPFX)lua$(subst .,,$(LUA_VERSION)).a
+LUAINCL  = -I$(LUASRCDIR)
+override BUILDMORE += $(LUACROSSLIB)
+override CLEANMORE += rm -f $(LUACROSSLIB) ;
+override TARGET_LIBS += $(LUACROSSLIB) -lm
+else
+LUAINCL=
+endif  # BUILD_TARGET_LUA
+
+ifdef BUILD_PDCURSES
+#===============-=================================================
+# PD Curses library
+#===============-=================================================
+ifdef WANT_WIN_CURSES
+PDCTOP = ../lib/pdcurses
+PDCURSESDEF= -I../lib/pdcurses -I../lib/pdcurses/dos \
+               -D"CURSES_GRAPHICS" -D"CURSES_BRIEF_INCLUDE"
+PDCLIBOBJ1= $(TARGETPFX)addch.o $(TARGETPFX)addchstr.o \
+               $(TARGETPFX)addstr.o $(TARGETPFX)attr.o \
+               $(TARGETPFX)beep.o $(TARGETPFX)bkgd.o \
+               $(TARGETPFX)border.o $(TARGETPFX)clear.o \
+               $(TARGETPFX)color.o $(TARGETPFX)delch.o \
+               $(TARGETPFX)deleteln.o $(TARGETPFX)getch.o \
+               $(TARGETPFX)getstr.o $(TARGETPFX)getyx.o \
+               $(TARGETPFX)inch.o
+PDCLIBOBJ2= $(TARGETPFX)inchstr.o $(TARGETPFX)initscr.o \
+               $(TARGETPFX)inopts.o $(TARGETPFX)insch.o \
+               $(TARGETPFX)insstr.o $(TARGETPFX)instr.o \
+               $(TARGETPFX)kernel.o $(TARGETPFX)keyname.o \
+               $(TARGETPFX)mouse.o $(TARGETPFX)move.o \
+               $(TARGETPFX)outopts.o $(TARGETPFX)overlay.o
+PDCLIBOBJ3= $(TARGETPFX)pad.o $(TARGETPFX)panel.o $(TARGETPFX)printw.o \
+               $(TARGETPFX)refresh.o $(TARGETPFX)scanw.o \
+               $(TARGETPFX)scr_dump.o $(TARGETPFX)scroll.o \
+               $(TARGETPFX)slk.o $(TARGETPFX)termattr.o
+PDCLIBOBJ4= $(TARGETPFX)touch.o $(TARGETPFX)util.o $(TARGETPFX)window.o \
+               $(TARGETPFX)debug.o
+PDCLIBOBJS = $(PDCLIBOBJ1) $(PDCLIBOBJ2) $(PDCLIBOBJ3) $(PDCLIBOBJ4)
+PDCLIB = $(TARGETPFX)pdclib.a
+PDCINCL = -I$(PDCTOP) -I$(PDCTOP)/pdcurses
+PDCOBJS = $(TARGETPFX)pdcclip.o $(TARGETPFX)pdcdisp.o \
+               $(TARGETPFX)pdcgetsc.o $(TARGETPFX)pdckbd.o \
+               $(TARGETPFX)pdcscrn.o $(TARGETPFX)pdcsetsc.o \
+               $(TARGETPFX)pdcutil.o
+override TARGET_LIBS += $(PDCLIB)
+ifdef CROSS_TO_MSDOS
+endif
+override BUILDMORE += $(PDCLIB)
+override CLEANMORE += rm -f $(PDCLIB) ;
+else   #WANT_WIN_CURSES
+PDCURSESDEF=
+PDCLIBOBJS=
+PDCOBJS=
+PDCLIB=
+PDCINCL=
+endif  # WANT_WIN_CURSES
+endif  # BUILD_PDCURSES
+
+ifdef CROSS_TO_AMIGA
+#===============-=================================================
+# AmigaOS m68k cross-compile recipe
+#===============-=================================================
+# Uses an Amiga M68K cross-compiler on linux or macOS.
+#
+# 1. You can obtain the cross-compiler for your system via:
+#     sys/amiga/fetch-cross.sh
+# 2. Then
+#     make CROSS_TO_AMIGAOS=1 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 all
+#
+# Amiga m68k from https://github.com/bebbo/amiga-gcc
+#=================================================================
+
+CFLAGS += -DCROSSCOMPILE
+
+#
+# Override the build tools and some obj files to
+# reflect the amiga-gccs cross-compiler.
+#
+TOOLTOP = /opt/amiga/bin
+#TOOLARCH = -m68020 -mcrt=clib2
+#TOOLARCH = -m68020   #newlib
+TOOLARCH = -m68020 -noixemul
+override REGEXOBJ = $(TARGETPFX)cppregex.o
+override TARGET_CC = $(TOOLTOP)/m68k-amigaos-gcc
+override TARGET_CXX = $(TOOLTOP)/m68k-amigaos-c++
+override TARGET_AR = $(TOOLTOP)/m68k-amigaos-ar
+override TARGET_STUBEDIT=
+#override TARGET_CFLAGS = -c -O $(TOOLARCH) -I../include -I../outdated/include
+override TARGET_CFLAGS = -c -O $(TOOLARCH) \
+       -I../include -I../outdated/include \
+       -I../outdated/sys/amiga -I../win/share \
+       $(LUAINCL) -DAMIGA -DUSE_TILES $(PDCURSESDEF) \
+       -DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_AMIGA \
+       -DAMIGA_VERSION_STRING=\""VER: NetHack 3.7.0\""
+#      -DMICRO -DPATHLEN=31 -DFILENAME=80
+override TARGET_CXXFLAGS = $(TARGET_CFLAGS)
+ifeq "$(REGEXOBJ)" "$(TARGETPFX)cppregex.o"
+override TARGET_LINK = $(TARGET_CXX)
+else
+override TARGET_LINK = $(TARGET_CC)
+endif
+override TARGET_LFLAGS= $(TOOLARCH)
+#override TARGET_LIBS +=
+VARDATND += nhtiles.bmp
+override SYSSRC = ../outdated/sys/amiga/amidos.c ../outdated/sys/amiga/amigst.c \
+               ../outdated/sys/amiga/amimenu.c ../outdated/sys/amiga/amirip.c \
+               ../outdated/sys/amiga/amistack.c ../outdated/sys/amiga/amitty.c \
+               ../outdated/sys/amiga/amiwind.c ../outdated/sys/amiga/clipwin.c \
+               ../outdated/sys/amiga/colorwin.c \
+               ../outdated/sys/amiga/winami.c ../outdated/sys/amiga/winchar.c \
+               ../outdated/sys/amiga/winfuncs.c ../outdated/sys/amiga/winkey.c \
+               ../outdated/sys/amiga/winamenu.c ../outdated/sys/amiga/winreq.c \
+               ../outdated/sys/amiga/winstr.c ../sys/share/pcmain.c \
+               ../win/share/bmptiles.c ../win/share/giftiles.c \
+               ../win/share/tileset.c
+#              ../outdated/sys/amiga/xpm2iff.c
+#              ../outdated/sys/amiga/txt2iff.c
+override SYSOBJ = $(TARGETPFX)amidos.o $(TARGETPFX)amigst.o \
+               $(TARGETPFX)amirip.o $(TARGETPFX)amistack.o \
+               $(TARGETPFX)amitty.o $(TARGETPFX)amiwind.o \
+               $(TARGETPFX)winami.o $(TARGETPFX)winchar.o \
+               $(TARGETPFX)winfuncs.o $(TARGETPFX)winkey.o \
+               $(TARGETPFX)winamenu.o $(TARGETPFX)winreq.o \
+               $(TARGETPFX)winstr.o $(TARGETPFX)pcmain.o \
+               $(TARGETPFX)bmptiles.o $(TARGETPFX)giftiles.o \
+               $(TARGETPFX)tileset.o
+#              $(TARGETPFX)xpm2iff.o
+#              ../util/txt2iff.o
+override WINLIB=
+override LUALIB=
+override TOPLUALIB=
+override GAMEBIN = $(TARGETPFX)nethack
+override PACKAGE = amigapkg
+override PREGAME += mkdir -p $(TARGETDIR) ;
+override CLEANMORE += rm -r $(TARGETDIR) ;
+#              ../util/txt2iff
+#
+ifdef WANT_WIN_CURSES
+# rules for pdcurses sdl1-specific files
+$(TARGETPFX)%.o : $(PDCTOP)/sdl1/%.c
+       $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@  $<
+endif  # WANT_WIN_CURSES
+# Rule for files in sys/amiga
+$(TARGETPFX)%.o : ../outdated/sys/amiga/%.c
+       $(TARGET_CC) $(TARGET_CFLAGS) -o$@ $<
+endif  # CROSS_TO_AMIGA
+#=================================================================
+
+ifdef WANT_WIN_CURSES
+ifdef BUILD_PDCURSES
+# Rules for PDCurses files
+$(TARGETPFX)%.o : $(PDCTOP)/pdcurses/%.c
+       $(TARGET_CC) $(PDCINCL) $(PDC_TARGET_CFLAGS) -c -o$@  $<
+endif  # BUILD_PDCURSES
+endif  # WANT_WIN_CURSES
+
+ifdef CROSS_SHARED
+# Rules for win/share files
+$(TARGETPFX)%.o : ../win/share/%.c
+       $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
+# Rules for util files heading for target
+$(TARGETPFX)%.o : ../util/%.c
+       $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
+endif  # CROSS_SHARED
+
+ifdef BUILD_TARGET_LUA
+# Rule for LUA files
+$(TARGETPFX)%.o : $(LUATOP)/src/%.c
+       $(TARGET_CC) $(LUA_TARGET_CFLAGS) -c $(LUA_FLAGS) -o$@ $<
+endif  # BUILD_TARGET_LUA
+#
+# End of cross-compiling -PRE section for Amiga
+#===============-=================================================
+