diff --git a/configure.ac b/configure.ac
index ce956ee..5bb0866 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,9 +1,10 @@
 dnl	This file is an input file used by the GNU "autoconf" program to
 dnl	generate the file "configure", which is run during Netrek installation
 dnl	to configure the system for the local environment.
-AC_INIT(name.c)
-AC_CANONICAL_SYSTEM
-AC_CONFIG_HEADER(config.h)
+AC_INIT
+AC_CONFIG_SRCDIR([name.c])
+AC_CANONICAL_TARGET
+AC_CONFIG_HEADERS([config.h])
 
 AC_PROG_INSTALL
 
@@ -11,7 +12,7 @@ AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_LN_S
 
-AC_AIX
+AC_USE_SYSTEM_EXTENSIONS
 
 AC_C_INLINE
 
@@ -26,18 +27,24 @@ AC_C_INLINE
 #--------------------------------------------------------------------
 
 AC_MSG_CHECKING(if fd_set requires sys/select.h)
-AC_TRY_COMPILE( [#include <sys/types.h>], [fd_set readMask, writeMask;],
-  AC_MSG_RESULT(no) ,
-  AC_EGREP_HEADER(fd_set, sys/select.h,
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[fd_set readMask, writeMask;]])],[AC_MSG_RESULT(no) ],[AC_EGREP_HEADER(fd_set, sys/select.h,
       AC_DEFINE(NEED_SYS_SELECT_H) AC_MSG_RESULT(yes),
-      AC_DEFINE(NO_FD_SET) AC_MSG_RESULT(fd_set missing)))
+      AC_DEFINE(NO_FD_SET) AC_MSG_RESULT(fd_set missing))])
 
 #--------------------------------------------------------------------
 #	Check for various typedefs and provide substitutes if
 #	they don't exist.
 #--------------------------------------------------------------------
 
-AC_HEADER_STDC
+m4_warn([obsolete],
+[The preprocessor macro `STDC_HEADERS' is obsolete.
+  Except in unusual embedded environments, you can safely include all
+  ISO C90 headers unconditionally.])dnl
+# Autoupdate added the next two lines to ensure that your configure
+# script's behavior did not change.  They are probably safe to remove.
+AC_CHECK_INCLUDES_DEFAULT
+AC_PROG_EGREP
+
 AC_CHECK_HEADERS(unistd.h memory.h math.h stdlib.h)
 AC_CHECK_HEADERS(sys/timeb.h sys/ptyio.h sys/fcntl.h fcntl.h)
 AC_CHECK_HEADERS(ctype.h machine/endian.h sys/resource.h)
@@ -46,7 +53,7 @@ AC_CHECK_HEADERS(sys/wait.h netinet/in.h netinet/tcp.h sys/filio.h)
 AC_TYPE_PID_T
 AC_TYPE_UID_T
 AC_TYPE_SIZE_T
-AC_FUNC_VFORK
+AC_FUNC_FORK
 AC_STRUCT_TM
 
 AC_MSG_CHECKING(for itimer in time.h)
@@ -80,7 +87,7 @@ if test -z "$NOX11" ; then
 if test -z "$x_libraries" ; then
 echo checking for X11 header files
 XINCLUDES=""
-AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
+AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <X11/Intrinsic.h>]])],[],[XINCLUDES="nope"])
 if test "$XINCLUDES" = nope; then
     dirs="/usr/unsupported/include /usr/local/include /usr/X386/include \
       /usr/include/X11R4 /usr/X11R5/include /usr/include/X11R5 \
@@ -165,7 +172,19 @@ AC_CHECK_LIB(sun, main, [LIBS="$LIBS -lsun"])
 #    	Check for type of signals
 #--------------------------------------------------------------------
 
-AC_TYPE_SIGNAL
+m4_warn([obsolete],
+[your code may safely assume C89 semantics that RETSIGTYPE is void.
+Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
+AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
+[AC_LANG_PROGRAM([#include <sys/types.h>
+#include <signal.h>
+],
+		 [return *(signal (0, 0)) (0) == 1;])],
+		   [ac_cv_type_signal=int],
+		   [ac_cv_type_signal=void])])
+AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
+		    (`int' or `void').])
+
 AC_CHECK_FUNCS(usleep random setstate strftime ftime)
 AC_CHECK_LIB(m, main, [LIBS="$LIBS -lm"])
 AC_CHECK_FUNCS(nint)
@@ -201,4 +220,5 @@ fi
 #--------------------------------------------------------------------
 #       Emit output
 #--------------------------------------------------------------------
-AC_OUTPUT(system.mk)
+AC_CONFIG_FILES([system.mk])
+AC_OUTPUT
