annotate rogue3/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
88
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
1 # -*- Autoconf -*-
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
2 # Process this file with autoconf to produce a configure script.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
3
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
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],[3.6.4], [yendor@rogueforge.net], [rogue3])
88
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
6 AC_CONFIG_HEADERS([config.h])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
7 AC_CONFIG_FILES([Makefile rogue.6 rogue.r])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
8
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
9 # Checks for programs.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
10 AC_PROG_CC
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
11 # Checks for libraries.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
12 MP_WITH_CURSES
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
13 # Checks for header files.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
14 AC_HEADER_STDC
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
15 AC_CHECK_HEADERS([arpa/inet.h pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h utmpx.h term.h ncurses/term.h process.h])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
16 # WARN: the sources often don't include the headers when needed. That is one
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
17 # reason why adding "-Wall" to CFLAGS produces 1246 lines of messages.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
18
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
19 # Checks for typedefs, structures, and compiler characteristics.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
20 AC_TYPE_UID_T
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
21 AC_TYPE_SIZE_T
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
22 AC_STRUCT_TM
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
23 # Checks for library functions.
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
24 AC_FUNC_FORK
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
25 AC_PROG_GCC_TRADITIONAL
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
26 AC_FUNC_LSTAT
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
27 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
28 AC_TYPE_SIGNAL
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
29 AC_FUNC_STAT
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
30 AC_FUNC_VPRINTF
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
31 AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
32 AC_PROG_INSTALL
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
33
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
34 # Programs to process the documentation
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
35 AC_CHECK_PROG([NROFF], [nroff], [nroff],)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
36 AC_CHECK_PROG([GROFF], [groff], [groff],)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
37 AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
38 AC_CHECK_PROG([TBL], [tbl], [tbl],)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
39
294
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
40 if test "x$GROFF" != "x" ; then
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
41 DOCS_GROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
42 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
43 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
44 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
45 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
46 DOCS_NROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
47 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
48 else
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
49 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
50 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
51 DOCS_NONE=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
52 fi
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
53
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
54 AC_SUBST(DOCS_GROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
55 AC_SUBST(DOCS_NROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
56 AC_SUBST(DOCS_NONE)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 287
diff changeset
57
88
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
58 AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue3"] )
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
59 PROGRAM=$progname
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
60 AC_SUBST(PROGRAM)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
61
278
c222f9d56776 Remove an extra bracket from some Autoconf macros.
John "Elwin" Edwards
parents: 223
diff changeset
62 AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[])
88
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
63 AC_MSG_CHECKING([if using setgid execute bit])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
64 if test "x$enable_setgid" = "xno" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
65 GROUPOWNER=
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
66 elif test "x$enable_setgid" = "xyes" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
67 GROUPOWNER=games
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
68 elif test "x$enable_setgid" = "x" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
69 GROUPOWNER=
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
70 else
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
71 GROUPOWNER=$enable_setgid
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
72 fi
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
73
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
74 if test "x$GROUPOWNER" != "x" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
75 AC_DEFINE_UNQUOTED([GROUPOWNER],[$GROUPOWNER], [Define to group owner of setgid executable])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
76 AC_MSG_RESULT([$GROUPOWNER])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
77 else
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
78 AC_MSG_RESULT([no])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
79 fi
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
80
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
81 AC_SUBST(GROUPOWNER)
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
82
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
83 AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
84 AC_MSG_CHECKING([for scoreboard file])
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
85 if test "x$enable_scorefile" = "xno" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
86 SCOREFILE=
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
87 elif test "x$enable_scorefile" = "xyes" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
88 SCOREFILE=$progname.scr
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
89 elif test "x$enable_scorefile" = "x" ; then
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
90 SCOREFILE=$progname.scr
07c4d4883ef2 rogue3: begin porting to autoconf.
John "Elwin" Edwards
parents:
diff changeset
91 else