summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am2
-rwxr-xr-xautogen.sh44
-rw-r--r--configure.ng (renamed from configure.in)17
-rw-r--r--src/ipaddr/.gitignore1
-rw-r--r--src/ipaddr/Makefile.ng (renamed from src/ipaddr/Makefile.am)4
-rw-r--r--src/ngircd/.gitignore1
-rw-r--r--src/ngircd/Makefile.ng (renamed from src/ngircd/Makefile.am)6
-rw-r--r--src/portab/.gitignore1
-rw-r--r--src/portab/Makefile.am34
-rw-r--r--src/portab/Makefile.ng35
-rw-r--r--src/testsuite/.gitignore1
-rw-r--r--src/testsuite/Makefile.ng (renamed from src/testsuite/Makefile.am)17
-rw-r--r--src/tool/.gitignore1
-rw-r--r--src/tool/Makefile.ng (renamed from src/tool/Makefile.am)4
15 files changed, 113 insertions, 56 deletions
diff --git a/.gitignore b/.gitignore
index 19900414..bfa35421 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ build-stamp-ngircd*
 config.log
 config.status
 configure
+configure.in
 configure.lineno
 cscope.out
 debian
diff --git a/Makefile.am b/Makefile.am
index 58f202c9..b451b78b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,6 +13,8 @@ AUTOMAKE_OPTIONS = gnu
 
 SUBDIRS = doc src man contrib
 
+EXTRA_DIST = autogen.sh configure.ng .mailmap
+
 clean-local:
 	rm -f build-stamp*
 	rm -rf ngircd.dest
diff --git a/autogen.sh b/autogen.sh
index cca200b2..47c476c7 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -16,6 +16,11 @@
 # GNU autoconf. It tries to be smart in finding the correct/usable/available
 # installed versions of these tools on your system.
 #
+# In addition, it enables or disables the "de-ANSI-fication" support of GNU
+# automake, which is supported up to autoconf 1.11.x an has been removed
+# in automake 1.12 -- make sure to use a version of automake supporting it
+# when generating distribution archives!
+#
 # The following strategy is used for each of aclocal, autoheader, automake,
 # and autoconf: first, "tool" (the regular name of the tool, e. g. "autoconf"
 # or "automake") is checked. If this fails, "tool<major><minor>" (for example
@@ -129,7 +134,7 @@ fi
 
 # Try to detect the needed tools when no environment variable already
 # specifies one:
-echo "Searching tools ..."
+echo "Searching for required tools ..."
 [ -z "$ACLOCAL" ] && ACLOCAL=`Search aclocal 1`
 [ "$VERBOSE" = "1" ] && echo " - ACLOCAL=$ACLOCAL"
 [ -z "$AUTOHEADER" ] && AUTOHEADER=`Search autoheader 2`
@@ -139,9 +144,8 @@ echo "Searching tools ..."
 [ -z "$AUTOCONF" ] && AUTOCONF=`Search autoconf 2`
 [ "$VERBOSE" = "1" ] && echo " - AUTOCONF=$AUTOCONF"
 
