view arogue7/configure.ac @ 306:057c5114e244

Super-Rogue: fix some out-of-range constants. Constants K_ARROW etc., for causes of death other than monsters, are in the 240-255 range. They were often passed to functions taking char, which is usually signed, making the values out of range. The function declarations have been changed to unsigned char, which is also the type used by the scoreboard code.
author John "Elwin" Edwards
date Sat, 17 Apr 2021 15:41:12 -0400
parents fe6b7a1a6dfc
children 029c1f5c5588
line wrap: on
line source

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.56)
AC_INIT([ARogue],[7.7.1], [yendor@rogueforge.net], [arogue7])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile])

# Checks for programs.
AC_PROG_CC
# Checks for libraries.
MP_WITH_CURSES
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([pwd.h errno.h fcntl.h limits.h stdlib.h string.h sys/ioctl.h sys/utsname.h termios.h unistd.h utmp.h term.h ncurses/term.h process.h arpa/inet.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T
AC_STRUCT_TM
# Checks for library functions.
AC_FUNC_FORK
AC_PROG_GCC_TRADITIONAL
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
AC_TYPE_SIGNAL
AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr _spawnl spawnl getpwuid loadav strerror setgid setuid getuid getgid])
AC_PROG_INSTALL

AC_CHECK_PROG([NROFF], [nroff], [nroff],)
AC_CHECK_PROG([GROFF], [groff], [groff],)
AC_CHECK_PROG([COLCRT], [colcrt], [colcrt],)
AC_CHECK_PROG([TBL], [tbl], [tbl],)

if test "x$GROFF" != "x" ; then
DOCS_GROFF=
DOCS_NROFF=.no-nroff
DOCS_NONE=.none
elif test "x$(NROFF)" != "x" && test "x$(TBL)" != "x" && test "x$(COLCRT)" != "x" ; then
DOCS_GROFF=.no-groff
DOCS_NROFF=
DOCS_NONE=.none
else
DOCS_GROFF=.no-groff
DOCS_NROFF=.no-nroff
DOCS_NONE=
fi

AC_SUBST(DOCS_GROFF)
AC_SUBST(DOCS_NROFF)
AC_SUBST(DOCS_NONE)

AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue7"] )
PROGRAM=$progname
AC_SUBST(PROGRAM)

AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[])
AC_MSG_CHECKING([if using setgid execute bit])
if test "x$enable_setgid" = "xno" ; then
GROUPOWNER=
elif test "x$enable_setgid" = "xyes" ; then
GROUPOWNER=games
elif test "x$enable_setgid" = "x" ; then
GROUPOWNER=
else
GROUPOWNER=$enable_setgid
fi

if test "x$GROUPOWNER" != "x" ; then
AC_DEFINE_UNQUOTED([GROUPOWNER],[$GROUPOWNER], [Define to group owner of setgid executable])
AC_MSG_RESULT([$GROUPOWNER])
else
AC_MSG_RESULT([no])
fi

AC_SUBST(GROUPOWNER)

AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[])
AC_MSG_CHECKING([for scoreboard file])
if test "x$enable_scorefile" = "xno" ; then
SCOREFILE=
elif test "x$enable_scorefile" = "xyes" ;  then
SCOREFILE=$progname.scr
elif test "x$enable_scorefile" = "x" ; then
SCOREFILE=$progname.scr
else
SCOREFILE=$enable_scorefile
fi

if test "x$SCOREFILE" != "x" ; then
AC_DEFINE_UNQUOTED([SCOREFILE], ["$SCOREFILE"], [Define to file to use for scoreboard])
AC_MSG_RESULT([$SCOREFILE])
else
AC_MSG_RESULT([disabled])
fi

AC_SUBST(SCOREFILE)

AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[])
AC_MSG_CHECKING([for log file])
if test "x$enable_logfile" = "xno" ; then
LOGFILE=
elif test "x$enable_logfile" = "xyes" ;  then
LOGFILE=$progname.log
elif test "x$enable_logfile" = "x" ; then
LOGFILE=$progname.log
else
LOGFILE=$enable_logfile
fi

if test "x$LOGFILE" != "x" ; then
AC_DEFINE_UNQUOTED([LOGFILE], ["$LOGFILE"], [Define to file to use for log])
AC_MSG_RESULT([$LOGFILE])
else
AC_MSG_RESULT([disabled])
fi

AC_SUBST(LOGFILE)

AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"])
AC_MSG_CHECKING([for save directory])
if test "x$enable_savedir" = "xno" ; then
SAVEDIR=
elif test "x$enable_savedir" = "xyes" -o "x$enable_savedir" = "x"; then
  if test "x$GROUPOWNER" != "x"; then
  SAVEDIR="/var/local/games/roguelike/${progname}save/"
  else
  SAVEDIR="$progname/"
  fi
else
SAVEDIR="$enable_savedir"
fi

if test "x$SAVEDIR" != "x" ; then
AC_DEFINE_UNQUOTED([SAVEDIR], ["$SAVEDIR"], [Define to systemwide directory for storing saved games])
AC_MSG_RESULT([$SAVEDIR])
else
AC_MSG_RESULT([disabled])
fi

AC_SUBST(SAVEDIR)

AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[])
AC_MSG_CHECKING([if wizard mode is enabled])
if test "x$enable_wizardmode" = "xno" ; then
AC_MSG_RESULT([no])
elif test "x$enable_wizardmode" = "x" ; then
AC_MSG_RESULT([no])
else
AC_DEFINE([WIZARD], [], [Define to include wizard mode])
AC_MSG_RESULT([yes])
fi

AC_ARG_ENABLE([limitscore],[AC_HELP_STRING([--enable-limitscore], [limit scores to one per class per uid @<:@default=no@:>@])],[],[])
AC_MSG_CHECKING([if limiting scores])
if test "x$enable_limitscore" = "xno" ; then
AC_MSG_RESULT([no])
elif test "x$enable_limitscore" = "x" ; then
AC_MSG_RESULT([no])
else
AC_DEFINE([LIMITSCORE], [], [Define to limit scores to one per class per uid])
AC_MSG_RESULT([yes])
fi

AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[])
AC_MSG_CHECKING([runtime execution limit (maximum online system users)])
if test "x$enable_maxusers" = "xyes" ; then
AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled])
AC_MSG_RESULT([100])
elif test "x$enable_maxusers" = "x" ; then
AC_MSG_RESULT([unlimited])
elif test "x$enable_maxusers" = "xno" ; then 
AC_MSG_RESULT([unlimited])
else
AC_DEFINE_UNQUOTED([MAXUSERS], [$enable_maxusers], [Define if maxusers feature should be enabled])
AC_MSG_RESULT([$enable_maxusers])
fi

AC_OUTPUT