[282cb9c] | 1 | #! /bin/sh |
---|
[9b8baa1] | 2 | # |
---|
[e619c28] | 3 | # helps bootstrapping, when checked out from CVS |
---|
| 4 | # requires GNU autoconf and GNU automake |
---|
[9b8baa1] | 5 | # |
---|
| 6 | # $Id$ |
---|
[e619c28] | 7 | |
---|
| 8 | # this is not meant to be exported outside the source tree |
---|
| 9 | |
---|
| 10 | # NOTE: Inspired by libtool's autogen script |
---|
| 11 | |
---|
| 12 | # to be run from the toplevel directory of RTEMS' |
---|
| 13 | # source tree |
---|
| 14 | |
---|
| 15 | progname=`basename $0` |
---|
[df49c60] | 16 | top_srcdir=`dirname $0` |
---|
| 17 | |
---|
[8cdb582] | 18 | verbose=""; |
---|
[e619c28] | 19 | quiet="false" |
---|
[8cdb582] | 20 | mode="generate" |
---|
[e619c28] | 21 | |
---|
| 22 | usage() |
---|
| 23 | { |
---|
[7e03d10] | 24 | echo |
---|
[77fff592] | 25 | echo "usage: ${progname} [-c|-p|-h] [-q][-v]" |
---|
[7e03d10] | 26 | echo |
---|
| 27 | echo "options:" |
---|
[8cdb582] | 28 | echo " -c .. clean, remove all aclocal/autoconf/automake generated files" |
---|
[77fff592] | 29 | echo " -h .. display this message and exit" |
---|
| 30 | echo " -p .. regenerate preinstall.am files" |
---|
| 31 | echo " -q .. quiet, don't display directories" |
---|
| 32 | echo " -v .. verbose, pass -v to autotools" |
---|
[7e03d10] | 33 | echo |
---|
[e619c28] | 34 | exit 1; |
---|
| 35 | } |
---|
| 36 | |
---|
[282cb9c] | 37 | generate_bspdir_acinclude() |
---|
| 38 | { |
---|
| 39 | cat << EOF > acinclude.m4~ |
---|
[1d3713ef] | 40 | # RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY) |
---|
[282cb9c] | 41 | AC_DEFUN([RTEMS_CHECK_BSPDIR], |
---|
| 42 | [ |
---|
[1d3713ef] | 43 | case "\$1" in |
---|
[282cb9c] | 44 | EOF |
---|
| 45 | |
---|
| 46 | for i in */bsp_specs; do |
---|
| 47 | d=`dirname $i` |
---|
| 48 | cat << EOF >> acinclude.m4~ |
---|
| 49 | $d ) |
---|
| 50 | AC_CONFIG_SUBDIRS([$d]);; |
---|
| 51 | EOF |
---|
| 52 | done |
---|
| 53 | cat << EOF >> acinclude.m4~ |
---|
| 54 | *) |
---|
| 55 | AC_MSG_ERROR([Invalid BSP]);; |
---|
| 56 | esac |
---|
| 57 | ]) |
---|
| 58 | EOF |
---|
| 59 | if cmp -s acinclude.m4 acinclude.m4~ 2>/dev/null; then |
---|
| 60 | echo "acinclude.m4 is unchanged"; |
---|
| 61 | else |
---|
| 62 | cp acinclude.m4~ acinclude.m4 |
---|
| 63 | fi |
---|
| 64 | rm -f acinclude.m4~ |
---|
| 65 | } |
---|
| 66 | |
---|
[76d527ec] | 67 | if test ! -f $top_srcdir/aclocal/version.m4; then |
---|
[7e03d10] | 68 | echo "${progname}:" |
---|
[76d527ec] | 69 | echo " Installation problem: Can't find file aclocal/version.m4" |
---|
[7e03d10] | 70 | exit 1; |
---|
| 71 | fi |
---|
| 72 | |
---|
[e619c28] | 73 | while test $# -gt 0; do |
---|
| 74 | case $1 in |
---|
[7e03d10] | 75 | -h|--he|--hel|--help) |
---|
| 76 | usage ;; |
---|
[e619c28] | 77 | -q|--qu|--qui|--quie|--quiet) |
---|
| 78 | quiet="true"; |
---|
| 79 | shift;; |
---|
| 80 | -v|--ve|--ver|--verb|--verbo|--verbos|--verbose) |
---|
| 81 | verbose="-v"; |
---|
| 82 | shift;; |
---|
[8cdb582] | 83 | -c|--cl|--cle|--clea|--clean) |
---|
| 84 | mode="clean"; |
---|
| 85 | shift;; |
---|
[77fff592] | 86 | -p|--pr|--pre|--prei|--prein|--preins|--preinst) |
---|
| 87 | mode="preinstall"; |
---|
| 88 | shift;; |
---|
[3031e6c] | 89 | -r|--re|--rec|--reco|--recon|--reconf) |
---|
| 90 | mode="autoreconf"; |
---|
| 91 | shift;; |
---|
[e619c28] | 92 | -*) echo "unknown option $1" ; |
---|
| 93 | usage ;; |
---|
| 94 | *) echo "invalid parameter $1" ; |
---|
| 95 | usage ;; |
---|
| 96 | esac |
---|
| 97 | done |
---|
| 98 | |
---|
[8cdb582] | 99 | case $mode in |
---|
[77fff592] | 100 | preinstall) |
---|
| 101 | confs=`find -name Makefile.am -exec grep -l 'include .*/preinstall\.am' {} \;` |
---|
| 102 | for i in $confs; do |
---|
| 103 | dir=$(dirname $i); |
---|
| 104 | test "$quite" = "true" || echo "Generating $dir/preinstall.am" |
---|
| 105 | ${top_srcdir}/ampolish3 "$dir/Makefile.am" > "$dir/preinstall.am" |
---|
| 106 | done |
---|
| 107 | ;; |
---|
| 108 | |
---|
[8cdb582] | 109 | generate) |
---|
[d854517] | 110 | AUTOCONF=${AUTOCONF-autoconf} |
---|
[58fd5ab] | 111 | if test -z "$AUTOCONF"; then |
---|
| 112 | echo "You must have autoconf installed to run $program" |
---|
[0b22af6] | 113 | exit 1 |
---|
[58fd5ab] | 114 | fi |
---|
[0b22af6] | 115 | |
---|
| 116 | AUTOHEADER=${AUTOHEADER-autoheader} |
---|
| 117 | if test -z "$AUTOHEADER"; then |
---|
| 118 | echo "You must have autoconf installed to run $program" |
---|
| 119 | exit 1 |
---|
[58fd5ab] | 120 | fi |
---|
| 121 | |
---|
[d854517] | 122 | AUTOMAKE=${AUTOMAKE-automake} |
---|
[58fd5ab] | 123 | if test -z "$AUTOMAKE"; then |
---|
| 124 | echo "You must have automake installed to run $program" |
---|
[0b22af6] | 125 | exit 1 |
---|
[58fd5ab] | 126 | fi |
---|
| 127 | |
---|
[0b22af6] | 128 | ACLOCAL=${ACLOCAL-aclocal} |
---|
| 129 | if test -z "$ACLOCAL"; then |
---|
| 130 | echo "You must have automake installed to run $program" |
---|
| 131 | exit 1 |
---|
| 132 | fi |
---|
| 133 | |
---|
[df49c60] | 134 | case $top_srcdir in |
---|
[ec6968b] | 135 | /* ) aclocal_dir=$top_srcdir |
---|
[df49c60] | 136 | ;; |
---|
[ec6968b] | 137 | *) aclocal_dir=`pwd`/$top_srcdir |
---|
[df49c60] | 138 | ;; |
---|
| 139 | esac |
---|
| 140 | |
---|
[e712997] | 141 | confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print` |
---|
[8cdb582] | 142 | for i in $confs; do |
---|
| 143 | dir=`dirname $i`; |
---|
[e712997] | 144 | configure=`basename $i`; |
---|
[8cdb582] | 145 | ( test "$quiet" = "true" || echo "$dir"; |
---|
| 146 | cd $dir; |
---|
[282cb9c] | 147 | test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \ |
---|
| 148 | generate_bspdir_acinclude; |
---|
[ec6968b] | 149 | pat="s,\$(RTEMS_TOPdir),${aclocal_dir},g" |
---|
| 150 | aclocal_args=`grep '^[ ]*ACLOCAL_AMFLAGS' Makefile.am | \ |
---|
| 151 | sed -e 's%.*ACLOCAL_AMFLAGS.*\=[ ]*%%g' -e $pat ` ; |
---|
[0b22af6] | 152 | test "$verbose" = "-v" && echo "${ACLOCAL} $aclocal_args" |
---|
| 153 | ${ACLOCAL} $aclocal_args; |
---|
| 154 | test -n "`grep CONFIG_HEADER ${configure}`" && ${AUTOHEADER} \ |
---|
| 155 | && test "$verbose" = "-v" && echo "${AUTOHEADER}"; |
---|
| 156 | test -n "`grep RTEMS_BSP_CONFIGURE ${configure}`" && ${AUTOHEADER} \ |
---|
| 157 | && test "$verbose" = "-v" && echo "${AUTOHEADER}"; |
---|
| 158 | test -f Makefile.am && ${AUTOMAKE} -a -c $verbose ; |
---|
| 159 | ${AUTOCONF}; |
---|
[76ee648c] | 160 | test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ |
---|
| 161 | && echo timestamp > stamp-h.in |
---|
[8cdb582] | 162 | ) |
---|
| 163 | done |
---|
| 164 | ;; |
---|
[df49c60] | 165 | |
---|
[3031e6c] | 166 | autoreconf) |
---|
| 167 | AUTORECONF=${AUTORECONF-autoreconf} |
---|
| 168 | if test -z "$AUTORECONF"; then |
---|
| 169 | echo "You must have autoreconf installed to run $program" |
---|
| 170 | exit 1 |
---|
| 171 | fi |
---|
| 172 | |
---|
| 173 | confs=`find . -name 'configure.ac' -print` |
---|
| 174 | for i in $confs; do |
---|
| 175 | dir=`dirname $i`; |
---|
| 176 | configure=`basename $i`; |
---|
| 177 | ( test "$quiet" = "true" || echo "$dir"; |
---|
| 178 | cd $dir; |
---|
| 179 | test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \ |
---|
| 180 | generate_bspdir_acinclude; |
---|
| 181 | ${AUTORECONF} -i --no-recursive $verbose; |
---|
| 182 | test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ |
---|
| 183 | && echo timestamp > stamp-h.in |
---|
| 184 | ) |
---|
| 185 | done |
---|
| 186 | ;; |
---|
| 187 | |
---|
[8cdb582] | 188 | clean) |
---|
| 189 | test "$quiet" = "true" || echo "removing automake generated Makefile.in files" |
---|
| 190 | files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ; |
---|
| 191 | for i in $files; do if test -f $i; then |
---|
| 192 | rm -f $i |
---|
| 193 | test "$verbose" = "-v" && echo "$i" |
---|
| 194 | fi; done |
---|
| 195 | |
---|
| 196 | test "$quiet" = "true" || echo "removing configure files" |
---|
| 197 | files=`find . -name 'configure' -print` ; |
---|
| 198 | test "$verbose" = "-v" && test -n "$files" && echo "$files" ; |
---|
| 199 | for i in $files; do if test -f $i; then |
---|
[23557f5] | 200 | rm -f $i config.sub config.guess depcomp install-sh mdate-sh missing \ |
---|
[6223498d] | 201 | mkinstalldirs texinfo.tex compile |
---|
[8cdb582] | 202 | test "$verbose" = "-v" && echo "$i" |
---|
| 203 | fi; done |
---|
| 204 | |
---|
| 205 | test "$quiet" = "true" || echo "removing aclocal.m4 files" |
---|
| 206 | files=`find . -name 'aclocal.m4' -print` ; |
---|
| 207 | test "$verbose" = "-v" && test -n "$files" && echo "$files" ; |
---|
| 208 | for i in $files; do if test -f $i; then |
---|
| 209 | rm -f $i |
---|
| 210 | test "$verbose" = "-v" && echo "$i" |
---|
| 211 | fi; done |
---|
| 212 | |
---|
| 213 | find . -name '*~' -print | xargs rm -f |
---|
[a5a0db4] | 214 | find . -name 'bspopts.h.in' -print | xargs rm -f |
---|
[8cdb582] | 215 | find . -name '*.orig' -print | xargs rm -f |
---|
| 216 | find . -name '*.rej' -print | xargs rm -f |
---|
| 217 | find . -name 'config.status' -print | xargs rm -f |
---|
| 218 | find . -name 'config.log' -print | xargs rm -f |
---|
[76ee648c] | 219 | find . -name 'config.cache' -print | xargs rm -f |
---|
[6693a68] | 220 | find . -name 'Makefile' -print | xargs rm -f |
---|
[8cdb582] | 221 | find . -name '.deps' -print | xargs rm -rf |
---|
[76ee648c] | 222 | find . -name '.libs' -print | xargs rm -rf |
---|
| 223 | find . -name 'stamp-h.in' | xargs rm -rf |
---|
[282cb9c] | 224 | find . -name 'autom4te*.cache' | xargs rm -rf |
---|
[8cdb582] | 225 | ;; |
---|
| 226 | esac |
---|
[cf0ed46] | 227 | |
---|
| 228 | exit 0 |
---|