cross-compile update

Update the cross-compiling doc at the top.

Remove sys/msdos/Makefile1.cross, sys/msdos/Makefile2.cross, and
sys/msdos/msdos-cross-compile.sh as they are no longer required.

Remove occurrences of CROSSCOMPILE_HOST as the host-side of a
cross-compile can be determined from:
    defined(CROSSCOMPILE) && !defined(CROSSCOMPILE_TARGET)
without the additional macro.
This commit is contained in:
nhmall
2020-09-29 15:01:37 -04:00
parent 476990b303
commit 945d10cfbc
8 changed files with 206 additions and 1972 deletions

View File

@@ -1,641 +0,0 @@
# NetHack 3.7 Makefile1.cross
# Cross-compile msdos version of NetHack using a
# linux-hosted djgpp cross-compiler.
#
# Makefile1.cross (this file) is for the host-side obj files and
# utilities that will run on the host platform only.
#
# Makefile2.cross is for the target platform obj files
# and utilities.
#
# Makefile2 utilizes the djgpp cross-compiler from Andrew Wu:
# https://github.com/andrewwutw/build-djgpp
#
# Currently, in NetHack 3.7, it is now feasible to cross-compile
# the game in a 2-stage process. Makefile1.cross (this file) carries
# out the 1st stage.
#
# The GNU Make has a problem if you include a drive spec below.
GAMEDIR =../msdos-binary
#
#==============================================================================
# This marks the end of the BUILD DECISIONS section.
#==============================================================================
#
# Directories, gcc likes unix style directory specs
#
OBJ = o
HOBJ = host_o
DAT = ../dat
DOC = ../doc
INCL = ../include
LIB = ../lib
MSYS = ../sys/msdos
SRC = ../src
SSHR = ../sys/share
UTIL = ../util
WIN = ../win/tty
WCURSES = ../win/curses
WSHR = ../win/share
#
# Executables.
#
HOST_CC = gcc
HOST_LINK = gcc
MAKEBIN = make
#
# Special libraries and how to link them in.
#
LIBS = -lpc
LIBRARIES = $(LIBS)
#
# Yacc/Lex off
#
YACC_LEX = N
#
# Uncomment the line below if you want to store all the level files,
# help files, etc. in a single library file.
#
USE_DLB = Y
#===============================================
#======= End of Modification Section ===========
#===============================================
################################################
# #
# Nothing below here should have to be changed.#
# #
################################################
# Changing this conditional block is not recommended
ifeq "$(USE_DLB)" "Y"
DLBFLG = -DDLB
else
DLBFLG =
endif
TERMLIB =
#==========================================
#================ MACROS ==================
#==========================================
# This section creates shorthand macros for many objects
# referenced later on in the Makefile.
#
# Have windows path styles available for use in commands
#
W_OBJ =$(subst /,\, $(OBJ))
W_INCL =$(subst /,\, $(INCL))
W_DAT =$(subst /,\, $(DAT))
W_DOC =$(subst /,\, $(DOC))
W_UTIL =$(subst /,\, $(UTIL))
W_SRC =$(subst /,\, $(SRC))
W_SSYS =$(subst /,\, $(SSYS))
W_MSWSYS =$(subst /,\, $(MSWSYS))
W_TTY =$(subst /,\, $(TTY))
W_MSWIN =$(subst /,\, $(MSWIN))
ifeq "$(ADD_CURSES)" "Y"
W_WCURSES =$(subst /,\, $(WCURSES))
endif
W_WSHR =$(subst /,\, $(WSHR))
W_GAMEDIR =$(subst /,\, $(GAMEDIR))
#
# Shorten up the location for some files
#
O = $(OBJ)/
HOST_O = $(HOBJ)/
U = $(UTIL)/
#==========================================
# Utility Objects.
#==========================================
MAKESRC = makedefs.c
MAKEDEFSOBJS = $(HOST_O)makedefs.o $(HOST_O)monst.o $(HOST_O)objects.o
LUA_QTEXT_FILE = "quest.lua"
#==========================================
# Tile related object files.
#==========================================
TILOBJ2 = $(HOST_O)tileset.o $(HOST_O)bmptiles.o $(HOST_O)giftiles.o
TEXTIO = $(HOST_O)tiletext.o $(HOST_O)tiletxt.o $(HOST_O)drawing.o $(HOST_O)monst.o \
$(HOST_O)objects.o
TEXTIO2 = $(HOST_O)tiletex2.o $(HOST_O)tiletxt2.o $(HOST_O)drawing.o $(HOST_O)monst.o \
$(HOST_O)objects.o
TILE_BMP = $(DAT)/NHTILES.BMP
TILEUTIL = $(TILE_BMP)
TILEFILES = $(WSHR)/monsters.txt $(WSHR)/objects.txt $(WSHR)/other.txt
TILEFILES2 = $(WSHR)/monthin.txt $(WSHR)/objthin.txt $(WSHR)/oththin.txt
GIFREADERS = $(HOST_O)gifread.o $(HOST_O)alloc.o $(HOST_O)panic.o
GIFREAD2 = $(HOST_O)gifread2.o $(HOST_O)alloc.o $(HOST_O)panic.o
PPMWRITERS = $(HOST_O)ppmwrite.o $(HOST_O)alloc.o $(HOST_O)panic.o
PPMWRIT2 = $(HOST_O)ppmwrit2.o $(HOST_O)alloc.o $(HOST_O)panic.o
#==========================================
# Object files.
#==========================================
DLBOBJ = $(HOST_O)dlb.o
ALLOBJ = $(MAKEDEFSOBJS) $(TILOBJ) $(TILOBJ2) $(TEXTIO) $(TEXTIO2)
#==========================================
# Header file macros
#==========================================
PATCHLEV_H = $(INCL)/patchlev.h
DGN_FILE_H = $(INCL)/align.h $(INCL)/dgn_file.h
DUNGEON_H = $(INCL)/align.h $(INCL)/dungeon.h
MONDATA_H = $(INCL)/align.h $(INCL)/mondata.h
MONST_H = $(INCL)/align.h $(INCL)/monst.h $(INCL)/mextra.h
PERMONST_H = $(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/align.h \
$(INCL)/permonst.h
REGION_H = $(INCL)/region.h
RM_H = $(INCL)/align.h $(INCL)/rm.h
SKILLS_H = $(INCL)/skills.h
SP_LEV_H = $(INCL)/align.h $(INCL)/sp_lev.h
YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)/prop.h \
$(INCL)/pm.h $(INCL)/youprop.h
YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)/align.h \
$(INCL)/attrib.h $(INCL)/you.h
DISPLAY_H = $(MONDATA_H) $(INCL)/vision.h $(INCL)/display.h
PCCONF_H = $(INCL)/micro.h $(INCL)/system.h $(INCL)/pcconf.h \
$(MSYS)/pcvideo.h
DECL_H = $(YOU_H) $(INCL)/spell.h $(INCL)/color.h \
$(INCL)/obj.h $(INCL)/onames.h $(INCL)/pm.h \
$(INCL)/decl.h
GLOBAL_H = $(PCCONF_H) $(INCL)/coord.h $(INCL)/global.h
CONFIG_H = $(INCL)/config.h $(INCL)/config1.h $(INCL)/tradstdc.h \
$(INCL)/global.h $(INCL)/coord.h $(INCL)/vmsconf.h \
$(INCL)/system.h $(INCL)/nhlua.h $(INCL)/unixconf.h \
$(INCL)/micro.h $(INCL)/pcconf.h $(INCL)/ntconf.h
HACK_H = $(INCL)/hack.h $(CONFIG_H) $(INCL)/lint.h $(INCL)/align.h \
$(INCL)/dungeon.h $(INCL)/monsym.h $(INCL)/mkroom.h \
$(INCL)/objclass.h $(INCL)/youprop.h $(INCL)/prop.h \
$(INCL)/permonst.h $(INCL)/monattk.h \
$(INCL)/monflag.h $(INCL)/mondata.h $(INCL)/pm.h \
$(INCL)/wintype.h $(INCL)/context.h $(INCL)/rm.h \
$(INCL)/botl.h $(INCL)/rect.h \
$(INCL)/region.h $(INCL)/decl.h $(INCL)/quest.h \
$(INCL)/spell.h $(INCL)/color.h $(INCL)/obj.h \
$(INCL)/you.h $(INCL)/attrib.h $(INCL)/monst.h \
$(INCL)/mextra.h $(INCL)/skills.h $(INCL)/onames.h \
$(INCL)/timeout.h $(INCL)/trap.h $(INCL)/flag.h \
$(INCL)/vision.h $(INCL)/display.h $(INCL)/engrave.h \
$(INCL)/winprocs.h $(INCL)/sys.h $(INCL)/wintty.h \
$(INCL)/trampoli.h
DLB_H = $(INCL)/dlb.h
ifeq ($(SUPPRESS_GRAPHICS),Y)
TILE_H =
else
TILE_H = $(WSHR)/tile.h $(INCL)/tileset.h
endif
ifeq ($(USE_DLB),Y)
DLB = dlb
DLBOBJS = $(HOST_O)dlb_main.o $(HOST_O)dlb.o $(HOST_O)alloc.o $(HOST_O)panic.o
else
DLB =
DLBOBJS =
endif
#==========================================
# More compiler setup macros
#==========================================
#
CURSESDEF=
CURSESLIB=
INCLDIR=-I../include -I../sys/msdos
# Debugging
#cflags = -pg -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE -CROSSCOMPILE_HOST
#LFLAGS = -pg
#
#cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE -DCROSSCOMPILE_HOST
#LFLAGS =
#
# Debugging
#cflags = -g -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_HOST
#LFLAGS = -g
#
# Normal
cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_HOST
LFLAGS =
#==========================================
#================ RULES ==================
#==========================================
.SUFFIXES: .o .til .uu .c .y .l
#==========================================
# Rules for host files in src
#==========================================
$(HOST_O)%.o : $(SRC)/%.c
$(HOST_CC) $(cflags) -o$@ $<
#==========================================
# Rules for host files in sys/msdos
#==========================================
$(HOST_O)%.o : $(MSYS)/%.c
$(HOST_CC) $(cflags) -I../sys/msdos -o$@ $<
#==========================================
# Rules for host files in util
#==========================================
$(HOST_O)%.o : $(SRC)/%.c
$(HOST_CC) $(cflags) -o$@ $<
$(HOST_O)%.o : $(UTIL)/%.c
$(HOST_CC) $(cflags) -o$@ $<
$(HOST_O)%.o : %.c
$(HOST_CC) $(cflags) -o$@ $<
#==========================================
# Rules for host files in win/share
#==========================================
$(HOST_O)%.o : $(WSHR)/%.c
$(HOST_CC) $(cflags) -I../win/share -o$@ $<
#==========================================
# Primary Targets.
#==========================================
# The default target.
all : prereq
prereq: $(HOST_O)prereq.tag
@echo Done.
default: prereq
util: $(HOST_O)utility.tag
$(HOST_O)utility.tag: $(INCL)/date.h $(INCL)/trap.h $(INCL)/onames.h \
$(INCL)/pm.h vis_tab.c $(TILEUTIL) $(SRC)/tile.c
echo host utilities made > $@
tileutil: $(U)gif2txt $(U)txt2ppm
@echo Optional tile development utilities are up to date.
$(HOST_O)prereq.tag: $(INCL)/nhlua.h hobj.tag $(U)makedefs \
$(HOST_O)utility.tag $(DAT)/nhdat
echo prereq done >$@
ifeq "$(LUA_VERSION)" "5.3.5"
LUAVER=5.3.5
else
LUAVER=5.4.0
endif
$(INCL)/nhlua.h:
cd $(INCL); \
echo '/* nhlua.h - generated by Makefile1.cross */' > $@; \
echo '#include "../lib/lua-$(LUAVER)/src/lua.h"' >> $@; \
sed -e '/(lua_error)/!d' -e '/(lua_error)/s/;/ NORETURN;/1' < $(LIB)/lua-$(LUAVER)/src/lua.h >> $@; \
echo '#include "../lib/lua-$(LUAVER)/src/lualib.h"' >> $@; \
echo '#include "../lib/lua-$(LUAVER)/src/lauxlib.h"' >> $@; \
echo '/*nhlua.h*/' >> $@; \
cd $(SRC)
#==========================================
# Other host targets.
#==========================================
#note that dir below assumes bin/dir from djgpp distribution
#
$(DAT)/nhdat: $(U)dlb_main $(DAT)/data $(DAT)/rumors \
$(DAT)/oracles \
$(DAT)/bogusmon $(DAT)/engrave $(DAT)/epitaph $(DAT)/tribute
cd $(DAT); \
pwd; \
cp $(MSYS)/msdoshlp.txt .; \
ls -1 data oracles options rumors help hh >dlb.lst; \
ls -1 cmdhelp history opthelp wizhelp license >>dlb.lst; \
ls -1 bogusmon engrave epitaph tribute msdoshlp.txt >>dlb.lst; \
ls -1 *.lua >>dlb.lst; \
$(U)dlb_main cvIf dlb.lst nhdat; \
cd $(SRC)
$(U)dlb_main: $(DLBOBJS)
$(HOST_LINK) $(LFLAGS) -o$@ $(DLBOBJS)
$(HOST_O)dlb_main.o: $(U)dlb_main.c $(INCL)/config.h $(DLB_H)
$(HOST_CC) $(cflags) -o$@ $(U)dlb_main.c
$(INCL)/date.h : $(U)makedefs
-$(U)makedefs -v
$(INCL)/onames.h: $(U)makedefs
-$(U)makedefs -o
$(INCL)/pm.h: $(U)makedefs
-$(U)makedefs -p
#monstr.c: $(U)makedefs
# -$(U)makedefs -m
$(INCL)/vis_tab.h: $(U)makedefs
-$(U)makedefs -z
vis_tab.c: $(U)makedefs
-$(U)makedefs -z
# make data.base an 8.3 filename to prevent an make warning
DATABASE = $(DAT)/data.bas
$(DAT)/data: $(HOST_O)utility.tag $(DATABASE)
$(U)makedefs -d
$(DAT)/rumors: $(HOST_O)utility.tag $(DAT)/rumors.tru $(DAT)/rumors.fal
$(U)makedefs -r
$(DAT)/oracles: $(HOST_O)utility.tag $(DAT)/oracles.txt
$(U)makedefs -h
$(DAT)/bogusmon: $(HOST_O)utility.tag $(DAT)/bogusmon.txt
$(U)makedefs -s
$(DAT)/engrave: $(HOST_O)utility.tag $(DAT)/engrave.txt
$(U)makedefs -s
$(DAT)/epitaph: $(HOST_O)utility.tag $(DAT)/epitaph.txt
$(U)makedefs -s
#===============================================
# Create directory for holding host object files
#===============================================
hobj.tag:
mkdir -p ./$(HOBJ)
echo directory ready ./$(HOBJ)
#==========================================
# Makedefs Stuff
#==========================================
$(U)makedefs: $(MAKEDEFSOBJS)
$(HOST_LINK) $(LFLAGS) -o$@ $(MAKEDEFSOBJS)
$(HOST_O)makedefs.o: $(U)makedefs.c $(SRC)/mdlib.c $(CONFIG_H) $(INCL)/permonst.h \
$(INCL)/objclass.h $(INCL)/monsym.h \
$(INCL)/artilist.h $(INCL)/dungeon.h $(INCL)/obj.h \
$(INCL)/monst.h $(INCL)/you.h $(INCL)/flag.h \
$(INCL)/dlb.h $(INCL)/patchlevel.h
#=============================================
# Header file moves required for tile support
#=============================================
ifeq ($(SUPPRESS_GRAPHICS),Y)
else
#
# Tile Mapping
#
$(SRC)/tile.c: $(U)tilemap
@$(U)tilemap
@echo A new $@ has been created
$(U)tilemap: $(HOST_O)tilemap.o
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tilemap.o
$(HOST_O)tilemap.o: $(WSHR)/tilemap.c $(HACK_H) $(TILE_H)
$(HOST_CC) $(cflags) -I$(WSHR) -I$(MSYS) -DSTATUES_LOOK_LIKE_MONSTERS -o$@ $(WSHR)/tilemap.c
#==========================================
# Tile Utilities
# Required for tile support
#==========================================
#$(DAT)/NetHack1.tib: $(TILEFILES) $(U)tile2bin
# @echo Creating binary tile files
# cd $(DAT)
# $(U)tile2bin
# cd $(SRC)
#$(DAT)/NetHacko.tib: $(HOST_O)thintile.tag $(TILEFILES2) $(U)til2bin2
# @echo Creating overview binary tile files
# cd $(DAT)
# $(U)til2bin2
# cd $(SRC)
$(DAT)/NHTILES.BMP: $(TILEFILES) $(U)tile2bmp
@echo Creating binary tile files which may take some time
@cd $(DAT)
@$(U)tile2bmp $@
@cd $(SRC)
$(U)tile2bmp: $(HOST_O)tile2bmp.o $(TEXTIO)
-rm -f temp.a
ar r temp.a $(TEXTIO)
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bmp.o temp.a
#$(U)tile2bin: $(HOST_O)tile2bin.o $(TEXTIO)
# -rm -f temp.a
# ar r temp.a $(TEXTIO)
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bin.o temp.a
#$(U)til2bin2: $(HOST_O)til2bin2.o $(TEXTIO2)
# -rm -f temp.a
# ar r temp.a $(TEXTIO2)
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)til2bin2.o temp.a
#$(U)thintile: $(HOST_O)thintile.o
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)thintile.o
#$(HOST_O)thintile.o: $(HACK_H) $(WSHR)/tile.h $(WSHR)/thintile.c
# -rm -f temp.a
# ar r temp.a $(TEXTIO)
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bmp.o temp.a
#$(HOST_O)thintile.o: $(HACK_H) $(WSHR)/tile.h $(WSHR)/thintile.c
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE -DOVERVIEW_FILE -o$@ $(WSHR)/thintile.c
#$(HOST_O)thintile.tag: $(U)thintile $(TILEFILES)
# $(U)thintile
# echo thintiles created >$@
$(HOST_O)tile2bmp.o: $(HACK_H) $(TILE_H) $(WSHR)/tile2bmp.c
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(WSHR)/tile2bmp.c
#$(HOST_O)tile2bin.o: $(HACK_H) $(TILE_H) $(MSYS)/pctiles.h $(MSYS)/pcvideo.h $(MSYS)/tile2bin.c
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/tile2bin.c
#$(HOST_O)til2bin2.o: $(HACK_H) $(TILE_H) $(MSYS)/pctiles.h $(MSYS)/pcvideo.h $(MSYS)/tile2bin.c
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE_X=8 -DOVERVIEW_FILE -o$@ $(MSYS)/tile2bin.c
$(HOST_O)tiletext.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tiletext.c
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(WSHR)/tiletext.c
$(HOST_O)tiletex2.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tiletext.c
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE_X=8 -o$@ $(WSHR)/tiletext.c
$(HOST_O)tiletxt.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tilemap.c
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILETEXT -o$@ $(WSHR)/tilemap.c
$(HOST_O)tiletxt2.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tilemap.c
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILETEXT -DTILE_X=8 -o$@ $(WSHR)/tilemap.c
#
# Optional GIF Utilities (for development)
#
$(U)gif2txt: $(GIFREADERS) $(TEXTIO)
$(HOST_LINK) $(LFLAGS) -o$@ $(GIFREADERS) $(TEXTIO)
$(U)gif2txt2: $(GIFREAD2) $(TEXTIO2)
$(HOST_LINK) $(LFLAGS) -o$@ $(GIFREAD2) $(TEXTIO2)
$(U)txt2ppm: $(PPMWRITERS) $(TEXTIO)
$(HOST_LINK) $(LFLAGS) -o$@ $(PPMWRITERS) $(TEXTIO)
$(U)txt2ppm2: $(PPMWRIT2) $(TEXTIO2)
$(HOST_LINK) $(LFLAGS) -o$@ $(PPMWRIT2) $(TEXTIO2)
$(HOST_O)gifread.o: $(CONFIG_H) $(WSHR)/tile.h $(WSHR)/gifread.c
$(HOST_O)gifread2.o: $(CONFIG_H) $(WSHR)/tile.h $(WSHR)/gifread.c
$(HOST_CC) $(cflags) -DTILE_X=8 -o$@ $(WSHR)/gifread.c
ppmwrite.c: $(WSHR)/ppmwrite.c
cp $(WSHR)/ppmwrite.c .
$(HOST_O)ppmwrite.o: $(CONFIG_H) $(WSHR)/tile.h
$(HOST_O)ppmwrit2.o: $(CONFIG_H) $(WSHR)/tile.h ppmwrite.c
$(HOST_CC) $(cflags) -DTILE_X=8 -o$@ ppmwrite.c
#
# Optional tile viewer (development sources only)
#
$(U)viewtib: $(HOST_O)viewtib.o
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)viewtib.o $(LIBRARIES)
$(HOST_O)viewtib.o: $(MSYS)/viewtib.c
endif
#==========================================
# Other host Util Dependencies.
#==========================================
$(HOST_O)monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/monsym.h \
$(INCL)/color.h monst.c
$(HOST_CC) $(cflags) -o$@ monst.c
$(HOST_O)objects.o: $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
$(INCL)/prop.h $(INCL)/color.h objects.c
$(HOST_CC) $(cflags) -o$@ objects.c
$(HOST_O)panic.o: $(CONFIG_H) $(U)panic.c
$(HOST_CC) $(cflags) -o$@ $(U)panic.c
#==========================================
# Housekeeping for host side.
#==========================================
clean:
-rm $(HOBJ)/*.o
-rm ./msdos_o/*.o
if [ -f $(HOST_O)prereq.tag ]; then rm $(HOST_O)prereq.tag; fi;
if [ -f hobj.tag ]; then rm hobj.tag; fi;
if [ -f $(HOST_O)utility.tag ]; then rm $(HOST_O)utility.tag; fi;
if [ -f temp.a ]; then rm temp.a; fi;
spotless: clean
if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi;
## if [ -f $(U)dgn_flex.c ]; then rm $(U)dgn_flex.c; fi;
## if [ -f $(U)dgn_lex.c ]; then rm $(U)dgn_lex.c; fi;
# if [ -f $(U)makedefs ]; then rm $(U)makedefs; fi;
## if [ -f $(U)dgn_comp ]; then rm $(U)dgn_comp; fi;
# if [ -f $(U)recover.exe ]; then rm $(U)recover.exe; fi;
# if [ -f $(U)tilemap ]; then rm $(U)tilemap; fi;
# if [ -f $(U)tile2bmp ]; then rm $(U)tile2bmp; fi;
## if [ -f $(U)tile2bin ]; then rm $(U)tile2bin; fi;
## if [ -f $(U)til2bin2 ]; then rm $(U)til2bin2; fi;
## if [ -f $(U)thintile ]; then rm $(U)thintile; fi;
# if [ -f $(U)dlb_main ]; then rm $(U)dlb_main; fi;
# if [ -f $(INCL)/vis_tab.h ]; then rm $(INCL)/vis_tab.h; fi;
# if [ -f $(INCL)/onames.h ]; then rm $(INCL)/onames.h; fi;
# if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi;
# if [ -f $(INCL)/date.h ]; then rm $(INCL)/date.h; fi;
## if [ -f $(INCL)/dgn_comp.h ]; then rm $(INCL)/dgn_comp.h; fi;
## if [ -f $(INCL)/lev_comp.h ]; then rm $(INCL)/lev_comp.h; fi;
# if [ -f $(SRC)/vis_tab.c ]; then rm $(SRC)/vis_tab.c; fi;
# if [ -f $(SRC)/tile.c ]; then rm $(SRC)/tile.c; fi;
# if [ -f $(DAT)/options ]; then rm $(DAT)/options; fi;
# if [ -f $(DAT)/data ]; then rm $(DAT)/data; fi;
# if [ -f $(DAT)/rumors ]; then rm $(DAT)/rumors; fi;
## if [ -f $(DAT)/dungeon.pdf ]; then rm $(DAT)/dungeon.pdf; fi;
## if [ -f $(DAT)/dungeon ]; then rm $(DAT)/dungeon; fi;
# if [ -f $(DAT)/oracles ]; then rm $(DAT)/oracles; fi;
## if [ -f $(DAT)/quest.dat ]; then rm $(DAT)/quest.dat; fi;
# if [ -f $(DAT)/bogusmon ]; then rm $(DAT)/bogusmon; fi;
# if [ -f $(DAT)/engrave ]; then rm $(DAT)/engrave; fi;
# if [ -f $(DAT)/epitaph ]; then rm $(DAT)/epitaph; fi;
# if [ -f $(DAT)/dlb.lst ]; then rm $(DAT)/dlb.lst; fi;
# if [ -f $(DAT)/nhdat ]; then rm $(DAT)/nhdat; fi;
# if [ -f $(DAT)/*.lev ]; then rm $(DAT)/*.lev; fi;
# if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi;
# if [ -f $(WSHR)/monthin.txt ]; then rm $(WSHR)/monthin.txt; fi;
# if [ -f $(WSHR)/objthin.txt ]; then rm $(WSHR)/objthin.txt; fi;
# if [ -f $(WSHR)/oththin.txt ]; then rm $(WSHR)/oththin.txt; fi;
#==========================================
# Host Utility Dependencies
#==========================================
# src dependencies
$(HOST_O)drawing.o: $(CONFIG_H) $(INCL)/color.h $(INCL)/rm.h \
$(INCL)/objclass.h $(INCL)/monsym.h
$(HOST_O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h
$(HOST_O)alloc.o: alloc.c $(CONFIG_H)
$(HOST_O)dlb.o: dlb.c $(CONFIG_H) $(INCL)/dlb.h
$(HOST_CC) $(cflags) -I../sys/msdos -o$@ dlb.c
$(HOST_O)monst.o: monst.c $(CONFIG_H) $(INCL)/permonst.h $(INCL)/align.h \
$(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/monsym.h \
$(INCL)/color.h
$(HOST_O)objects.o: objects.c $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
$(INCL)/prop.h $(INCL)/skills.h $(INCL)/color.h
$(HOST_O)tileset.o: $(WSHR)/tileset.c $(HACK_H)
$(HOST_O)bmptiles.o: $(WSHR)/bmptiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
$(HOST_O)giftiles.o: $(WSHR)/giftiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
# end of file

File diff suppressed because it is too large Load Diff

View File

@@ -1,129 +0,0 @@
#!/bin/sh
#set -x
if [ -z "$TRAVIS_BUILD_DIR" ]; then
export DJGPP_TOP=$(pwd)/lib/djgpp
else
export DJGPP_TOP="$TRAVIS_BUILD_DIR/lib/djgpp"
fi
if [ -z "$GCCVER" ]; then
export GCCVER=gcc1010
fi
if [ -z "$LUA_VERSION" ]; then
export LUA_VERSION=5.4.0
fi
if [ ! -d "$(pwd)/lib" ]; then
echo "Set up for Unix build and 'make fetch-lua' first."
exit 1
fi
#DJGPP_URL="https://github.com/andrewwutw/build-djgpp/releases/download/v2.9/"
DJGPP_URL="https://github.com/andrewwutw/build-djgpp/releases/download/v3.0/"
if [ "$(uname)" = "Darwin" ]; then
#Mac
DJGPP_FILE="djgpp-osx-$GCCVER.tar.bz2"
if [ -z "HINTS" ]; then
export HINTS=macOS.2020
fi
elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]; then
#Linux
DJGPP_FILE="djgpp-linux64-$GCCVER.tar.bz2"
if [ -z "$HINTS" ]; then
export HINTS=linux.2020
fi
elif [ "$(expr substr $(uname -s) 1 10)" = "MINGW32_NT" ]; then
#mingw
DJGPP_FILE="djgpp-mingw-$GCCVER-standalone.zip"
else
echo "No DJGPP release for you, sorry."
exit 1
fi
DJGPP_URL="$DJGPP_URL$DJGPP_FILE"
# export
if [ ! -d lib ]; then
mkdir -p lib
fi
cd lib
if [ ! -f "$DJGPP_FILE" ]; then
if [ "$(uname)" = "Darwin" ]; then
#Mac
curl -L $DJGPP_URL -o $DJGPP_FILE
else
wget --no-hsts "$DJGPP_URL"
fi
fi
if [ ! -d djgpp/i586-pc-msdosdjgpp ]; then
tar xjf "$DJGPP_FILE"
rm -f $DJGPP_FILE
fi
# DOS-extender for use with djgpp
if [ ! -d djgpp/cwsdpmi ]; then
if [ "$(uname)" = "Darwin" ]; then
#Mac
curl http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip -o csdpmi7b.zip
else
wget --no-hsts http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip
fi
cd djgpp
mkdir -p cwsdpmi
cd cwsdpmi
unzip ../../csdpmi7b.zip
cd ../../
rm csdpmi7b.zip
fi
# PDCurses
if [ ! -d "pdcurses" ]; then
echo "Getting ../pdcurses from https://github.com/wmcbrine/PDCurses.git" ; \
git clone --depth 1 https://github.com/wmcbrine/PDCurses.git pdcurses
fi
cd ../
# Don't fail the build if lua fetch failed because we cannot do anything about it
# but don't bother proceeding forward either
if [ ! -d "lib/lua-$LUA_VERSION/src" ]; then
exit 0
fi
#echo after dos extender
cd src
mkdir -p ../msdos-binary
cp ../dat/data.base ../dat/data.bas
cp ../include/patchlevel.h ../include/patchlev.h
cp ../doc/Guidebook.txt ../doc/guidebk.txt
cp ../sys/share/posixregex.c ../sys/share/posixreg.c
#cp ../sys/msdos/Makefile1.cross ../src/Makefile1
#cp ../sys/msdos/Makefile2.cross ../src/Makefile2
make -f ../sys/msdos/Makefile1.cross
#cat ../include/date.h
export GCC_EXEC_PREFIX=$DJGPP_TOP/lib/gcc/
# export
#pwd
make -f ../sys/msdos/Makefile2.cross
unset GCC_EXEC_PREFIX
#pwd
if [ -f ../lib/djgpp/cwsdpmi/bin/CWSDPMI.EXE ]; then
cp ../lib/djgpp/cwsdpmi/bin/CWSDPMI.EXE ../msdos-binary/CWSDPMI.EXE;
fi
# ls -l ../msdos-binary
cd ../msdos-binary
zip -9 ../lib/NH370DOS.ZIP *
cd ../
ls -l lib/NH370DOS.ZIP

View File

@@ -127,7 +127,7 @@ ifdef CROSS_TO_MSDOS
# Source from http://www.lua.org/ftp/lua-5.4.0.tar.gz
#=================================================================
CFLAGS += -DCROSSCOMPILE -DCROSSCOMPILE_HOST
CFLAGS += -DCROSSCOMPILE
#
# Override the build tools and some obj files to
@@ -195,7 +195,7 @@ ifdef CROSS_TO_AMIGA
# Amiga m68k from https://github.com/bebbo/amiga-gcc
#=================================================================
CFLAGS += -DCROSSCOMPILE -DCROSSCOMPILE_HOST
CFLAGS += -DCROSSCOMPILE
#
# Override the build tools and some obj files to

View File

@@ -253,12 +253,10 @@ U = $(UTIL)^\
!IFDEF TEST_CROSSCOMPILE
HOST=_host
CROSSCOMPILE_TARGET= -DCROSSCOMPILE_TARGET
CROSSCOMPILE_HOST= -DCROSSCOMPILE_HOST
CROSSCOMPILE= -DCROSSCOMPILE
!ELSE
HOST=
CROSSCOMPILE_TARGET=
CROSSCOMPILE_HOST=
CROSSCOMPILE=
!ENDIF
@@ -1064,7 +1062,7 @@ $(U)nhsizes3.exe: $(O)nhsizes3.o
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic$(HOST).o $(O)alloc$(HOST).o
$(O)nhsizes3.o: $(CONFIG_H) nhsizes3.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ nhsizes3.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ nhsizes3.c
$(U)makedefs.exe: $(MAKEDEFSOBJS)
@echo Linking $(@:\=/)
@@ -1077,8 +1075,8 @@ $(O)makedefs.o: $(U)makedefs.c $(SRC)\mdlib.c $(CONFIG_H) $(INCL)\permonst.h \
$(INCL)\dlb.h
@if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
@if not exist $(OBJ)\*.* mkdir $(OBJ)
@$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(U)makedefs.c
# @$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /EP -Fo$@ $(U)makedefs.c >makedefs.c.preprocessed
@$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)makedefs.c
# @$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) /EP -Fo$@ $(U)makedefs.c >makedefs.c.preprocessed
#
# date.h should be remade every time any of the source or include
@@ -1109,7 +1107,7 @@ $(U)uudecode.exe: $(O)uudecode.o
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
$(O)uudecode.o: $(SSYS)\uudecode.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
$(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
chdir $(MSWSYS)
@@ -1208,7 +1206,7 @@ $(U)dlb.exe: $(DLBOBJ_HOST) $(O)dlb$(HOST).o
!IFDEF TEST_CROSSCOMPILE
$(O)dlb$(HOST).o: $(O)dlb_main$(HOST).o $(O)alloc$(HOST).o $(O)panic$(HOST).o $(INCL)\dlb.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /Fo$@ $(SRC)\dlb.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(SRC)\dlb.c
!ENDIF
$(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
@@ -1216,11 +1214,11 @@ $(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
!IFDEF TEST_CROSSCOMPILE
$(O)dlb_main$(HOST).o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /Fo$@ $(UTIL)\dlb_main.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(UTIL)\dlb_main.c
!ENDIF
$(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /Fo$@ $(UTIL)\dlb_main.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(UTIL)\dlb_main.c
$(DAT)\porthelp: $(MSWSYS)\porthelp
@copy $(MSWSYS)\porthelp $@ >nul
@@ -1277,28 +1275,28 @@ $(U)tilemap.exe: $(O)tilemap.o
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(WSHR)\tilemap.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(WSHR)\tilemap.c
$(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
$(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
$(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
#==========================================
# Optional Tile Utilities
@@ -1357,10 +1355,10 @@ $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
<<
$(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
$(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
$(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
$(O)panic.o $(O)monst.o $(O)objects.o
@@ -1377,7 +1375,7 @@ $(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
<<
$(O)tile2x11.o: $(X11)\tile2x11.c $(HACK_H) $(TILE_H) $(INCL)\tile2x11.h
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /Fo$@ $(X11)\tile2x11.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(X11)\tile2x11.c
$(SRC)\x11tiles: $(U)tile2x11.exe $(WSHR)\monsters.txt $(WSHR)\objects.txt \
$(WSHR)\other.txt \
@@ -1509,7 +1507,7 @@ $(O)sfstruct.o: $(HACK_H) $(SRC)\sfstruct.c
!IFDEF TEST_CROSSCOMPILE
$(O)mdlib$(HOST).o: $(SRC)\mdlib.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(SRC)\mdlib.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(SRC)\mdlib.c
!ENDIF
$(O)mdlib.o: $(SRC)\mdlib.c
@@ -1523,13 +1521,13 @@ $(O)mdlib.o: $(SRC)\mdlib.c
# These have dual-roles and need to be build for host and target platforms.
#
$(O)panic_host.o: $(U)panic.c $(CONFIG_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(U)panic.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)panic.c
$(O)panic.o: $(U)panic.c $(CONFIG_H)
@$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
$(O)drawing_host.o: drawing.c $(CONFIG_H)
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ drawing.c
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ drawing.c
$(O)drawing.o: drawing.c $(CONFIG_H) $(INCL)\color.h $(INCL)\rm.h \
$(INCL)\objclass.h $(INCL)\monsym.h