#
# Empire - A multi-player, client/server Internet based war game.
-# Copyright (C) 1986-2015, Dave Pare, Jeff Bailey, Thomas Ruschak,
+# Copyright (C) 1986-2020, Dave Pare, Jeff Bailey, Thomas Ruschak,
# Ken Stevens, Steve McClure, Markus Armbruster
#
# Empire is free software: you can redistribute it and/or modify
# configure.ac: Autoconf input file
#
# Known contributors to this file:
-# Markus Armbruster, 2005-2015
+# Markus Armbruster, 2005-2020
#
# Process this file with autoconf to produce a configure script.
# Autoconf makes checking for and programming around assorted ancient
-# crap relatively painless. But why bother? Just rely on C89 and
-# POSIX, and when something breaks on some oddball machine, see
-# whether it's worth fixing.
-
-AC_PREREQ(2.64)
-AC_INIT([Wolfpack Empire], [4.3.34], [wolfpack@wolfpackempire.com], [empire],
+# crap relatively painless. But why bother? Just rely on POSIX, and
+# when something breaks on some oddball machine, see whether it's
+# worth fixing.
+
+AC_PREREQ(2.69)
+AC_INIT([Wolfpack Empire],
+ m4_esyscmd([build-aux/git-version-gen .tarball-version]),
+ [wolfpack@wolfpackempire.com], [empire],
[http://www.wolfpackempire.com/])
AC_CONFIG_SRCDIR([include/combat.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
-
### Checks for programs
AC_PROG_AWK
AC_PROG_INSTALL
AC_PROG_RANLIB
-AC_PROG_CC
+
+AC_PROG_CC_STDC
AM_PROG_CC_C_O
# Private automake macro, tsk, tsk, tsk...
_AM_DEPENDENCIES(CC)
+AC_DEFINE([_XOPEN_SOURCE], [600],
+ [Request POSIX-1.2001 with XSI Extension])
+# Note: this is after AC_PROG_CC_STDC, because Solaris cc fails with
+# _XOPEN_SOURCE unless switched to C99, which breaks AC_PROG_CC_STDC.
AC_ARG_VAR(NROFF, [nroff command])
AC_CHECK_PROG(NROFF, groff, [GROFF_NO_SGR= groff -Tascii -U], nroff)
# not really a check for a program, but close enough
-if test -d $srcdir/.git; then revctrl=git
+if test -d $srcdir/.git
+then revctrl=git
else revctrl=
fi
+if test "$revctrl" && test -r $srcdir/.tarball-version
+then AC_MSG_ERROR([$srcdir/.tarball-version must not exist])
+fi
AC_SUBST(revctrl,$revctrl)
# Not a program, but need to check this early
LIBS="$LIBS_SOCKETS $LIBS"
AX_LIB_SOCKET_NSL
LIBS_server="$LIBS"
+MY_WITH_READLINE
### Checks for header files
### Checks for typedefs, structures, and compiler characteristics
+if test "$GCC"
+then
+
# Enable useful warnings
# Some of them are commented out because the code needs cleanup first
# Clang needs to be tested with -Werror=unknown-warning-option
-fno-strict-aliasing dnl
-fno-strict-overflow])
+# Emit extra code to check for buffer overflows
+# Could fall back to -fstack-protector when -fstack-protector-strong
+# isnt't supported, for users of older compilers. Doesn't seem worth
+# the trouble, though.
+# Some ports of the GNU toolchain reportedly support it in the
+# compiler, but not libc. Use a test program that makes the compiler
+# emit the extra stack checking code, and test it compiles and links.
+AX_APPEND_LINK_FLAGS([-fstack-protector-strong], [], [],
+ [AC_LANG_SOURCE([[
+int
+main(int argc, char *argv[])
+{
+ char arr[64], *dst = arr, *src = argv[0];
+ while ((*dst++ = *src++)) ;
+}
+ ]])])
+
+fi # $GCC
+
### Checks for library functions
-AC_CHECK_FUNCS(getaddrinfo getpass)
+AC_CHECK_FUNCS(getaddrinfo)
+MY_WORKING_IN6_IS_ADDR_V4MAPPED
MY_FUNC_MAKECONTEXT
AC_MSG_NOTICE([])
AC_MSG_NOTICE([-= Configuration summary =-])
AC_MSG_NOTICE([Thread package: $empthread])
+AC_MSG_NOTICE([ readline: $with_readline])
AC_MSG_NOTICE([ terminfo: $with_terminfo])
AC_MSG_NOTICE([ EMPIREHOST: $EMPIREHOST])
AC_MSG_NOTICE([ EMPIREPORT: $EMPIREPORT])