Commit Graph

47 Commits

Author SHA1 Message Date
nhmall
47b18d7bde Merge 'NetHack-3.6' changes into NetHack-3.7-Jan2020 2020-01-25 22:17:42 -05:00
PatR
2b5dc80278 unix 'make clean' update
Remove dat/gitinfo.txt which has been getting overlooked.
Hardly urgent, but useful if this is the last 3.5.x release.
2020-01-25 12:08:28 -08:00
PatR
1c30c437c3 'make' => 'make all'
In sys/unix/Makefile.{top,src}, move the 'all' target first so that
it's the default if no target is specified.  Recent lua handling
unintentionally broke that for Makefile.top by putting 'lua_support'
target in front of 'all'.
2019-12-09 15:02:30 -08:00
PatR
865607a392 3.7 Unix Makefiles
Copy lib/lua-$(VERSION)/src/liblua.h to lib/lua/ rather than lib/.

Instead of copying any of the header files or telling the compiler
where to find the lua ones, generate include/nhlua.h on the fly and
restrict the knowledge of where they are to it (paths are relative
to include/).

|/* nhlua.h - generated by top Makefile */
|#include "../lib/lua-5.3.5/src/lua.h"
|LUA_API int   (lua_error) (lua_State *L) NORETURN;
|#include "../lib/lua-5.3.5/src/lualib.h"
|#include "../lib/lua-5.3.5/src/lauxlib.h"
|/*nhlua.h*/

This might need to be redone (or augmented by having CFLAGS add back
'-I path-to-lua') if some compiler can't find '#include "luaconf.h"'
issued by lua.h.
2019-11-26 19:27:00 -08:00
PatR
1b2b330e9f lua reorganization
Reduce the implied reliance of a specific version of lua.

Instead of copying liblua.a to src/, copy it to lib/.  Instead of
telling the compiler to look for headers in lib/lua-5.3.5/src/ as
well as in include/, copy the relevant ones to lib/ and tell the
compiler to look for them there.  'make spotless' in src/ will
remove both the object library and the header files from lib/ but
there really should be a new Makefile.lib to take care of that
directory.

Update Makefile.src to be able to build lua in case someone starts
with 'make all' there instead of in the top Makefile.  It doesn't
duplicate the option to fetch the lua source package though.

NHinternal/../genFiles.c has been updated to mention lib/liblua.a
and lib/lua*.h as 'generated at compile time' in Files and to skip
lib/lua-* entirely if it comes across that (so not operating on a
completely clean tree).  But it won't be accurate unless/until
other ports stage their lua files there instead of in src/ and
lib/lua-$(VERSION)/src/.

I haven't tried 'make depend' to see what it makes of the numerous
changes....
2019-11-25 12:20:42 -08:00
Pasi Kallinen
8b87013fba Move quest texts to lua 2019-11-24 17:41:39 +02:00
nhmall
8bd6ef629a update post-Lua
add lib/ to .gitignore

add optional "make fetch-Lua" step to simplify prerequisite to "make all"
2019-11-15 11:12:00 -05:00
Pasi Kallinen
9cd9280276 Lua: remove dgn_comp, use lua instead 2019-11-06 18:45:10 +02:00
Pasi Kallinen
fd55d9118e Use lua for special level files
Game is playable, and should compile on linux and Windows.
Assumes you have a lua 5.3 library available.

Removes level compiler and associated files.
Replaces special level des-files with lua scripts.
Exposes some NetHack internals to lua:
 - des-table with commands to create special levels
 - nh-table with NetHack core commands
 - nhc-table with some constants
 - u-table with some player-specific data (u-struct)
 - selection userdata

Adds some rudimentary tests.

Adds new extended command #wizloadlua to run a specific script,
and #wizloaddes to run a specific level-creation script.

nhlib.lua is loaded for every lua script.

Download and untar lua:
  mkdir lib
  cd lib
  curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
  tar zxf lua-5.3.5.tar.gz

Then make nethack normally.
2019-11-06 18:43:20 +02:00
Bart House
f4fb476e50 Modified the spotless make rule to use double colon syntax. 2018-11-21 21:21:43 -08:00
keni
0f58af6f37 add missing copyright info 2018-04-25 16:54:50 -04:00
PatR
4ef23c6ac4 'whatdoes' command and new file: dat/keyhelp
Make the whatdoes ('&' or '?f') command support the 'altmeta' option
for meta-characters generated by two character seqeunce 'ESC char'.
Also, make it be more descriptive when reporting "no such command"
by including the numeric value it operated on when failing to match
any command.  That might provide a way for us to get some extra
information when players report problems with odd keystrokes:  we ask
them to type such at the "what command?" prompt and then tell us what
numbers come up.

It's been given a help file to deal with assorted idiosyncracies
which can come up when querying what keys do.  Unfortunately that
ended up being way more verbose than intended.

