Also includes support by paxed for polearm targeting using the frame color. Also renames USE_TILES to TILES_IN_GLYPHMAP which is a more accurate description. Not all window interfaces have full support for the color framing of the background square yet. MS-DOS needs further work (to bring it to both VESA and VGA, with and without tiles. Windows GUI is missing support. X11 and Qt have been started, but may require further refinement.
225 lines
7.8 KiB
Plaintext
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 -DTILES_IN_GLYPHMAP $(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
|
|
#===============-=================================================
|
|
|