annotate rogue5/configure.ac @ 296:000b1c5b8d63

UltraRogue: fix inventory collision after save and restore. Inventory letters are based on "identifiers" stored in objects' o_ident field. Identifiers are allocated by get_ident(), which keeps a list of objects that have them, to avoid giving the same identifier to multiple objects. The list is not stored in the savefile, so after restore, get_ident() was not aware of existing identifiers. This resulted in picked-up objects having the same inventory letters as objects restored from the file. The restore code now adds all objects with identifiers to the list.
author John "Elwin" Edwards
date Mon, 15 Jan 2018 20:20:35 -0500
parents fe6b7a1a6dfc
children 029c1f5c5588
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
1 # -*- Autoconf -*-
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
2 # Process this file with autoconf to produce a configure script.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
3
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
4 AC_PREREQ(2.56)
287
0b3d1b38998f Remove version numbers from docdir paths.
John "Elwin" Edwards
parents: 278
diff changeset
5 AC_INIT([Rogue],[5.4.5], [yendor@rogueforge.net], [rogue5])
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
6 AC_CONFIG_SRCDIR([armor.c])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
7 AC_CONFIG_HEADER([config.h])
223
0e99eade579c Generate text documentation from the troff source files.
John "Elwin" Edwards
parents: 221
diff changeset
8 AC_CONFIG_FILES([Makefile rogue.6 rogue.me rogue.html])
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
9
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
10 # Checks for programs.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
11 AC_PROG_CC
213
3c0abb714974 rogue5: fix 'make install'.
John "Elwin" Edwards
parents: 157
diff changeset
12 AC_PROG_INSTALL
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
13
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
14 # Checks for libraries.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
15
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
16 # Checks for header files.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
17 AC_HEADER_STDC
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
18 AC_CHECK_HEADERS([arpa/inet.h sys/utsname.h pwd.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h term.h ncurses/term.h process.h])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
19
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
20 # Checks for typedefs, structures, and compiler characteristics.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
21 AC_HEADER_STDBOOL
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
22 AC_C_CONST
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
23 AC_TYPE_UID_T
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
24 AC_TYPE_SIZE_T
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
25 AC_STRUCT_TM
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
26 MP_WITH_CURSES
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
27 # Checks for library functions.
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
28 AC_FUNC_FORK
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
29 AC_PROG_GCC_TRADITIONAL
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
30 AC_FUNC_LSTAT
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
31 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
32 AC_TYPE_SIGNAL
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
33 AC_FUNC_STAT
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
34 AC_FUNC_VPRINTF
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
35 AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setresgid setregid setgid setresuid setreuid setuid getuid getgid])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
36
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
37 AC_CHECK_PROG([NROFF], [nroff], [nroff],)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
38 AC_CHECK_PROG([GROFF], [groff], [groff],)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
39 AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
40 AC_CHECK_PROG([TBL], [tbl], [tbl],)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
41
294
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
42 if test "x$GROFF" != "x" ; then
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
43 DOCS_GROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
44 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
45 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
46 elif test "x$(NROFF)" != "x" && test "x$(TBL)" != "x" && test "x$(COLCRT)" != "x" ; then
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
47 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
48 DOCS_NROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
49 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
50 else
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
51 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
52 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
53 DOCS_NONE=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
54 fi
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
55
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
56 AC_SUBST(DOCS_GROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
57 AC_SUBST(DOCS_NROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
58 AC_SUBST(DOCS_NONE)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
59
47
2a59cf36ae38 rogue5: Add chroot support to the autotools system.
elwin
parents: 34
diff changeset
60 AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue5"] )
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
61 PROGRAM=$progname
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
62 AC_SUBST(PROGRAM)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
63
278
c222f9d56776 Remove an extra bracket from some Autoconf macros.
John "Elwin" Edwards
parents: 223
diff changeset
64 AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[])
33
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
65 AC_MSG_CHECKING([if using setgid execute bit])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
66 if test "x$enable_setgid" = "xno" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
67 GROUPOWNER=
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
68 elif test "x$enable_setgid" = "xyes" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
69 GROUPOWNER=games
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
70 elif test "x$enable_setgid" = "x" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
71 GROUPOWNER=
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
72 else
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
73 GROUPOWNER=$enable_setgid
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
74 fi
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
75
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
76 if test "x$GROUPOWNER" != "x" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
77 AC_DEFINE_UNQUOTED([GROUPOWNER],[$GROUPOWNER], [Define to group owner of setgid executable])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
78 AC_MSG_RESULT([$GROUPOWNER])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
79 else
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
80 AC_MSG_RESULT([no])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
81 fi
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
82
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
83 AC_SUBST(GROUPOWNER)
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
84
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
85 AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
86 AC_MSG_CHECKING([for scoreboard file])
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
87 if test "x$enable_scorefile" = "xno" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
88 SCOREFILE=
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
89 elif test "x$enable_scorefile" = "xyes" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
90 SCOREFILE=$progname.scr
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
91 elif test "x$enable_scorefile" = "x" ; then
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
92 SCOREFILE=$progname.scr
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
93 else
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
94 SCOREFILE=$enable_scorefile
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
95 fi
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset
96
f502bf60e6e4 Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
elwin
parents:
diff changeset