summaryrefslogtreecommitdiffstats
path: root/autogen.sh
blob: f2986e26a34bfbc126ee8bd0fcdd88603979be95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/sh
# $Id: autogen.sh 5312 2022-02-01 18:39:20Z chrfranke $
#
# Generate ./configure from configure.ac and Makefile.in from Makefile.am.
# This also adds files like missing,depcomp,install-sh to the source
# directory. To update these files at a later date use:
#	autoreconf -f -i -v

force=; warnings=
while [ $# -gt 0 ]; do case $1 in
  --force) force=$1; shift ;;
  --warnings=?*) warnings="${warnings} $1"; shift ;;
  *) echo "Usage: $0 [--force] [--warnings=CATEGORY ...]"; exit 1 ;;
esac; done

# Cygwin?
test -x /usr/bin/uname && /usr/bin/uname | grep -i CYGWIN >/dev/null &&
{
    # Check for Unix text file type
    echo > dostest.tmp
    test "`wc -c < dostest.tmp`" -eq 1 ||
        echo "Warning: DOS text file type set, 'make dist' and related targets will not work."
    rm -f dostest.tmp
}

# Find automake
if [ -n "$AUTOMAKE" ]; then
  ver=$("$AUTOMAKE" --version) || exit 1
else
  maxver=
  for v in 1.16 1.15 1.14 1.13 1.12 1.11 1.10; do
    minver=$v; test -n "$maxver" || maxver=$v
    ver=$(automake-$v --version 2>/dev/null) || continue
    AUTOMAKE="automake-$v"
    break
  done
  if [ -z "$AUTOMAKE" ]; then
    echo "GNU Automake $minver (up to $maxver) is required to bootstrap smartmontools from SVN."
    exit 1;
  fi
fi

ver=$(echo "$ver" | sed -n '1s,^.*[^.0-9]\([12]\.[0-9][-.0-9pl]*\).*$,\1,p')
if [ -z "$ver" ]; then
  echo "$AUTOMAKE: Unable to determine automake version."
  exit 1
fi

# Check aclocal
if [ -z "$ACLOCAL" ]; then
  ACLOCAL="aclocal$(echo "$AUTOMAKE" | sed -n 's,^.*automake\(-[.0-9]*\),\1,p')"
fi

"$ACLOCAL" --version >/dev/null || exit 1

# Warn if Automake version was not tested
amwarnings=$warnings
case "$ver" in
  1.10|1.10.[123]|1.11|1.11.[1-6]|1.12.[2-6]|1.13.[34])
    # OK
    ;;

  1.14|1.14.1|1.15|1.15.1|1.16|1.16.[1-5])
    # TODO: Enable 'subdir-objects' in configure.ac
    # For now, suppress 'subdir-objects' forward-incompatibility warning
    test -n "$warnings" || amwarnings="--warnings=no-unsupported"
    ;;

  *)
    echo "Note: GNU Automake version ${ver} was not tested by the developers."
    echo "Please report success/failure to the smartmontools-support mailing list."
esac

# required for aclocal-1.10 --install
test -d m4 || mkdir m4 || exit 1

set -e	# stops on error status

test -z "$warnings" || set -x

${ACLOCAL} -I m4 --install $force $warnings
autoheader $force $warnings
${AUTOMAKE} --add-missing --copy ${force:+--force-missing} $amwarnings
autoconf $force $warnings