summaryrefslogtreecommitdiffstats
path: root/doc/bootstrap
blob: b852ce1c120a9e677eed54b0148ec70c9af66240 (plain) (blame)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/bin/sh
#
# helps bootstrapping, when checked out from CVS
# requires GNU autoconf and GNU automake
#
# $Id$

progname=`basename $0`
top_srcdir=`dirname $0`

verbose="";
quiet="false"
mode="generate"

usage()
{
  echo
  echo "usage: ${progname} [-h|-q|-v]"
  echo
  echo "options:"
  echo "	-h .. display this message and exit";
  echo "	-q .. quiet, don't display directories";
  echo "	-v .. verbose, pass -v to automake when invoking automake"
  echo "	-c .. clean, remove all aclocal/autoconf/automake generated files"
  echo
  exit 1;
}

generate()
{
  dir=$1
  amopts=$2
  aclocal_amflags=$3

  ( test "$quiet" = "true" || echo "$dir";
    cd $dir;
    aclocal $aclocal_amflags
    autoconf
    test -n "`grep CONFIG_HEADER configure.in`" && autoheader ;
    test -f Makefile.am && automake $amopts ;
    test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
      && echo timestamp > stamp-h.in
  )
}

while test $# -gt 0; do
case $1 in
-h|--he|--hel|--help)
  usage ;;
-q|--qu|--qui|--quie|--quiet)
  quiet="true";
  shift;;
-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
  verbose="-v";
  shift;;
-c|--cl|--cle|--clea|--clean)
  mode="clean";
  shift;;
-*) echo "unknown option $1" ;
  usage ;;
*) echo "invalid parameter $1" ;
  usage ;;
esac
done

case $mode in
generate)
 
  case $top_srcdir in
  /* ) aclocal_dir=$top_srcdir/aclocal
    ;;
  *) aclocal_dir=`pwd`/$top_srcdir/aclocal
    ;;
  esac
  if test -d $aclocal_dir; then
    aclocal_amflags="-I $aclocal_dir"
  fi

  confs=`find . -name 'configure.in' -print | sort`
  for i in $confs; do
    dir=`dirname $i`;
    generate $dir "-a $verbose" "$aclocal_amflags";
  done
  ;;

clean)
  test "$quiet" = "$true" || echo "removing automake support files"
  find . -name 'config.guess' -print | xargs rm -f
  find . -name 'config.sub' -print | xargs rm -f
  find . -name 'install-sh' -print | xargs rm -f
  find . -name 'missing' -print | xargs rm -f
  find . -name 'mkinstalldirs' -print | xargs rm -f

  test "$quiet" = "true" || echo "removing automake generated Makefile.in files"
  files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ;
  for i in $files; do if test -f $i; then
    rm -f $i
    test "$verbose" = "-v" && echo "$i"    
  fi; done

  test "$quiet" = "true" || echo "removing configure files"
  files=`find . -name 'configure' -print` ;
  test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
  for i in $files; do if test -f $i; then
    rm -f $i
    test "$verbose" = "-v" && echo "$i"
  fi; done
  
  test "$quiet" = "true" || echo "removing aclocal.m4 files"
  files=`find . -name 'aclocal.m4' -print` ;
  test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
  for i in $files; do if test -f $i; then
    rm -f $i
    test "$verbose" = "-v" && echo "$i"    
  fi; done

  find . -name '*~' -print | xargs rm -f
  find . -name '*.orig' -print | xargs rm -f
  find . -name '*.rej' -print | xargs rm -f
  find . -name 'config.status' -print | xargs rm -f
  find . -name 'config.log' -print | xargs rm -f
  find . -name 'config.cache' -print | xargs rm -f
  find . -name 'Makefile' -print | xargs rm -f
  find . -name '.deps' -print | xargs rm -rf
  find . -name '.libs' -print | xargs rm -rf
  find . -name 'stamp-h.in' | xargs rm -rf
  ;;
esac