Commit Diff


commit - 779446298c5d314d079189c304893c1d9ed60248
commit + 507a9e9cb336b409b2b975c9f3f380467b5bcf6b
blob - 6a292394c88d048d6239478b76f5d97eb963f61f
blob + 5e55ee1b1c689e9b052f6c5a97c092c7fca8d5db
--- autogen.sh
+++ autogen.sh
@@ -1,15 +1,108 @@
 #!/bin/sh
 #
-# $Id: autogen.sh,v 1.7 2003/04/22 10:15:46 alex Exp $
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2004 Alexander Barton <alex@barton.de>
 #
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: autogen.sh,v 1.8 2004/03/11 22:21:20 alex Exp $
+#
 
-WANT_AUTOMAKE=1.6
+Search()
+{
+	[ $# -eq 2 ] || exit 1
+
+	name="$1"
+	major="$2"
+	minor=99
+
+	type "${name}" >/dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		echo "${name}"
+		return 0
+	fi
+
+	while [ $minor -ge 0 ]; do
+		type "${name}${major}${minor}" >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			echo "${name}${major}${minor}"
+			return 0
+		fi
+		type "${name}-${major}.${minor}" >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			echo "${name}-${major}.${minor}" >/dev/null 2>&1
+		fi
+		minor=`expr $minor - 1`
+	done
+	return 1
+}
+
+Notfound()
+{
+	echo "Error: $* not found!"
+	echo "Please install recent versions of GNU autoconf and GNU automake."
+	exit 1
+}
+
+# Reset locale settings to suppress warning messages of Perl
+unset LC_ALL
+unset LANG
+
+# We want to use GNU automake 1.7, if available (WANT_AUTOMAKE is used by
+# the wrapper scripts of Gentoo Linux):
+WANT_AUTOMAKE=1.7
 export WANT_AUTOMAKE
 
-aclocal && \
- autoheader && \
- automake --add-missing && \
- autoconf && \
- echo "Okay, autogen.sh done."
+# Try to detect the needed tools when no environment variable already
+# spezifies one:
+echo "Searching tools ..."
+[ -z "$ACLOCAL" ] && ACLOCAL=`Search aclocal 1`
+[ -z "$AUTOHEADER" ] && AUTOHEADER=`Search autoheader 2`
+[ -z "$AUTOMAKE" ] && AUTOMAKE=`Search automake 1`
+[ -z "$AUTOCONF" ] && AUTOCONF=`Search autoconf 2`
 
+# Some debugging output ...
+if [ -n "$DEBUG" ]; then
+	echo "ACLOCAL=$ACLOCAL"
+	echo "AUTOHEADER=$AUTOHEADER"
+	echo "AUTOMAKE=$AUTOMAKE"
+	echo "AUTOCONF=$AUTOCONF"
+fi
+
+# Verify that all tools have been found
+[ -z "$AUTOCONF" ] && Notfounf autoconf
+[ -z "$AUTOHEADER" ] && Notfound autoheader
+[ -z "$AUTOMAKE" ] && Notfound automake
+[ -z "$AUTOCONF" ] && Notfound autoconf
+
+export AUTOCONF AUTOHEADER AUTOMAKE AUTOCONF
+
+# Generate files
+echo "Generating files ..."
+$ACLOCAL && \
+	$AUTOHEADER && \
+	$AUTOMAKE --add-missing && \
+	$AUTOCONF
+
+if [ $? -eq 0 ]; then
+	# Success: if we got some parameters we call ./configure and pass
+	# all of them to it.
+	if [ -n "$*" -a -x ./configure ]; then
+		echo "Calling generated \"configure\" script ..."
+		./configure $*
+		exit $?
+	else
+		echo "Okay, autogen.sh done; now run the \"configure\" script."
+		exit 0
+	fi
+else
+	# Failure!?
+	echo "Error! Check your installation of GNU automake and autoconf!"
+	exit 1
+fi
+
 # -eof-
blob - 8c5afcd36206f401eac90047733b789677dbee77
blob + cd54a6f62bb6a14a78f08b29a7a1b7e46764542d
--- configure.in
+++ configure.in
@@ -8,10 +8,10 @@
 # (at your option) any later version.
 # Please read the file COPYING, README and AUTHORS for more information.
 #
-# $Id: configure.in,v 1.100 2004/02/29 17:19:43 alex Exp $
+# $Id: configure.in,v 1.101 2004/03/11 22:21:20 alex Exp $
 #
 
-# -- Initialisierung --
+# -- Initialisation --
 
 AC_PREREQ(2.50)
 AC_INIT(ngircd, CVSHEAD)
@@ -20,7 +20,7 @@ AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE(1.6)
 AM_CONFIG_HEADER(src/config.h)
 
-# -- Templates fuer config.h --
+# -- Templates for config.h --
 
 AH_TEMPLATE([DEBUG], [Define if debug-mode should be enabled])
 AH_TEMPLATE([HAVE_socklen_t], [Define if socklen_t exists])
@@ -41,7 +41,7 @@ AH_TEMPLATE([TARGET_CPU], [Target CPU name])
 
 AC_PROG_CC
 
-# -- Hilfsprogramme --
+# -- Helper programs --
 
 AC_PROG_AWK
 AC_PROG_INSTALL
@@ -51,47 +51,25 @@ AC_PROG_RANLIB
 
 # -- Compiler Features --
 
-AC_LANG_C
-
 AM_C_PROTOTYPES
 AC_C_CONST
 
-# -- Defines --
+# -- Hard coded system and compiler dependencies/features/options ... --
 
-os=`uname`
-
-if test "$os" = "Linux" -o $os = "GNU"; then
-	# define _POSIX_SOURCE, _GNU_SOURCE and _BSD_SOURCE when compiling
-	# on Linux or Hurd (glibc-based systems):
-	AC_MSG_RESULT([detected ${os}, defining _POSIX_SOURCE, _GNU_SOURCE and _BSD_SOURCE])
-	add_DEFINES="-D_POSIX_SOURCE -D_GNU_SOURCE -D_BSD_SOURCE $add_DEFINES"
+if test "$GCC" = "yes"; then
+	# We are using the GNU C compiler. Good!
+	CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes"
 fi
 
-if test "$os" = "A/UX"; then
-	# define _POSIX_SOURCE when compiling on A/UX:
-	AC_MSG_RESULT([detected A/UX, defining _POSIX_SOURCE])
-	add_DEFINES="-D_POSIX_SOURCE $add_DEFINES"
-fi
+# Add additional CFLAGS, eventually specified on the command line:
+test -n "$CFLAGS_ADD" && CFLAGS="$CFLAGS $CFLAGS_ADD"
 
-if test "$os" = "HP-UX"; then
-	# define _XOPEN_SOURCE_EXTENDED when compiling on HP-UX (11.11):
-	AC_MSG_RESULT([detected HP-UX, defining _XOPEN_SOURCE_EXTENDED])
-	add_DEFINES="-D_XOPEN_SOURCE_EXTENDED $add_DEFINES"
-fi
+CFLAGS="$CFLAGS -DSYSCONFDIR='\"\$(sysconfdir)\"'"
 
-if test "$os" = "SunOS"; then
-	# define _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED=1 and __EXTENSIONS__
-	# when compiling on SunOS (tested with 5.6):
-	AC_MSG_RESULT([detected SunOS, defining _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED=1 and __EXTENSIONS__])
-	add_DEFINES="-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D__EXTENSIONS__ $add_DEFINES"
-fi
+# -- Headers --
 
-# -- Header --
-
 AC_HEADER_STDC
-
 AC_HEADER_TIME
-
 AC_HEADER_SYS_WAIT
 
 AC_CHECK_HEADERS([ \
@@ -101,7 +79,7 @@ AC_CHECK_HEADERS([ \
 
 AC_CHECK_HEADERS([arpa/inet.h ctype.h malloc.h stdint.h varargs.h])
 
-# -- Datentypen --
+# -- Datatypes --
 
 AC_MSG_CHECKING(whether socklen_t exists)
 AC_TRY_COMPILE([
@@ -117,7 +95,6 @@ AC_TRY_COMPILE([
 ])
 
 AC_TYPE_SIGNAL
-
 AC_TYPE_SIZE_T
 
 # -- Libraries --
@@ -126,18 +103,15 @@ AC_CHECK_LIB(UTIL,memmove)
 AC_CHECK_LIB(socket,bind)
 AC_CHECK_LIB(nsl,gethostent)
 
-# -- Funktionen --
+# -- Functions --
 
-AC_FUNC_MALLOC
-
 AC_FUNC_FORK
-
 AC_FUNC_STRFTIME
 
 AC_CHECK_FUNCS([ \
-	bind gethostbyaddr gethostbyname gethostname inet_ntoa memmove \
-	memset setsockopt socket strcasecmp strchr strerror strstr waitpid \
-	],,AC_MSG_ERROR([required function missing!]))
+	bind gethostbyaddr gethostbyname gethostname inet_ntoa malloc memmove \
+	memset realloc setsid setsockopt socket strcasecmp strchr strerror \
+	strstr waitpid],,AC_MSG_ERROR([required function missing!]))
 
 AC_CHECK_FUNCS(inet_aton isdigit sigaction snprintf vsnprintf strlcpy strlcat)
 
@@ -145,7 +119,7 @@ AC_CHECK_FUNCS(select,[AC_CHECK_HEADERS(sys/select.h)]
 	AC_MSG_ERROR([required function select() is missing!])
 )
 
-# -- Konfigurationsoptionen --
+# -- Configuration options --
 
 x_syslog_on=no
 AC_ARG_WITH(syslog,
@@ -264,6 +238,7 @@ AC_ARG_ENABLE(debug,
 )
 if test "$x_debug_on" = "yes"; then
 	AC_DEFINE(DEBUG, 1)
+	test "$GCC" = "yes" && CFLAGS="-pedantic $CFLAGS"
 fi
 
 x_strict_rfc_on=no
@@ -275,52 +250,16 @@ AC_ARG_ENABLE(strict-rfc,
 	fi
 )
 
-# -- Definitionen --
+# -- Definitions --
 
 AC_DEFINE_UNQUOTED(TARGET_CPU, "$target_cpu" )
 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "$target_vendor" )
 AC_DEFINE_UNQUOTED(TARGET_OS, "$target_os" )
 
-# -- Variablen --
+# Add additional CFLAGS, eventually specified on the command line, but after
+# running this configure script. Useful for "-Werror" for example.
+test -n "$CFLAGS_END" && CFLAGS="$CFLAGS $CFLAGS_END"
 
-if test "$GCC" = "yes"; then
-	the_CFLAGS="-Wmissing-declarations -Wpointer-arith -Wstrict-prototypes"
-	ansi=" -ansi"
-	pedantic=" -pedantic"
-
-	$CC --version | grep 20020420 >/dev/null 2>&1
-	if test $? -eq 0; then
-		# Mac OS X (and Darwin?) ship with a slightly broken
-		# prerelease of GCC 3.1 which don't like -pedantic:
-		AC_MSG_RESULT([detected broken GNU C compiler, disabling "-pedantic"])
-		pedantic=""
-	fi
-
-	$CC --version | grep 20030304 >/dev/null 2>&1
-	if test $? -eq 0; then
-		# Mac OS X 10.3 (and Darwin 7.0?) have a strange gcc (or
-		# system header files?) which produces lots of errors when
-		# using -ansi; so we don't =:-)
-		AC_MSG_RESULT([detected broken GNU C compiler, disabling "-ansi"])
-		ansi=""
-	fi
-
-	uname | grep "CYGWIN" >/dev/null 2>&1
-	if test $? -eq 0; then
-		# The include files of Cygwin don't like -ansi,
-		# so we disable it:
-		AC_MSG_RESULT([detected Cygwin, disabling "-ansi"])
-		ansi=""
-	fi
-
-	add_CFLAGS="-pipe -Wall -W${ansi}${pedantic} $CFLAGS $CFLAGS_ADD"
-else
-	the_CFLAGS="$CFLAGS"
-	add_CFLAGS="$CFLAGS_ADD"
-fi
-
-CFLAGS="$the_CFLAGS $add_CFLAGS $add_DEFINES -DSYSCONFDIR='\"\$(sysconfdir)\"'"
-
 # -- Generate files --
 
 AC_OUTPUT([ \
@@ -337,6 +276,14 @@ AC_OUTPUT([ \
 	contrib/MacOSX/Makefile \
 ])
 
+type dpkg >/dev/null 2>&1
+if test $? -eq 0; then
+	# Generate debian/ link if the dpkg command exists
+	# (read: if we are running on a debian compatible system)
+	echo "creating Debian-specific links ..."
+	test -f debian/rules || ln -s contrib/Debian debian
+fi
+
 # -- Result --
 
 echo
@@ -352,9 +299,7 @@ D=`eval echo ${datadir}/doc/${PACKAGE}` ; D=`eval echo
 
 echo "               Host: ${host}"
 echo "           Compiler: ${CC}"
-echo "     Compiler flags: ${the_CFLAGS}"
-test -n "$add_CFLAGS"	&& echo "                     ${add_CFLAGS}"
-test -n "$add_DEFINES"	&& echo "                     ${add_DEFINES}"
+test -n "$CFLAGS"	&& echo "     Compiler flags: ${CFLAGS}"
 test -n "$CPPFLAGS"	&& echo " Preprocessor flags: ${CPPFLAGS}"
 test -n "$LDFLAGS"	&& echo "       Linker flags: ${LDFLAGS}"
 test -n "$LIBS"		&& echo "          Libraries: ${LIBS}"