Installation of the extra data file has only been done for Unix.
Other platforms will get "can't open file" if they respond with
'&' or '?' to the "what command?" prompt.  The command will still
work though, just without the extra text.
2016-06-05 01:09:52 -07:00
PatR
ca979cbc2b REPRODUCIBLE_BUILD, part 2
Other half of the Debian reproducible-builds patch.  For Unix
Makefile.top, explicitly set locale to generic 'C' when running
'dlb' during install, so that wildcard expansion will yield a
predictable ordering regardless of collation order specified by
the local enviroenment.  Otherwise contents of the 'nhdat'
container might be different--when viewed as a single data file
itself--during subsequent rebuild even when no changes to source
or data have been made and each module inside remains the same.

This assumes that locale doesn't matter during generation of any
of the data files (whether destined for dlb or not).  I don't
think the utility programs attempt any sorting on the fly or
other locale-dependent output but wouldn't swear to that....
2016-03-31 18:09:59 -07:00
PatR
bb72860ce2 fix #H4011 - sys/unix/Makefile.top
Some commented make variables for X11 misspelled 'pilemark.xbm' with
bad '.xbm' suffix.

'symbols' was handled strangely, but it still should have been working
during playground installation.  This removes the strangeness but I have
no idea whether it solves #H4015 ('unable to access "symbols" file' for
the Mac OSX binary).
2015-12-08 16:39:39 -08:00
PatR
5e5a78fdb2 X11 pilemark.xbm
Update the unix Makefiles and the older OSX hints files to handle the
pile marker tile overlay.  I didn't touch hints/macosx10.10 and .11
since I think there's still a merge for them pending.

A couple of formatting tweaks for bemain.c are included, for no
compelling reason.  What are the odds that anyone will every build
that again?
2015-11-18 03:04:35 -08:00
Pasi Kallinen
50eb826c0f Add a chroot install hints file for linux
This makes installing NetHack on a public server much easier.
Required some minor changes to the unix top-level Makefile, and
the other hints files; Makefile variable HACKDIR may not be a
full path anymore, use INSTDIR instead.
2015-08-13 16:30:57 +03:00
Pasi Kallinen
b4cc349a46 X11: Hilight piles of objects 2015-06-09 19:59:38 +03:00
Sean Hunt
1c081b1647 Remove stale version control lines. 2015-05-25 09:21:31 +09:00
karnov
2a907f894e Version number increment 2015-05-06 22:04:27 -04:00
nhmall
7e098c0c4e Merge branch 'master' into nhmall-booktribute 2015-04-10 12:15:14 -04:00
Pasi Kallinen
ea084680ac Add 10 new bigroom variants 2015-04-08 18:31:32 +03:00
Sean Hunt
951de70b36 Do not clean tribute file on Unix. 2015-04-07 20:44:54 -04:00
nhmall
684e507143 attempt to fix Makefile issue with tribute 2015-04-06 23:16:14 -04:00
Sean Hunt
d5a2dcf8c7 Fix the Unix build. 2015-04-04 00:39:11 -04:00
nhmall
3fa52686d8 A couple of Makefile updates
Include the tribute file.

Windows Makefile
Unix Makefile.top
2015-03-22 22:06:13 -04:00
Pasi Kallinen
debdf7ca48 Move some hard-coded string arrays into data files.
Random epitaphs, engravings and hallucinatory monsters now
live in text data files.
2015-03-18 22:05:10 +02:00
Pasi Kallinen
f8aced5480 Add Extended Logfile 2015-03-12 21:35:04 +02:00
keni
03140969ee Bulk recovery of file CVS headers and addition of NHDT- headers. 2015-02-26 09:19:03 -05:00
keni
b97d53fb30 cleanup: outdated SCCS lines
Pat noted that I neglected to drop the SCCS lines on the files I've been
committing, so clean up those and any others I could find where the SCCS
line date is out of date.
2012-01-10 17:47:45 +00:00
keni
e8fe9b4505 make nethack.sh switchable from hints file
If SHELLDIR is null, don't install nethack.sh.  Also a tid in Porting
and add NHSROOT to the Makefiles which gives a path to the top of the
tree (so e.g. you can always find makedefs from a rule in a hints file).
2009-12-17 19:26:30 +00:00
keni
4036a6727c Add RCS version lines 2009-05-06 10:55:43 +00:00
keni
41479c040a makedefs --grep prep, misc cleanup (TRUNK ONLY)
use makedefs --grep in Makefile.doc
call make clean in doc from make clean in top
add commented out rule to produce mdgrep.h from mdgrep.pl
macosx1.5: don't chown/chgrp for single-user install
unixmain.c: work around C90 warning for Mac-specific code, fix last fix
makedefs.c: temporarily disallow blank after control introducer until docs
 catch up
