annotate urogue/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
273
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
1 # -*- Autoconf -*-
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
2 # Process this file with autoconf to produce a configure script.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
3
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
4 AC_PREREQ(2.56)
287
0b3d1b38998f Remove version numbers from docdir paths.
John "Elwin" Edwards
parents: 284
diff changeset
5 AC_INIT([UltraRogue],[1.07], [yendor@rogueforge.net], [urogue])
273
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
6 AC_CONFIG_HEADERS([config.h])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
7 AC_CONFIG_FILES([Makefile])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
8
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
9 # Checks for programs.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
10 AC_PROG_CC
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
11 # Checks for libraries.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
12 MP_WITH_CURSES
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
13 # Checks for header files.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
14 AC_HEADER_STDC
284
6376b514a30b Fix more header-related warnings.
John "Elwin" Edwards
parents: 275
diff changeset
15 AC_CHECK_HEADERS([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 arpa/inet.h])
273
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
16
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
17 # Checks for typedefs, structures, and compiler characteristics.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
18 AC_TYPE_UID_T
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
19 AC_TYPE_SIZE_T
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
20 AC_STRUCT_TM
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
21 # Checks for library functions.
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
22 AC_FUNC_FORK
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
23 AC_PROG_GCC_TRADITIONAL
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
24 AC_FUNC_LSTAT
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
25 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
26 AC_TYPE_SIGNAL
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
27 AC_FUNC_STAT
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
28 AC_FUNC_VPRINTF
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
29 AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
30 AC_PROG_INSTALL
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
31
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
32 # Programs to process the documentation
275
aa0eefcd7df6 UltraRogue: build and install documentation in the Makefile.
John "Elwin" Edwards
parents: 273
diff changeset
33 AC_CHECK_PROG([NROFF], [nroff], [nroff],)
aa0eefcd7df6 UltraRogue: build and install documentation in the Makefile.
John "Elwin" Edwards
parents: 273
diff changeset
34 AC_CHECK_PROG([GROFF], [groff], [groff],)
aa0eefcd7df6 UltraRogue: build and install documentation in the Makefile.
John "Elwin" Edwards
parents: 273
diff changeset
35 AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],)
273
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
36
294
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
37 if test "x$GROFF" != "x" ; then
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
38 DOCS_GROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
39 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
40 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
41 elif test "x$(NROFF)" != "x" && test "x$(COLCRT)" != "x" ; then
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
42 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
43 DOCS_NROFF=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
44 DOCS_NONE=.none
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
45 else
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
46 DOCS_GROFF=.no-groff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
47 DOCS_NROFF=.no-nroff
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
48 DOCS_NONE=
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
49 fi
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
50
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
51 AC_SUBST(DOCS_GROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
52 AC_SUBST(DOCS_NROFF)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
53 AC_SUBST(DOCS_NONE)
fe6b7a1a6dfc Improve the documentation build process.
John "Elwin" Edwards
parents: 288
diff changeset
54
273
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
55 AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="urogue"] )
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
56 PROGRAM=$progname
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
57 AC_SUBST(PROGRAM)
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
58
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
59 AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
60 AC_MSG_CHECKING([if using setgid execute bit])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
61 if test "x$enable_setgid" = "xno" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
62 GROUPOWNER=
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
63 elif test "x$enable_setgid" = "xyes" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
64 GROUPOWNER=games
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
65 elif test "x$enable_setgid" = "x" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
66 GROUPOWNER=
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
67 else
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
68 GROUPOWNER=$enable_setgid
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
69 fi
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
70
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
71 if test "x$GROUPOWNER" != "x" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
72 AC_DEFINE_UNQUOTED([GROUPOWNER],[$GROUPOWNER], [Define to group owner of setgid executable])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
73 AC_MSG_RESULT([$GROUPOWNER])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
74 else
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
75 AC_MSG_RESULT([no])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
76 fi
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
77
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
78 AC_SUBST(GROUPOWNER)
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
79
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
80 AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
81 AC_MSG_CHECKING([for scoreboard file])
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
82 if test "x$enable_scorefile" = "xno" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
83 SCOREFILE=
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
84 elif test "x$enable_scorefile" = "xyes" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
85 SCOREFILE=$progname.scr
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
86 elif test "x$enable_scorefile" = "x" ; then
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
87 SCOREFILE=$progname.scr
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
88 else
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
89 SCOREFILE=$enable_scorefile
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents:
diff changeset
90 fi
51ddbe7b992d UltraRogue: begin autoconfiscation.
John "Elwin" Edwards
parents: