# NetHack Makefile.
-# NetHack 3.6 Makefile.src $NHDT-Date: 1550876124 2019/02/22 22:55:24 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.70 $
+# NetHack 3.6 Makefile.src $NHDT-Date: 1574713234 2019/11/25 20:20:34 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.76 $
# Copyright (c) 2018 by Pasi Kallinen
# NetHack may be freely redistributed. See license for details.
# for UNIX systems
SYSSRC = ../sys/share/ioctl.c ../sys/share/unixtty.c ../sys/unix/unixmain.c \
../sys/unix/unixunix.c ../sys/unix/unixres.c
-SYSOBJ = ioctl.o unixmain.o unixtty.o unixunix.o unixres.o liblua.a
+SYSOBJ = ioctl.o unixmain.o unixtty.o unixunix.o unixres.o ../lib/liblua.a
#
# for Systos
# SYSSRC = ../sys/atari/tos.c ../sys/share/pcmain.c ../sys/share/pcsys.c \
#CFLAGS = -O -I../include
#LFLAGS =
-CFLAGS += -I../lib/lua-5.3.5/src
+CFLAGS += -I../lib
# -lm required by lua
LIBS += -lm
dungeon.c eat.c end.c engrave.c exper.c explode.c extralev.c \
files.c fountain.c hack.c hacklib.c invent.c isaac64.c light.c \
lock.c mail.c makemon.c mapglyph.c mcastu.c mhitm.c mhitu.c \
- minion.c mklev.c mkmap.c nhlua.c nhlsel.c \
- mkmaze.c mkobj.c mkroom.c mon.c mondata.c monmove.c monst.c \
- mplayer.c mthrowu.c muse.c music.c o_init.c objects.c objnam.c \
+ minion.c mklev.c mkmap.c mkmaze.c mkobj.c mkroom.c mon.c \
+ mondata.c monmove.c monst.c mplayer.c mthrowu.c muse.c music.c \
+ nhlua.c nhlsel.c o_init.c objects.c objnam.c \
options.c pager.c pickup.c pline.c polyself.c potion.c pray.c \
priest.c quest.c questpgr.c read.c rect.c region.c restore.c \
rip.c rnd.c role.c rumors.c save.c sfstruct.c \
tradstdc.h trampoli.h trap.h unixconf.h vision.h vmsconf.h wintty.h \
wincurs.h winX.h winprocs.h wintype.h you.h youprop.h
-HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h \
- dgn_file.h
+HSOURCES = $(HACKINCL) date.h onames.h pm.h vis_tab.h dgn_file.h
+
+# relative to src
+LUA_HEADERS = ../lib/lua.h ../lib/luaconf.h ../lib/lualib.h ../lib/lauxlib.h
# the following .o's _must_ be made before any others (for makedefs)
FIRSTOBJ = monst.o objects.o
drawing.o dungeon.o eat.o end.o engrave.o exper.o explode.o \
extralev.o files.o fountain.o hack.o hacklib.o invent.o isaac64.o \
light.o lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o \
- minion.o mklev.o mkmap.o nhlua.o nhlsel.o \
- mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o \
- mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o \
+ minion.o mklev.o mkmap.o mkmaze.o mkobj.o mkroom.o mon.o \
+ mondata.o monmove.o mplayer.o mthrowu.o muse.o music.o \
+ nhlua.o nhlsel.o o_init.o objnam.o options.o \
pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o \
quest.o questpgr.o read.o rect.o region.o restore.o rip.o rnd.o \
role.o rumors.o save.o sfstruct.o \
all: $(GAME)
+lib/liblua.a $(LUA_HEADERS):
+ @( cd .. ; $(MAKE) lua_support )
# dependencies for makedefs and its outputs, which the util
# Makefile is responsible for keeping up to date
spotless: clean
-rm -f a.out core $(GAME) Sys*
+ -rm -f ../lib/liblua.a $(LUA_HEADERS)
-rm -f ../include/date.h ../include/onames.h ../include/pm.h
-rm -f ../include/vis_tab.h vis_tab.c tile.c *.moc
-rm -f ../win/gnome/gn_rip.h
../include/system.h ../include/unixconf.h ../include/os2conf.h \
../include/micro.h ../include/pcconf.h ../include/tosconf.h \
../include/amiconf.h ../include/macconf.h ../include/beconf.h \
- ../include/wceconf.h ../include/ntconf.h
+ ../include/wceconf.h ../include/ntconf.h \
+ ../lib/lua.h ../lib/luaconf.h ../lib/lualib.h ../lib/lauxlib.h
touch $(CONFIG_H)
# hack.h timestamp
$(HACK_H): ../include/hack.h $(CONFIG_H) ../include/lint.h ../include/align.h \
# NetHack Top-level Makefile.
-# NetHack 3.6 Makefile.top $NHDT-Date: 1524689449 2018/04/25 20:50:49 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.36 $
+# NetHack 3.6 Makefile.top $NHDT-Date: 1574713236 2019/11/25 20:20:36 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.42 $
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
# NetHack may be freely redistributed. See license for details.
DATDLB = $(DATHELP) dungeon.lua tribute $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD)
DAT = $(DATNODLB) $(DATDLB)
-$(GAME):
- ( cd lib/lua-5.3.5/src && make a && cp liblua.a ../../../src/ )
+LUA_HEADERS = lib/lua.h lib/luaconf.h lib/lualib.h lib/lauxlib.h
+lua_support: lib/liblua.a $(LUA_HEADERS)
+ @true
+lib/liblua.a: lib/lua-$(LUA_VERSION)/src/liblua.a
+ @( cd lib/lua-$(LUA_VERSION)/src ; make a ; cd ../../.. )
+ cp lib/lua-$(LUA_VERSION)/src/liblua.a $@
+lib/lua.h: lib/lua-$(LUA_VERSION)/src/lua.h
+ sed -e '/(lua_error)/s/;/ NORETURN;/' \
+ < lib/lua-$(LUA_VERSION)/src/lua.h > $@
+lib/luaconf.h: lib/lua-$(LUA_VERSION)/src/luaconf.h
+ cp lib/lua-$(LUA_VERSION)/src/luaconf.h $@
+lib/lualib.h: lib/lua-$(LUA_VERSION)/src/lualib.h
+ cp lib/lua-$(LUA_VERSION)/src/lualib.h $@
+lib/lauxlib.h: lib/lua-$(LUA_VERSION)/src/lauxlib.h
+ cp lib/lua-$(LUA_VERSION)/src/lauxlib.h $@
+
+$(GAME): lua_support
( cd src ; $(MAKE) )
all: $(GAME) recover Guidebook $(VARDAT) spec_levs check-dlb
# This is not part of the dependency build hierarchy.
# It requires an explicit "make fetch-Lua".
fetch-lua: fetch-Lua
+ @true
fetch-Lua:
( mkdir -p lib ; cd lib ; \
- curl -R -O http://www.lua.org/ftp/lua-$(LUA_VERSION).tar.gz ; \
- tar zxf lua-$(LUA_VERSION).tar.gz ; rm -f lua-$(LUA_VERSION).tar.gz )
+ curl -R -O http://www.lua.org/ftp/lua-$(LUA_VERSION).tar.gz ; \
+ tar zxf lua-$(LUA_VERSION).tar.gz ; rm -f lua-$(LUA_VERSION).tar.gz )
+
update: $(GAME) recover $(VARDAT) spec_levs
# (don't yank the old version out from under people who're playing it)
-mv $(INSTDIR)/$(GAME) $(INSTDIR)/$(GAME).old
( cd src ; $(MAKE) clean )
( cd util ; $(MAKE) clean )
( cd doc ; $(MAKE) clean )
- ( cd lib/lua-5.3.5/src && $(MAKE) clean )
+ ( cd lib/lua-$(LUA_VERSION)/src && $(MAKE) clean )
# 'make spotless' returns the source tree to near-distribution condition.
# it removes .o files, executables, and compiled data files