mdgrep.pl: add ALLDOCS, clean up generated file's header
2008-06-25 18:56:47 +00:00
keni
b5d05b2bca SHELLERS for SYSCF, MacOS 10.5 hints file (trunk only)
Add SHELLERS - people allowed to use ! command with same syntax as WIZARDS.
Add new hints file for 10.5, since the rules and commands for groups changed
(new commands introduced in 10.4, old ones removed in 10.5; creating a new
user under 10.4 gave you a matching group, in 10.5 it doesn't).  Also move
shared build into roughly right place in file system when being installed
for root - don't use ~root.
Makefile.top - don't remove ./-p unless it exists (that's always annoyed me).
fix error invoking macosx.sh
2008-06-14 20:57:21 +00:00
keni
0b3e8bbd88 macosx hints file consolidation (trunk only)
get macosx down to one hints file (default tty, single user) for
 tty, x11, qt and single or multiple users
preliminary bits that might allow a macosx qt build
2008-04-08 23:17:39 +00:00
keni
f2d37bac2e system-wide configuration file
Add options SYSCF (to add a system-wide configuration file) and SYSCF_FILE
(for a file-based implementation of SYSCF) - this allows a binary distribution
to be configured at install time.  The only option supported at this time is
WIZARDS - a list of usernames which can use -D; currently only for unix-likes
but should be extendable to anything that has a concept of multiple users.
Add mac tty multiuser config using sgid.
2008-01-09 01:57:41 +00:00
keni
59e64a1d40 First pass at a hints-based build system to augment (not replace) the existing
build system.

Anyone who wants to do a build from sys/unix and doesn't want to figure this
out just needs to do:
	sh setup.sh hints/unix
instead of:
	sh setup.sh
and then continue on as usual.

New files:
sys/unix/NewInstall.unx - the new directions
sys/unix/hints/* - the hints files.  There will be more later.
sys/unix/mkmkfile.sh - helper for setup.sh

Summary of changes:
see NewInstall.unx for info on the new build system
introduction of various preprocessor symbols to turn options off that
 are defaulted on historically
comment out nethackrc (and similar) entries that still use the old symbol
 syntax.
commenting out of Makefile.* lines that now come from hints/unix
GAMEDIR is replaced with HACKDIR so the Makefiles and the C source agree.
  Note that I have NOT changed the docs and/or Makefiles for be, msdos, os2,
  vms, or winnt.  If port maintainers don't then I will, but I can't test
  those ports.
nethack.sh now handles the font path automatically
2007-12-13 20:17:11 +00:00
cohrs
39d5f48ce0 symhandling followup for Linux
- tile2x11 would not build because drawing.c now depended on strcmpi which
was (via STRNCMPI not being defined) defined to strncmpi which is
implemented in hacklib.c which needs panic which is defined in... I gave up
on tracking down all the loose ends and changed the strcmpi to strcmp,
which means the handling is case sensitive, but it avoids a bunch of
changes to the way the util/Makefile.
- the symhandling changes introduced a chicken and the egg problem for
ASCIIGRAPH on Unix platforms, which was getting the defn from tcap.h but
that does not get included earlier enough nor often enough.  I added a defn
to unixconf.h to mimic ntconf.h, since ASCIIGRAPH is normally defined on Unix.
- options.c included an unused decl for a function named graphics_opts
- Unix Makefile was not installing "symbols".  I'm assuming this isn't
supposed to get the DLB treatment.
2006-09-21 05:09:38 +00:00
nethack.allison
e9b022d579 housekeeping: mark trunk sources 3.5 (misc) 2005-01-02 17:21:18 +00:00
cohrs
648b1489a4 X11 install
Build and install the NetHack.ad file, and change the nethack.sh to append
the HACKDIR to the XUSERFILESEARCHPATH.  This means users do not have to
do anything special to use the NetHack X11 resources, nor does it require
teaching nethack where the X11 app-defaults directory is.  The change also
updates the X11 and linux doc files in a corresponding way.
2003-08-26 15:11:58 +00:00
cohrs
bbb6a45c34 minor Unix Makefile mod
I just noticed that the installed owner/group of "recover" was not being
set correctly.  This has no important effect, but does look funny.
2003-02-21 04:32:29 +00:00
warwick
82668439f7 nhtiles.bmp may be needed (eg. Qt windowport) 2002-07-01 05:23:47 +00:00
cohrs
05fb883473 unix: install recover command by default
- Update Makefile.top to do the deed
- Update Install.unx and README.linux to reflect the changed install procedure
2002-04-07 19:05:07 +00:00
jwalz
545132999d <Someone>'s changes for the makefiles. 2002-03-20 03:30:45 +00:00
cohrs
a35ca5e744 parallel unix make bits
- Pat noticed that makedefs -z makes both vis_tab.[ch], but they could be
built by two makes via make -j, causing corruption
- make -j at top level failed for similar reasons, added several
dependencies to ensure a valid ordering
- these changes will cause extra things to be built if you "make"
individual targets at the top level, but have little effect it you're a
real power user and "make" the actual target in the right directory
2002-03-09 06:41:49 +00:00
nethack.allison
742e1e8c90 3.3.2 to 3.4.0 2002-02-04 16:11:00 +00:00
warwick
31b0ddda0b Some stuff missed for the splash screen in Qt windowport. 2002-01-11 08:23:37 +00:00
jwalz
b8472ec9de *** empty log message *** 2002-01-05 21:05:59 +00:00