Files
nethack/outdated/sys/unix/hints/include/cross-amiga-pre
nhmall bb01c6378a last known Amiga cross-compile -> outdated
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
2022-02-01 16:43:39 -05:00

225 lines
7.8 KiB
Plaintext

#===============-=================================================
# 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
#===============-=================================================