Module: ngircd.git
Branch: master
Commit: 8e1beae4e7e57f5ef74fcc82532162a228e2e831
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=8e1beae4…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Sep 24 14:34:16 2012 +0200
Include all build-system files into distribution archives
---
Makefile.am | 2 ++
src/ipaddr/Makefile.ng | 2 ++
src/ngircd/Makefile.ng | 4 +++-
src/portab/Makefile.ng | 15 ++++++++-------
src/testsuite/Makefile.ng | 15 +++++++--------
src/tool/Makefile.ng | 2 ++
6 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 58f202c..53af9af 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
+
clean-local:
rm -f build-stamp*
rm -rf ngircd.dest
diff --git a/src/ipaddr/Makefile.ng b/src/ipaddr/Makefile.ng
index 3d5a5db..a376e25 100644
--- a/src/ipaddr/Makefile.ng
+++ b/src/ipaddr/Makefile.ng
@@ -5,6 +5,8 @@
__ng_Makefile_am_template__
+EXTRA_DIST = Makefile.ng
+
INCLUDES = -I$(srcdir)/../portab
noinst_LIBRARIES = libngipaddr.a
diff --git a/src/ngircd/Makefile.ng b/src/ngircd/Makefile.ng
index db3ecfe..8ee044d 100644
--- a/src/ngircd/Makefile.ng
+++ b/src/ngircd/Makefile.ng
@@ -1,6 +1,6 @@
#
# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2012 Alexander Barton (alex(a)barton.de)
+# Copyright (c)2001-2012 Alexander Barton (alex(a)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
@@ -11,6 +11,8 @@
__ng_Makefile_am_template__
+EXTRA_DIST = Makefile.ng
+
INCLUDES = -I$(srcdir)/../portab -I$(srcdir)/../tool -I$(srcdir)/../ipaddr
LINTARGS = -weak -warnunixlib +unixlib -booltype BOOLEAN \
diff --git a/src/portab/Makefile.ng b/src/portab/Makefile.ng
index 5681a53..e27980e 100644
--- a/src/portab/Makefile.ng
+++ b/src/portab/Makefile.ng
@@ -1,17 +1,18 @@
#
# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001,2002 by Alexander Barton (alex(a)barton.de)
+# Copyright (c)2001-2012 Alexander Barton (alex(a)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.
#
__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
diff --git a/src/testsuite/Makefile.ng b/src/testsuite/Makefile.ng
index fe642e8..40076b4 100644
--- a/src/testsuite/Makefile.ng
+++ b/src/testsuite/Makefile.ng
@@ -1,13 +1,12 @@
#
# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2011 Alexander Barton (alex(a)barton.de) and Contributors.
+# Copyright (c)2001-2012 Alexander Barton (alex(a)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.
#
__ng_Makefile_am_template__
@@ -15,7 +14,7 @@ __ng_Makefile_am_template__
INCLUDES = -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/Makefile.ng b/src/tool/Makefile.ng
index 807f24b..dc88420 100644
--- a/src/tool/Makefile.ng
+++ b/src/tool/Makefile.ng
@@ -11,6 +11,8 @@
__ng_Makefile_am_template__
+EXTRA_DIST = Makefile.ng
+
INCLUDES = -I$(srcdir)/../portab
noinst_LIBRARIES = libngtool.a
Module: ngircd.git
Branch: master
Commit: 192e304b94f239de13b0f10ca01f6694fe6eea40
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=192e304b…
Author: Alexander Barton <alex(a)barton.de>
Date: Sun Sep 23 17:55:48 2012 +0200
Change build system to support new and old GNU automake
Starting with GNU automake 1.12, the "de-ANSI-fication support" has been
removed, which ngIRCd used to enable building itself on very old systems.
Now the problem is, that using automake >= 1.12 isn't working because of
the now unsupported M4 macros. Therefore the solution that this patch
implements is to dynamically generate the automake input files with our
own ./autogen.sh script:
configure.ng => configure.in
Makefile.ng => Makefile.am
This is quite an ugly approach, but it works and enables us to:
1. use current automake >= 1.12 for development and "private builds",
2. still build distribution archives using automake 1.11.x that have
"de-ANSI-fication support" enabled in the generated Makefile's.
And if you are using Makefile's generated with a automake version newer
than 1.11.x (without "de-ANSI-fication support"), the ./configure script
warns you not to use this generated build system to generate distribution
archives.
Drawback of this patch: you MUST use our autogen.sh script, you can't call
the autoconf/automake commands directly any more; but autoreconf should
still work ...
---
.gitignore | 1 +
autogen.sh | 44 +++++++++++++++++++++++-----
configure.in => configure.ng | 10 ++++++-
src/ipaddr/.gitignore | 1 +
src/ipaddr/{Makefile.am => Makefile.ng} | 2 +-
src/ngircd/.gitignore | 1 +
src/ngircd/{Makefile.am => Makefile.ng} | 2 +-
src/portab/.gitignore | 1 +
src/portab/{Makefile.am => Makefile.ng} | 2 +-
src/testsuite/.gitignore | 1 +
src/testsuite/{Makefile.am => Makefile.ng} | 2 +-
src/tool/.gitignore | 1 +
src/tool/{Makefile.am => Makefile.ng} | 2 +-
13 files changed, 57 insertions(+), 13 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1990041..bfa3542 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/autogen.sh b/autogen.sh
index cca200b..d47d750 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 | egrep -o "([0-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
similarity index 97%
rename from configure.in
rename to configure.ng
index 949a383..25654f9 100644
--- a/configure.in
+++ b/configure.ng
@@ -61,7 +61,7 @@ AC_PROG_RANLIB
AC_C_CONST
AC_C_INLINE
-AM_C_PROTOTYPES
+__ng_PROTOTYPES__
# -- Hard coded system and compiler dependencies/features/options ... --
@@ -674,4 +674,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 0000000..08a6d72
--- /dev/null
+++ b/src/ipaddr/.gitignore
@@ -0,0 +1 @@
+Makefile.am
diff --git a/src/ipaddr/Makefile.am b/src/ipaddr/Makefile.ng
similarity index 88%
rename from src/ipaddr/Makefile.am
rename to src/ipaddr/Makefile.ng
index 6ce299f..3d5a5db 100644
--- a/src/ipaddr/Makefile.am
+++ b/src/ipaddr/Makefile.ng
@@ -3,7 +3,7 @@
# (c) 2008 Florian Westphal <fw(a)strlen.de>, public domain.
#
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
INCLUDES = -I$(srcdir)/../portab
diff --git a/src/ngircd/.gitignore b/src/ngircd/.gitignore
index c25ba5e..d1148bf 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
similarity index 98%
rename from src/ngircd/Makefile.am
rename to src/ngircd/Makefile.ng
index 3a411a9..db3ecfe 100644
--- a/src/ngircd/Makefile.am
+++ b/src/ngircd/Makefile.ng
@@ -9,7 +9,7 @@
# Please read the file COPYING, README and AUTHORS for more information.
#
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
INCLUDES = -I$(srcdir)/../portab -I$(srcdir)/../tool -I$(srcdir)/../ipaddr
diff --git a/src/portab/.gitignore b/src/portab/.gitignore
index 839a69f..9bac6ac 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.ng
similarity index 97%
rename from src/portab/Makefile.am
rename to src/portab/Makefile.ng
index a57ea49..5681a53 100644
--- a/src/portab/Makefile.am
+++ b/src/portab/Makefile.ng
@@ -10,7 +10,7 @@
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
#
-AUTOMAKE_OPTIONS = ansi2knr
+__ng_Makefile_am_template__
noinst_LIBRARIES = libngportab.a
diff --git a/src/testsuite/.gitignore b/src/testsuite/.gitignore
index 5884a48..b33a08f 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
similarity index 98%
rename from src/testsuite/Makefile.am
rename to src/testsuite/Makefile.ng
index 9dc76a7..fe642e8 100644
--- a/src/testsuite/Makefile.am
+++ b/src/testsuite/Makefile.ng
@@ -10,7 +10,7 @@
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
#
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
INCLUDES = -I$(srcdir)/../portab
diff --git a/src/tool/.gitignore b/src/tool/.gitignore
new file mode 100644
index 0000000..08a6d72
--- /dev/null
+++ b/src/tool/.gitignore
@@ -0,0 +1 @@
+Makefile.am
diff --git a/src/tool/Makefile.am b/src/tool/Makefile.ng
similarity index 94%
rename from src/tool/Makefile.am
rename to src/tool/Makefile.ng
index 8d6cda4..807f24b 100644
--- a/src/tool/Makefile.am
+++ b/src/tool/Makefile.ng
@@ -9,7 +9,7 @@
# Please read the file COPYING, README and AUTHORS for more information.
#
-AUTOMAKE_OPTIONS = ../portab/ansi2knr
+__ng_Makefile_am_template__
INCLUDES = -I$(srcdir)/../portab
Module: ngircd.git
Branch: master
Commit: a3f3a1097b41d96571c0606b7096aabeeccb8e70
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=a3f3a109…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Sep 24 17:46:22 2012 +0200
INSTALL: update GNU automake/autoconf requirements
---
INSTALL | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/INSTALL b/INSTALL
index 4e1cd2f..640df4e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -149,10 +149,14 @@ This step is therefore only interesting for developers.
autogen.sh produces the Makefile.in's, which are necessary for the configure
script itself, and some more files for make. To run autogen.sh you'll need
-GNU autoconf and GNU automake (use recent versions! autoconf 2.53 and
-automake 1.6.1 are known to work).
-
-Again: "end users" do not need this step!
+GNU autoconf and GNU automake: at least autoconf 2.61 and automake 1.10 are
+requird, newer is better. But don't use automake 1.12 or newer for creating
+distribution archives: it will work but lack "de-ANSI-fucation" support in the
+generated Makefile's! Stick with automake 1.11.x for this purpose ...
+So automake 1.11.x and autoconf 2.67+ is recommended.
+
+Again: "end users" do not need this step and neither need GNU autoconf nor GNU
+automake at all!
2): "./configure"
Module: ngircd.git
Branch: master
Commit: baed0618ed9e1a9140624205035d991d7852ee6b
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=baed0618…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Sep 24 10:22:21 2012 +0200
Loose GNU autoconf / automake requirements a bit
Now ngIRCd requires at least GNU autoconf 2.61 and automake 1.10, the
requirements of commit 67e882d4 have been too restrictive:
19.2 67e882d4 now
---------- --------- --------- ---------
autoconf >=2.50 >=2.67 >=2.61
automake >=1.6 >=1.11 >=1.10
The tools required now are supported by Debian GNU/Linux 4.0 "Etch",
RedHat Enterprise Linux 5, and Mac OS X 10.6.x for example.
I read the changelogs of autoconf and automake, and I think ther's nothing
that prevents it from working with these older versions; and we don't want
to force users to upgrade without real benefits.
Please note: the recommended versions are still autoconf 1.11.x and the
most recent autoconf release that works with automake 1.11.x!
---
configure.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.in b/configure.in
index 949a383..34c76e1 100644
--- a/configure.in
+++ b/configure.in
@@ -13,7 +13,7 @@ define(VERSION_ID,esyscmd(git describe|sed -e 's/rel-//g'|sed -e 's/-/~/'|tr -d
# -- Initialisation --
-AC_PREREQ([2.67])
+AC_PREREQ([2.61])
AC_INIT([ngIRCd], VERSION_ID,
[ngircd-ml(a)ngircd.barton.de], [ngircd], [http://ngircd.barton.de/])
@@ -21,7 +21,7 @@ AC_CONFIG_SRCDIR([src/ngircd/ngircd.c])
AC_CONFIG_HEADER([src/config.h])
AC_CANONICAL_HOST
-AM_INIT_AUTOMAKE([1.11])
+AM_INIT_AUTOMAKE([1.10])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Module: ngircd.git
Branch: master
Commit: e3e181f4b3eae0e552632bce19bdff990196938f
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=e3e181f4…
Author: Alexander Barton <alex(a)barton.de>
Date: Sun Sep 23 19:58:50 2012 +0200
Merge branch 'bug92-xop'
By Alexander Barton (5) and Sebastian Köhler (2)
* bug92-xop:
Fix NAMES/WHO response when client has multi-prefix
Fix prefix of "halfop" when "multi-prefix" is active
Clean up doc/.gitignore
doc/Modes.txt: add version number to new channel modes
Fix some "whitespace glitches"
Tests and documentation for xop
Implemented xop support
Conflicts (because of "multi-prefix fix"):
src/ngircd/irc-info.c
This fixes bug #92 "ngircd does not support XOP usermodes".
---