@@ -103,6 +103,32 @@ $(TARGETPFX)winshim.o : ../win/shim/winshim.c $(HACK_H)
|
|||||||
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
|
$(TARGETPFX)libnhmain.o : ../sys/libnh/libnhmain.c $(HACK_H)
|
||||||
endif # CROSS_TO_WASM
|
endif # CROSS_TO_WASM
|
||||||
#
|
#
|
||||||
|
ifdef CROSS_TO_MIPS
|
||||||
|
$(MIPS_TARGET): pregame $(TARGETPFX)date.o $(HOSTOBJ) $(HOBJ) $(LUACROSSLIB) $(MIPS_DATA_DIR)
|
||||||
|
-rm $@
|
||||||
|
$(TARGET_CC) $(TARGET_LFLAGS) $(TARGET_CFLAGS) -o $@ \
|
||||||
|
$(HOBJ) $(TARGETPFX)date.o $(TARGET_LIBS)
|
||||||
|
|
||||||
|
$(MIPS_DATA_DIR): $(MIPS_DATA_DIR)/nhdat
|
||||||
|
touch $(MIPS_DATA_DIR)/perm
|
||||||
|
touch $(MIPS_DATA_DIR)/record
|
||||||
|
touch $(MIPS_DATA_DIR)/logfile
|
||||||
|
touch $(MIPS_DATA_DIR)/xlogfile
|
||||||
|
touch $(MIPS_DATA_DIR)/livelog
|
||||||
|
cp ../sys/unix/sysconf $(MIPS_DATA_DIR)/sysconf
|
||||||
|
|
||||||
|
$(MIPS_DATA_DIR)/nhdat:
|
||||||
|
( cd ..; $(MAKE) INSTDIR='$(MIPS_DATA_DIR)' $(MIPSDEP) dofiles-dlb )
|
||||||
|
|
||||||
|
#
|
||||||
|
$(TARGETPFX)unixmain.o : ../sys/unix/unixmain.c $(HACK_H)
|
||||||
|
$(TARGETPFX)unixres.o : ../sys/unix/unixres.c $(HACK_H)
|
||||||
|
$(TARGETPFX)unixunix.o : ../sys/unix/unixunix.c $(HACK_H)
|
||||||
|
$(TARGETPFX)ioctl.o : ../sys/share/ioctl.c $(HACK_H)
|
||||||
|
$(TARGETPFX)unixtty.o : ../sys/share/unixtty.c $(HACK_H)
|
||||||
|
endif # CROSS_TO_MIPS
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
ifdef CROSS_SHARED
|
ifdef CROSS_SHARED
|
||||||
# shared file dependencies
|
# shared file dependencies
|
||||||
@@ -165,12 +191,31 @@ $(TARGETPFX)lvm.o : $(LUATOP)/src/lvm.c
|
|||||||
$(TARGETPFX)lzio.o : $(LUATOP)/src/lzio.c
|
$(TARGETPFX)lzio.o : $(LUATOP)/src/lzio.c
|
||||||
endif # BUILD_TARGET_LUA
|
endif # BUILD_TARGET_LUA
|
||||||
|
|
||||||
|
ifdef BUILD_TARGET_NCURSES
|
||||||
|
.PHONY: build-ncurses
|
||||||
|
ifdef MAKEFILE_SRC
|
||||||
|
../lib/ncurses.tar.gz:
|
||||||
|
@echo "You will need to successfully execute 'make CROSS_TO_MIPS=1 fetch-ncurses' first"
|
||||||
|
@false
|
||||||
|
$(TARGETPFX)ncurses/lib/libncurses.a: ../lib/ncurses.tar.gz
|
||||||
|
(cd $(TARGETDIR) ; mkdir -p ncurses ; cd ncurses ; tar -xf ../../../lib/ncurses.tar.gz --strip-components=1 ; \
|
||||||
|
./configure --build i686-pc-linux-gnu --host mipsel-linux-gnu ; \
|
||||||
|
make ; \
|
||||||
|
cd ../../../src)
|
||||||
|
endif #MAKEFILE_SRC
|
||||||
|
ifdef MAKEFILE_TOP
|
||||||
|
.PHONY: fetch-ncurses
|
||||||
|
fetch-ncurses:
|
||||||
|
(cd lib ; curl https://invisible-island.net/datafiles/release/ncurses.tar.gz --output ncurses.tar.gz ; cd ..)
|
||||||
|
endif
|
||||||
|
endif #BUILD_TARGET_NCURSES
|
||||||
|
|
||||||
ifdef BUILD_PDCURSES
|
ifdef BUILD_PDCURSES
|
||||||
ifdef WANT_WIN_CURSES
|
ifdef WANT_WIN_CURSES
|
||||||
$(TARGETPFX)pdclib.a : $(PDCLIBOBJS) $(PDCOBJS)
|
$(TARGETPFX)pdclib.a : $(PDCLIBOBJS) $(PDCOBJS)
|
||||||
if [ -f $@ ]; then rm $@; fi;
|
if [ -f $@ ]; then rm $@; fi;
|
||||||
$(TARGET_AR) rcs $@ $(PDCLIBOBJS) $(PDCOBJS)
|
$(TARGET_AR) rcs $@ $(PDCLIBOBJS) $(PDCOBJS)
|
||||||
endif
|
endif #WANT_WIN_CURSES
|
||||||
# PDCurses src
|
# PDCurses src
|
||||||
$(TARGETPFX)addch.o : $(PDCTOP)/pdcurses/addch.c
|
$(TARGETPFX)addch.o : $(PDCTOP)/pdcurses/addch.c
|
||||||
$(TARGETPFX)addchstr.o : $(PDCTOP)/pdcurses/addchstr.c
|
$(TARGETPFX)addchstr.o : $(PDCTOP)/pdcurses/addchstr.c
|
||||||
@@ -223,5 +268,3 @@ endif # BUILD_PDCURSES
|
|||||||
#
|
#
|
||||||
# End of cross-compiling -POST section
|
# End of cross-compiling -POST section
|
||||||
#===============-=================================================
|
#===============-=================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ override TARGETPFX = $(TARGETDIR)/
|
|||||||
override TARGET_LIBS=
|
override TARGET_LIBS=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CROSS_TO_MIPS
|
||||||
|
CROSS=1
|
||||||
|
BUILD_TARGET_LUA=1
|
||||||
|
BUILD_TARGET_NCURSES=1
|
||||||
|
HACKDIR=/
|
||||||
|
PREFIX=
|
||||||
|
override TARGET = mips
|
||||||
|
override TARGETDIR=../targets/$(TARGET)
|
||||||
|
override TARGETPFX = $(TARGETDIR)/
|
||||||
|
override TARGET_LIBS=
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CROSS
|
ifdef CROSS
|
||||||
override PREGAME=
|
override PREGAME=
|
||||||
override BUILDMORE=
|
override BUILDMORE=
|
||||||
@@ -126,10 +138,22 @@ PDCINCL=
|
|||||||
endif # WANT_WIN_CURSES
|
endif # WANT_WIN_CURSES
|
||||||
endif # BUILD_PDCURSES
|
endif # BUILD_PDCURSES
|
||||||
|
|
||||||
|
ifdef BUILD_TARGET_NCURSES
|
||||||
|
#=================================================================
|
||||||
|
# ncurses
|
||||||
|
# Source from https://invisible-island.net/datafiles/release/ncurses.tar.gz
|
||||||
|
#
|
||||||
|
#=================================================================
|
||||||
|
NCURSESLIBDIR ?= $(TARGETPFX)ncurses/lib
|
||||||
|
NCURSESLIB ?= $(NCURSESLIBDIR)/libncurses.a
|
||||||
|
#override TARGET_LIBS += $(NCURSESLIB)
|
||||||
|
override BUILDMORE += $(NCURSESLIB)
|
||||||
|
endif # BUILD_TARGET_NCURSES
|
||||||
|
|
||||||
ifdef CROSS_TO_MSDOS
|
ifdef CROSS_TO_MSDOS
|
||||||
#===============-=================================================
|
#=================================================================
|
||||||
# MSDOS cross-compile recipe
|
# MSDOS cross-compile recipe
|
||||||
#===============-=================================================
|
#=================================================================
|
||||||
# Uses an MSDOS djgpp cross-compiler on linux or macos.
|
# Uses an MSDOS djgpp cross-compiler on linux or macos.
|
||||||
#
|
#
|
||||||
# 1. You can obtain the cross-compiler for your system via:
|
# 1. You can obtain the cross-compiler for your system via:
|
||||||
@@ -344,6 +368,74 @@ $(TARGETPFX)%.o : ../sys/libnh/%.c
|
|||||||
$(TARGETPFX)%.o : ../win/shim/%.c
|
$(TARGETPFX)%.o : ../win/shim/%.c
|
||||||
$(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
|
$(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
|
||||||
endif # CROSS_TO_WASM
|
endif # CROSS_TO_WASM
|
||||||
|
|
||||||
|
|
||||||
|
ifdef CROSS_TO_MIPS
|
||||||
|
#================================================================
|
||||||
|
# MIPS cross-compile recipe
|
||||||
|
#================================================================
|
||||||
|
# Uses an MIPS linux cross-compiler on linux or macos.
|
||||||
|
#
|
||||||
|
# 1. You can obtain the cross-compiler for ubuntu via:
|
||||||
|
# sudo apt -y install gcc-mipsel-linux-gnu g++-mipsel-linux-gnu
|
||||||
|
# For macOS, perhaps check for a mips cross-compiler on
|
||||||
|
# home-brew or macports.
|
||||||
|
#
|
||||||
|
# 2. Then
|
||||||
|
# make CROSS_TO_MIPS=1 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 all
|
||||||
|
#
|
||||||
|
#=================================================================
|
||||||
|
|
||||||
|
CFLAGS += -DCROSSCOMPILE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Override the build tools and some obj files to
|
||||||
|
# reflect the mips cross-compiler.
|
||||||
|
#
|
||||||
|
override TARGET_CC = mipsel-linux-gnu-gcc
|
||||||
|
override TARGET_CXX = CXX=mipsel-linux-gnu-g++
|
||||||
|
override TARGET_AR = mipsel-linux-gnu-ar
|
||||||
|
#override TARGET_LINK = mipsel-linux-gnu-ld
|
||||||
|
MIPS_TARGET_CFLAGS = -c -O -I../include -I../sys/unix -I../win/share \
|
||||||
|
$(LUAINCL) -DDLB \
|
||||||
|
-DCROSSCOMPILE -DCROSSCOMPILE_TARGET \
|
||||||
|
-DCROSS_TO_MIPS \
|
||||||
|
-Wall -Wextra -Wno-missing-field-initializers -Wreturn-type -Wunused \
|
||||||
|
-Wformat -Wswitch -Wshadow -Wwrite-strings \
|
||||||
|
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int \
|
||||||
|
-Wmissing-parameter-type -Wold-style-definition -Wstrict-prototypes
|
||||||
|
MIPS_TARGET_CXXFLAGS = -c -O -I../include -I../sys/unix -I../win/share \
|
||||||
|
$(LUAINCL) -DDLB \
|
||||||
|
-DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_TARGET -DCROSS_TO_MIPS \
|
||||||
|
-Wall -Wextra -Wno-missing-field-initializers -Wreturn-type -Wunused \
|
||||||
|
-Wformat -Wswitch -Wshadow -Wwrite-strings -Wno-maybe-uninitialized
|
||||||
|
override TARGET_CFLAGS = $(MIPS_TARGET_CFLAGS) -Wmissing-declarations \
|
||||||
|
-Wmissing-prototypes -pedantic -Wmissing-declarations \
|
||||||
|
-Wformat-nonliteral
|
||||||
|
override TARGET_CXXFLAGS = $(MIPS_TARGET_CXXFLAGS)
|
||||||
|
ifdef CPLUSPLUS_NEEDED
|
||||||
|
override TARGET_LINK = mipsel-linux-gnu-gcc
|
||||||
|
else
|
||||||
|
override TARGET_LINK = mipsel-linux-gnu-g++
|
||||||
|
endif
|
||||||
|
override TARGET_LFLAGS=
|
||||||
|
override SYSOBJ = $(TARGETPFX)ioctl.o $(TARGETPFX)unixmain.o $(TARGETPFX)unixtty.o \
|
||||||
|
$(TARGETPFX)unixunix.o $(TARGETPFX)unixres.o
|
||||||
|
override WINLIB = $(NCURSESLIB)
|
||||||
|
override LUALIB=
|
||||||
|
override LUALIBS=
|
||||||
|
override TOPLUALIB=
|
||||||
|
#override GAMEBIN=
|
||||||
|
#override PACKAGE=
|
||||||
|
override PREGAME += mkdir -p $(TARGETDIR) ;
|
||||||
|
override CLEANMORE += rm -f -r $(TARGETDIR) ;
|
||||||
|
# Rule for file in sys/unix
|
||||||
|
#$(TARGETPFX)%.o : ../sys/unix/%.c
|
||||||
|
# $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
|
||||||
|
# Rule for file in sys/share
|
||||||
|
#$(TARGETPFX)%.o : ../sys/share/%.c
|
||||||
|
# $(TARGET_CC) $(TARGET_CFLAGS) -c -o$@ $<
|
||||||
|
endif # CROSS_TO_MIPS
|
||||||
#=================================================================
|
#=================================================================
|
||||||
|
|
||||||
ifdef WANT_WIN_CURSES
|
ifdef WANT_WIN_CURSES
|
||||||
|
|||||||
Reference in New Issue
Block a user