#===============-================================================= # NetHack 3.7 include/cross-pre $NHDT-Date: 1597332785 2020/08/13 15:33:05 $ $NHDT-Branch: NetHack-3.7 $ # # Cross-compiling -PRE section # ifdef CROSS_TO_MSDOS BUILD_LUA=1 BUILD_PDCURSES=1 override TARGET = msdos override TARGETDIR = ../targets/$(TARGET) override TARGET_LIBS= endif ifdef CROSS_TO_AMIGA BUILD_LUA=1 BUILD_PDCURSES=1 override TARGET = amiga override TARGETDIR = ../targets/$(TARGET) override TARGET_LIBS= endif ifdef BUILD_LUA #===============-================================================= # LUA library # Source from http://www.lua.org/ftp/lua-5.4.0.tar.gz #================================================================= LUA_VERSION ?=5.4.0 LUATOP ?= ../lib/lua-$(LUA_VERSION) LUASRCDIR ?= $(LUATOP)/src LUAOBJFILES1 = $(TARGETDIR)/lapi.o $(TARGETDIR)/lauxlib.o \ $(TARGETDIR)/lbaselib.o $(TARGETDIR)/lcode.o \ $(TARGETDIR)/lcorolib.o $(TARGETDIR)/lctype.o \ $(TARGETDIR)/ldblib.o ifeq "$(LUA_VERSION)" "5.3.5" LUAOBJFILES1 += $(TARGETDIR)/lbitlib.o endif LUAOBJFILES2 = $(TARGETDIR)/ldebug.o $(TARGETDIR)/ldo.o $(TARGETDIR)/ldump.o \ $(TARGETDIR)/lfunc.o $(TARGETDIR)/lgc.o $(TARGETDIR)/linit.o \ $(TARGETDIR)/liolib.o $(TARGETDIR)/llex.o LUAOBJFILES3 = $(TARGETDIR)/lmathlib.o $(TARGETDIR)/lmem.o \ $(TARGETDIR)/loadlib.o $(TARGETDIR)/lobject.o \ $(TARGETDIR)/lopcodes.o $(TARGETDIR)/loslib.o \ $(TARGETDIR)/lparser.o $(TARGETDIR)/lstate.o LUAOBJFILES4 = $(TARGETDIR)/lstring.o $(TARGETDIR)/lstrlib.o \ $(TARGETDIR)/ltable.o $(TARGETDIR)/ltablib.o \ $(TARGETDIR)/ltm.o $(TARGETDIR)/lundump.o \ $(TARGETDIR)/lutf8lib.o $(TARGETDIR)/lvm.o $(TARGETDIR)/lzio.o LUALIBOBJS = $(LUAOBJFILES1) $(LUAOBJFILES2) $(LUAOBJFILES3) $(LUAOBJFILES4) LUACROSSLIB = $(TARGETDIR)/$(O)lua$(subst .,,$(LUA_VERSION)).a LUAINCL = -I$(LUASRCDIR) BUILDMORE += $(LUACROSSLIB) override TARGET_LIBS += $(LUACROSSLIB) -lm else LUAINCL= endif # BUILD_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= $(TARGETDIR)/addch.o $(TARGETDIR)/addchstr.o \ $(TARGETDIR)/addstr.o $(TARGETDIR)/attr.o \ $(TARGETDIR)/beep.o $(TARGETDIR)/bkgd.o \ $(TARGETDIR)/border.o $(TARGETDIR)/clear.o \ $(TARGETDIR)/color.o $(TARGETDIR)/delch.o \ $(TARGETDIR)/deleteln.o $(TARGETDIR)/getch.o \ $(TARGETDIR)/getstr.o $(TARGETDIR)/getyx.o \ $(TARGETDIR)/inch.o PDCLIBOBJ2= $(TARGETDIR)/inchstr.o $(TARGETDIR)/initscr.o \ $(TARGETDIR)/inopts.o $(TARGETDIR)/insch.o \ $(TARGETDIR)/insstr.o $(TARGETDIR)/instr.o \ $(TARGETDIR)/kernel.o $(TARGETDIR)/keyname.o \ $(TARGETDIR)/mouse.o $(TARGETDIR)/move.o \ $(TARGETDIR)/outopts.o $(TARGETDIR)/overlay.o PDCLIBOBJ3= $(TARGETDIR)/pad.o $(TARGETDIR)/panel.o $(TARGETDIR)/printw.o \ $(TARGETDIR)/refresh.o $(TARGETDIR)/scanw.o \ $(TARGETDIR)/scr_dump.o $(TARGETDIR)/scroll.o \ $(TARGETDIR)/slk.o $(TARGETDIR)/termattr.o PDCLIBOBJ4= $(TARGETDIR)/touch.o $(TARGETDIR)/util.o $(TARGETDIR)/window.o \ $(TARGETDIR)/debug.o PDCLIBOBJS = $(PDCLIBOBJ1) $(PDCLIBOBJ2) $(PDCLIBOBJ3) $(PDCLIBOBJ4) PDCLIB = $(TARGETDIR)/pdclib.a PDCINCL = -I$(PDCTOP) -I$(PDCTOP)/pdcurses PDCOBJS = $(TARGETDIR)/pdcclip.o $(TARGETDIR)/pdcdisp.o \ $(TARGETDIR)/pdcgetsc.o $(TARGETDIR)/pdckbd.o \ $(TARGETDIR)/pdcscrn.o $(TARGETDIR)/pdcsetsc.o \ $(TARGETDIR)/pdcutil.o override TARGET_LIBS += $(PDCLIB) ifdef CROSS_TO_MSDOS PDCINCL += -I$(PDCTOP)/dos endif ifdef CROSS_TO_AMIGA PDCINCL += -I$(PDCTOP)/sdl1 -I/opt/amiga/m68k-amigaos/include/SDL override TARGET_LIBS += -lSDL endif BUILDMORE += $(PDCLIB) # Rules for PDCurses files $(TARGETDIR)/%.o : $(PDCTOP)/pdcurses/%.c $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@ $< else #WANT_WIN_CURSES PDCURSESDEF= PDCLIBOBJS= PDCOBJS= PDCLIB= PDCINCL= endif # WANT_WIN_CURSES endif # BUILD_PDCURSES ifdef CROSS_TO_MSDOS #===============-================================================= # MSDOS cross-compile recipe #===============-================================================= # Uses an MSDOS djgpp cross-compiler on linux or macos. # # 1. You can obtain the cross-compiler for your system via: # sys/msdos/fetch-cross.sh # 2. Then # make CROSS_TO_MSDOS=1 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 all # # Source from http://www.lua.org/ftp/lua-5.4.0.tar.gz #================================================================= CFLAGS += -DCROSSCOMPILE -DCROSSCOMPILE_HOST # # Override the build tools and some obj files to # reflect the msdos djgpp cross-compiler. # TOOLTOP1 = ../lib/djgpp/bin TOOLTOP2 = ../lib/djgpp/i586-pc-msdosdjgpp/bin override TARGET_CC = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc override TARGET_CXX = $(TOOLTOP2)/g++ override TARGET_AR = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc-ar override TARGET_STUBEDIT = ../lib/djgpp/i586-pc-msdosdjgpp/bin/stubedit override TARGET_CFLAGS = -c -O -I../include -I../sys/msdos -I../win/share \ $(LUAINCL) -DDLB $(PDCURSESDEF) \ -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET override TARGET_CXXFLAGS = $(TARGET_CFLAGS) override TARGET_LINK = $(TOOLTOP1)/i586-pc-msdosdjgpp-gcc override TARGET_LFLAGS= override TARGET_LIBS += -lpc override SYSSRC = ../sys/share/pcmain.c ../sys/msdos/msdos.c \ ../sys/share/pcsys.c ../sys/share/pctty.c \ ../sys/share/pcunix.c ../sys/msdos/video.c \ ../sys/msdos/vidtxt.c ../sys/msdos/pckeys.c \ ../sys/msdos/vidvga.c ../sys/msdos/vidvesa.c \ ../win/share/bmptiles.c ../win/share/giftiles.c \ ../win/share/tileset.c override SYSOBJ= $(TARGETDIR)/pcmain.o $(TARGETDIR)/msdos.o \ $(TARGETDIR)/pcsys.o $(TARGETDIR)/pctty.o \ $(TARGETDIR)/pcunix.o $(TARGETDIR)/video.o \ $(TARGETDIR)/vidtxt.o $(TARGETDIR)/pckeys.o \ $(TARGETDIR)/vidvga.o $(TARGETDIR)/vidvesa.o \ $(TARGETDIR)/bmptiles.o $(TARGETDIR)/giftiles.o \ $(TARGETDIR)/tileset.o $(TARGETDIR)/tile.o override WINLIB= override LUALIB= override GAMEBIN = $(TARGETDIR)/nethack.exe override PACKAGE= dospkg VARDATND += nhtiles.bmp PREGAME = mkdir -p $(TARGETDIR) CLEANMORE += rm -r $(TARGETDIR) BUILDMORE += $(TARGETDIR)/recover.exe # ifdef WANT_WIN_CURSES # rules for pdcurses dos-specific files $(TARGETDIR)/%.o : $(PDCTOP)/dos/%.c $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@ $< endif # WANT_WIN_CURSES # # Rule for files in sys/msdos $(TARGETDIR)/%.o : ../sys/msdos/%.c $(TARGET_CC) $(TARGET_CFLAGS) -o$@ $< endif # CROSS_TO_MSDOS #================================================================= 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 -DCROSSCOMPILE_HOST # # 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 = $(TARGETDIR)/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 -DAMIGA_CROSS $(PDCURSESDEF) \ -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET \ -DAMIGA_VERSION_STRING=\""VER: NetHack 3.7.0 \(12.13.2020)\"" override TARGET_CXXFLAGS = $(TARGET_CFLAGS) ifeq "$(REGEXOBJ)" "$(TARGETDIR)/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 = $(TARGETDIR)/amidos.o $(TARGETDIR)/amigst.o \ $(TARGETDIR)/amirip.o $(TARGETDIR)/amistack.o \ $(TARGETDIR)/amitty.o $(TARGETDIR)/amiwind.o \ $(TARGETDIR)/winami.o $(TARGETDIR)/winchar.o \ $(TARGETDIR)/winfuncs.o $(TARGETDIR)/winkey.o \ $(TARGETDIR)/winamenu.o $(TARGETDIR)/winreq.o \ $(TARGETDIR)/winstr.o $(TARGETDIR)/pcmain.o \ $(TARGETDIR)/bmptiles.o $(TARGETDIR)/giftiles.o \ $(TARGETDIR)/tileset.o # $(TARGETDIR)/xpm2iff.o # ../util/txt2iff.o override WINLIB= override LUALIB= override GAMEBIN = $(TARGETDIR)/nethack.exe override PACKAGE= amigapkg PREGAME = mkdir -p ../targets/amiga CLEANMORE += rm -r ../targets/amiga BUILDMORE += $(TARGETDIR)/recover.exe # ../util/txt2iff # ifdef WANT_WIN_CURSES # rules for pdcurses sdl1-specific files $(TARGETDIR)/%.o : $(PDCTOP)/sdl1/%.c $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@ $< endif # WANT_WIN_CURSES # Rule for files in sys/amiga $(TARGETDIR)/%.o : ../outdated/sys/amiga/%.c $(TARGET_CC) $(TARGET_CFLAGS) -o$@ $< endif # CROSS_TO_AMIGA #================================================================= ifdef WANT_WIN_CURSES # rules for pdcurses dos-specific files $(TARGETDIR)/%.o : $(PDCTOP)/sdl1/%.c $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@ $< endif # WANT_WIN_CURSES # Rule for LUA files $(TARGETDIR)/%.o : $(LUATOP)/src/%.c $(TARGET_CC) $(TARGET_CFLAGS) $(LUA_FLAGS) -o$@ $< ifdef WANT_WIN_CURSES # Rules for PDCurses files $(TARGETDIR)/%.o : $(PDCTOP)/pdcurses/%.c $(TARGET_CC) $(PDCINCL) $(TARGET_CFLAGS) -o$@ $< endif # WANT_WIN_CURSES # # End of cross-compiling -PRE section #===============-=================================================