-# Call ./configure when parameters have been passed to this script and
-# GO isn't already defined.
-[ -z "$GO" -a $# -gt 0 ] && GO=1
+[ $# -gt 0 ] && CONFIGURE_ARGS=" $@" || CONFIGURE_ARGS=""
+[ -z "$GO" -a -n "$CONFIGURE_ARGS" ] && GO=1
 
 # Verify that all tools have been found
 [ -z "$ACLOCAL" ] && Notfound aclocal
@@ -149,10 +153,37 @@ echo "Searching tools ..."
 [ -z "$AUTOMAKE" ] && Notfound automake
 [ -z "$AUTOCONF" ] && Notfound autoconf
 
+AM_VERSION=`$AUTOMAKE --version|head -n 1|egrep -o "([1-9]\.[0-9]+(\.[0-9]+)*)"`
+ifs=$IFS; IFS="."; set $AM_VERSION; IFS=$ifs
+AM_MAJOR="$1"; AM_MINOR="$2"; AM_PATCHLEVEL="$3"
+
+AM_MAKEFILES="src/ipaddr/Makefile.ng src/ngircd/Makefile.ng src/testsuite/Makefile.ng src/tool/Makefile.ng"
+
+if [ "$AM_MAJOR" -eq "1" -a "$AM_MINOR" -lt "12" ]; then
+	# automake < 1.12 => automatic de-ANSI-fication support available
+	echo "Enabling de-ANSI-fication support (automake $AM_VERSION) ..."
+	sed -e "s|^__ng_PROTOTYPES__|AM_C_PROTOTYPES|g" configure.ng >configure.in
+	DEANSI_START=""
+	DEANSI_END=""
+else
+	# automake >= 1.12 => no de-ANSI-fication support available
+	echo "Disabling de-ANSI-fication support (automake $AM_VERSION) ..."
+	sed -e "s|^__ng_PROTOTYPES__|AC_C_PROTOTYPES|g" configure.ng >configure.in
+	DEANSI_START="#"
+	DEANSI_END="	# disabled by ./autogen.sh script"
+fi
+sed -e "s|^__ng_Makefile_am_template__|${DEANSI_START}AUTOMAKE_OPTIONS = ansi2knr${DEANSI_END}|g" \
+	src/portab/Makefile.ng >src/portab/Makefile.am
+for makefile_ng in $AM_MAKEFILES; do
+	makefile_am=`echo "$makefile_ng" | sed -e "s|\.ng\$|\.am|g"`
+	sed -e "s|^__ng_Makefile_am_template__|${DEANSI_START}AUTOMAKE_OPTIONS = ../portab/ansi2knr${DEANSI_END}|g" \
+		$makefile_ng >$makefile_am
+done
+
 export ACLOCAL AUTOHEADER AUTOMAKE AUTOCONF
 
 # Generate files
-echo "Generating files ..."
+echo "Generating files using GNU $AUTOCONF and $AUTOMAKE ..."
 Run $ACLOCAL && \
 	Run $AUTOCONF && \
 	Run $AUTOHEADER && \
@@ -164,8 +195,7 @@ if [ $? -eq 0 -a -x ./configure ]; then
 	NAME=`grep PACKAGE_STRING= configure | cut -d"'" -f2`
 	if [ "$GO" = "1" ]; then
 		[ -n "$PREFIX" ] && p=" --prefix=$PREFIX" || p=""
-		[ -n "$*" ] && a=" $*" || a=""
-		c="./configure${p}${a}"
+		c="./configure${p}${CONFIGURE_ARGS}"
 		echo "Okay, autogen.sh for $NAME done."
 		echo "Calling \"$c\" ..."
 		$c
diff --git a/configure.in b/configure.ng
index ac7c0cbd..7f3e2d99 100644
--- a/configure.in
+++ b/configure.ng
@@ -9,7 +9,12 @@
 # Please read the file COPYING, README and AUTHORS for more information.
 #
 
-define(VERSION_ID,esyscmd(git describe|sed -e 's/rel-//g'|sed -e 's/-/~/'|tr -d \\n))
+define(VERSION_ID,esyscmd([
+	V=`git describe 2>/dev/null | sed -e 's/rel-//g' | sed -e 's/-/~/'`;
+	[ -z "$V" -a -r configure ] \
+		&& V=`grep "PACKAGE_STRING=" configure | cut -d"'" -f2 | cut -d' ' -f2`
+	( [ -n "$V" ] && echo "$V" || echo "??" ) | tr -d '\n';
+]))
 
 m4_ifdef([AM_SILENT_RULES],
 	[m4_define([ng_color_tests], [color-tests])],
@@ -65,7 +70,7 @@ AC_PROG_RANLIB
 
 AC_C_CONST
 AC_C_INLINE
-AM_C_PROTOTYPES
+__ng_PROTOTYPES__
 
 # -- Hard coded system and compiler dependencies/features/options ... --
 
@@ -678,4 +683,12 @@ echo "$x_ssl_lib"
 
 echo
 
+if ! grep "^AUTOMAKE_OPTIONS = ../portab/ansi2knr" src/ngircd/Makefile.am >/dev/null 2>&1; then
+	echo "WARNING:"
+	echo "This GNU automake generated build system does not support \"de-ANSI-fication\","
+	echo "therefore don't use it to generate \"official\" distribution archives!"
+	echo "(Most probably you want to use GNU automake 1.11.x for this purpose ...)"
+	echo
+fi
+
 # -eof-
diff --git a/src/ipaddr/.gitignore b/src/ipaddr/.gitignore
new file mode 100644
index 00000000..08a6d725
--- /dev/null
+++ b/src/ipaddr/.gitignore
@@ -0,0 +1 @@
+Makefile.am
diff --git a/src/ipaddr/Makefile.am b/src/ipaddr/Makefile.ng
index e898d64b..cea6899e 100644
--- a/src/ipaddr/Makefile.am
+++ b/src/ipaddr/Makefile.ng
@@ -3,7 +3,9 @@
 # (c) 2008 Florian Westphal <fw@strlen.de>, public domain.
 #
 
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
+
+EXTRA_DIST = Makefile.ng
 
 AM_CPPFLAGS = -I$(srcdir)/../portab
 
diff --git a/src/ngircd/.gitignore b/src/ngircd/.gitignore
index c25ba5e3..d1148bfb 100644
--- a/src/ngircd/.gitignore
+++ b/src/ngircd/.gitignore
@@ -1,3 +1,4 @@
+Makefile.am
 check-help
 check-version
 ngircd
diff --git a/src/ngircd/Makefile.am b/src/ngircd/Makefile.ng
index b4091350..5c853352 100644
--- a/src/ngircd/Makefile.am
+++ b/src/ngircd/Makefile.ng
@@ -1,6 +1,6 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2012 Alexander Barton (alex@barton.de)
+# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
 #
 # 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
@@ -9,7 +9,9 @@
 # Please read the file COPYING, README and AUTHORS for more information.
 #
 
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
+
+EXTRA_DIST = Makefile.ng
 
 AM_CPPFLAGS = -I$(srcdir)/../portab -I$(srcdir)/../tool -I$(srcdir)/../ipaddr
 
diff --git a/src/portab/.gitignore b/src/portab/.gitignore
index 839a69fd..9bac6ac1 100644
--- a/src/portab/.gitignore
+++ b/src/portab/.gitignore
@@ -1 +1,2 @@
+Makefile.am
 portabtest
diff --git a/src/portab/Makefile.am b/src/portab/Makefile.am
deleted file mode 100644
index a57ea495..00000000
--- a/src/portab/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001,2002 by Alexander Barton (alex@barton.de)
-#
-# Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen
-# der GNU General Public License (GPL), wie von der Free Software Foundation
-# herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2
-# der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version.
-# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
-# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
-#
-
-AUTOMAKE_OPTIONS = ansi2knr
-
-noinst_LIBRARIES = libngportab.a
-
-libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c waitpid.c
-
-check_PROGRAMS = portabtest
-
-portabtest_SOURCES = portabtest.c
-
-portabtest_LDFLAGS = -L.
-
-portabtest_LDADD = -lngportab
-
-noinst_HEADERS = imp.h exp.h portab.h splint.h
-
-maintainer-clean-local:
-	rm -f Makefile Makefile.in
-
-TESTS = portabtest
-
-# -eof-
diff --git a/src/portab/Makefile.ng b/src/portab/Makefile.ng
new file mode 100644
index 00000000..e27980ee
--- /dev/null
+++ b/src/portab/Makefile.ng
@@ -0,0 +1,35 @@
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
+#
+# 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.
+#
+
+__ng_Makefile_am_template__
+
+EXTRA_DIST = Makefile.ng
+
+noinst_LIBRARIES = libngportab.a
+
+libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c waitpid.c
+
+check_PROGRAMS = portabtest
+
+portabtest_SOURCES = portabtest.c
+
+portabtest_LDFLAGS = -L.
+
+portabtest_LDADD = -lngportab
+
+noinst_HEADERS = imp.h exp.h portab.h splint.h
+
+maintainer-clean-local:
+	rm -f Makefile Makefile.in
+
+TESTS = portabtest
+
+# -eof-
diff --git a/src/testsuite/.gitignore b/src/testsuite/.gitignore
index 5884a486..b33a08f4 100644
--- a/src/testsuite/.gitignore
+++ b/src/testsuite/.gitignore
@@ -1,3 +1,4 @@
+Makefile.am
 T-ngircd1
 T-ngircd2
 channel-test
diff --git a/src/testsuite/Makefile.am b/src/testsuite/Makefile.ng
index 5a2a9412..b47ba0e5 100644
--- a/src/testsuite/Makefile.am
+++ b/src/testsuite/Makefile.ng
@@ -1,21 +1,20 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors.
+# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
 #
-# Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen
-# der GNU General Public License (GPL), wie von der Free Software Foundation
-# herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2
-# der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version.
-# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
-# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
+# 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.
 #
 
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
 
 AM_CPPFLAGS = -I$(srcdir)/../portab
 
 EXTRA_DIST = \
-	README functions.inc getpid.sh \
+	Makefile.ng README functions.inc getpid.sh \
 	start-server.sh stop-server.sh tests.sh stress-server.sh \
 	test-loop.sh wait-tests.sh \
 	channel-test.e connect-test.e check-idle.e invite-test.e \
diff --git a/src/tool/.gitignore b/src/tool/.gitignore
new file mode 100644
index 00000000..08a6d725
--- /dev/null
+++ b/src/tool/.gitignore
@@ -0,0 +1 @@
+Makefile.am
diff --git a/src/tool/Makefile.am b/src/tool/Makefile.ng
index a515b4d3..460f1148 100644
--- a/src/tool/Makefile.am
+++ b/src/tool/Makefile.ng
@@ -9,7 +9,9 @@
 # Please read the file COPYING, README and AUTHORS for more information.
 #
 
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
+
+EXTRA_DIST = Makefile.ng
 
 AM_CPPFLAGS = -I$(srcdir)/../portab