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.8.tar.gz
|
|
#=================================================================
|
|
LUA_VERSION ?=5.4.8
|
|
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
|
|
#===============-=================================================
|
|
|