Merge branch 'automake-am11-am12'

* automake-am11-am12:
  autogen.sh: detect automake version format a.b.c and a.b
  configure.ng: don't require GIT tree to detect version string
  Include .mailmap file in distribution archives
  Include all build-system files into distribution archives
  Change build system to support new and old GNU automake
This commit is contained in:
Alexander Barton 2012-09-24 20:28:02 +02:00
commit 8cfb910441
15 changed files with 113 additions and 56 deletions

1
.gitignore vendored
View File

@ -9,6 +9,7 @@ build-stamp-ngircd*
config.log config.log
config.status config.status
configure configure
configure.in
configure.lineno configure.lineno
cscope.out cscope.out
debian debian

View File

@ -13,6 +13,8 @@ AUTOMAKE_OPTIONS = gnu
SUBDIRS = doc src man contrib SUBDIRS = doc src man contrib
EXTRA_DIST = autogen.sh configure.ng .mailmap
clean-local: clean-local:
rm -f build-stamp* rm -f build-stamp*
rm -rf ngircd.dest rm -rf ngircd.dest

View File

@ -16,6 +16,11 @@
# GNU autoconf. It tries to be smart in finding the correct/usable/available # GNU autoconf. It tries to be smart in finding the correct/usable/available
# installed versions of these tools on your system. # 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, # The following strategy is used for each of aclocal, autoheader, automake,
# and autoconf: first, "tool" (the regular name of the tool, e. g. "autoconf" # 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 # 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 # Try to detect the needed tools when no environment variable already
# specifies one: # specifies one:
echo "Searching tools ..." echo "Searching for required tools ..."
[ -z "$ACLOCAL" ] && ACLOCAL=`Search aclocal 1` [ -z "$ACLOCAL" ] && ACLOCAL=`Search aclocal 1`
[ "$VERBOSE" = "1" ] && echo " - ACLOCAL=$ACLOCAL" [ "$VERBOSE" = "1" ] && echo " - ACLOCAL=$ACLOCAL"
[ -z "$AUTOHEADER" ] && AUTOHEADER=`Search autoheader 2` [ -z "$AUTOHEADER" ] && AUTOHEADER=`Search autoheader 2`
@ -139,9 +144,8 @@ echo "Searching tools ..."
[ -z "$AUTOCONF" ] && AUTOCONF=`Search autoconf 2` [ -z "$AUTOCONF" ] && AUTOCONF=`Search autoconf 2`
[ "$VERBOSE" = "1" ] && echo " - AUTOCONF=$AUTOCONF" [ "$VERBOSE" = "1" ] && echo " - AUTOCONF=$AUTOCONF"
# Call ./configure when parameters have been passed to this script and [ $# -gt 0 ] && CONFIGURE_ARGS=" $@" || CONFIGURE_ARGS=""
# GO isn't already defined. [ -z "$GO" -a -n "$CONFIGURE_ARGS" ] && GO=1
[ -z "$GO" -a $# -gt 0 ] && GO=1
# Verify that all tools have been found # Verify that all tools have been found
[ -z "$ACLOCAL" ] && Notfound aclocal [ -z "$ACLOCAL" ] && Notfound aclocal
@ -149,10 +153,37 @@ echo "Searching tools ..."
[ -z "$AUTOMAKE" ] && Notfound automake [ -z "$AUTOMAKE" ] && Notfound automake
[ -z "$AUTOCONF" ] && Notfound autoconf [ -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 export ACLOCAL AUTOHEADER AUTOMAKE AUTOCONF
# Generate files # Generate files
echo "Generating files ..." echo "Generating files using GNU $AUTOCONF and $AUTOMAKE ..."
Run $ACLOCAL && \ Run $ACLOCAL && \
Run $AUTOCONF && \ Run $AUTOCONF && \
Run $AUTOHEADER && \ Run $AUTOHEADER && \
@ -164,8 +195,7 @@ if [ $? -eq 0 -a -x ./configure ]; then
NAME=`grep PACKAGE_STRING= configure | cut -d"'" -f2` NAME=`grep PACKAGE_STRING= configure | cut -d"'" -f2`
if [ "$GO" = "1" ]; then if [ "$GO" = "1" ]; then
[ -n "$PREFIX" ] && p=" --prefix=$PREFIX" || p="" [ -n "$PREFIX" ] && p=" --prefix=$PREFIX" || p=""
[ -n "$*" ] && a=" $*" || a="" c="./configure${p}${CONFIGURE_ARGS}"
c="./configure${p}${a}"
echo "Okay, autogen.sh for $NAME done." echo "Okay, autogen.sh for $NAME done."
echo "Calling \"$c\" ..." echo "Calling \"$c\" ..."
$c $c

View File

@ -9,7 +9,12 @@
# Please read the file COPYING, README and AUTHORS for more information. # 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_ifdef([AM_SILENT_RULES],
[m4_define([ng_color_tests], [color-tests])], [m4_define([ng_color_tests], [color-tests])],
@ -65,7 +70,7 @@ AC_PROG_RANLIB
AC_C_CONST AC_C_CONST
AC_C_INLINE AC_C_INLINE
AM_C_PROTOTYPES __ng_PROTOTYPES__
# -- Hard coded system and compiler dependencies/features/options ... -- # -- Hard coded system and compiler dependencies/features/options ... --
@ -678,4 +683,12 @@ echo "$x_ssl_lib"
echo 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- # -eof-

1
src/ipaddr/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
Makefile.am

View File

@ -3,7 +3,9 @@
# (c) 2008 Florian Westphal <fw@strlen.de>, public domain. # (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 AM_CPPFLAGS = -I$(srcdir)/../portab

View File

@ -1,3 +1,4 @@
Makefile.am
check-help check-help
check-version check-version
ngircd ngircd

View File

@ -1,6 +1,6 @@
# #
# ngIRCd -- The Next Generation IRC Daemon # 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 # 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 # 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. # 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 AM_CPPFLAGS = -I$(srcdir)/../portab -I$(srcdir)/../tool -I$(srcdir)/../ipaddr

View File

@ -1 +1,2 @@
Makefile.am
portabtest portabtest

View File

@ -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-

35
src/portab/Makefile.ng Normal file
View File

@ -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-

View File

@ -1,3 +1,4 @@
Makefile.am
T-ngircd1 T-ngircd1
T-ngircd2 T-ngircd2
channel-test channel-test

View File

@ -1,21 +1,20 @@
# #
# ngIRCd -- The Next Generation IRC Daemon # 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 # This program is free software; you can redistribute it and/or modify
# der GNU General Public License (GPL), wie von der Free Software Foundation # it under the terms of the GNU General Public License as published by
# herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 # the Free Software Foundation; either version 2 of the License, or
# der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. # (at your option) any later version.
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste # Please read the file COPYING, README and AUTHORS for more information.
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
# #
AUTOMAKE_OPTIONS = ../portab/ansi2knr __ng_Makefile_am_template__
AM_CPPFLAGS = -I$(srcdir)/../portab AM_CPPFLAGS = -I$(srcdir)/../portab
EXTRA_DIST = \ 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 \ start-server.sh stop-server.sh tests.sh stress-server.sh \
test-loop.sh wait-tests.sh \ test-loop.sh wait-tests.sh \
channel-test.e connect-test.e check-idle.e invite-test.e \ channel-test.e connect-test.e check-idle.e invite-test.e \

1
src/tool/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
Makefile.am

View File

@ -9,7 +9,9 @@
# Please read the file COPYING, README and AUTHORS for more information. # 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 AM_CPPFLAGS = -I$(srcdir)/../portab