summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-03-19 22:01:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-03-19 22:01:26 +0000
commite619c2895b9109b5008eac9244bfb6719d39ea9b (patch)
treeeb4764c751d852661ac109cd6f39b94262f12261
parentTowards automake VIII patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>: (diff)
downloadrtems-e619c2895b9109b5008eac9244bfb6719d39ea9b.tar.bz2
Towards automake IX patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This is the next step towards automake: * Two scripts for the toplevel directory: a) "autogen" (Idea borrowed from libtool and gnome) A helper script to recursively regenerate autoconf/automake/aclocal generated files (Still not perfect but sufficient). b) "missing" (from automake-cvs archive). This file normally is automatically generated by automake, but we have to manually add it until we add automake support to the toplevel configure script. "chmod 755 missing autogen" after applying the patch. * Changing the toplevel installation directory [ I can hear you falling off the chair ;-] Until now rtems installed itself to $(prefix)/rtems. This is in contradiction to automake and GNU/FSF/Cygnus conventions. With this patch applied, rtems installs into $(prefix). To achieve the old behaviour simply configure with --prefix=<install-dir>/rtems instead of --prefix=<install-dir> This is a widely visible change and I can understand if you don't like it at the present point. It enables us to use automake's default installation paths instead of having to set up installation paths manually. At the moment this doesn't help much, but in the not so far future this would enable us to mix cpu-only dependent libraries into the host's cross-compiler library and header files into newlib's include directories, tools into the toolchain directories etc. I would recommend to change the main installation directory, however it's up to you to draw the final design decision.
-rw-r--r--autogen59
-rw-r--r--c/Makefile.in6
-rw-r--r--make/Makefile.in32
-rwxr-xr-xmissing190
4 files changed, 266 insertions, 21 deletions
diff --git a/autogen b/autogen
new file mode 100644
index 0000000000..71d4851715
--- /dev/null
+++ b/autogen
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+# $Id$
+
+# helps bootstrapping, when checked out from CVS
+# requires GNU autoconf and GNU automake
+
+# this is not meant to be exported outside the source tree
+
+# NOTE: Inspired by libtool's autogen script
+
+# to be run from the toplevel directory of RTEMS'
+# source tree
+
+progname=`basename $0`
+am_verbose="";
+quiet="false"
+
+usage()
+{
+ echo "${progname} [-v|-q]"
+ exit 1;
+}
+
+while test $# -gt 0; do
+case $1 in
+-q|--qu|--qui|--quie|--quiet)
+ quiet="true";
+ shift;;
+-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
+ verbose="-v";
+ shift;;
+-*) echo "unknown option $1" ;
+ usage ;;
+*) echo "invalid parameter $1" ;
+ usage ;;
+esac
+done
+
+if test ! -d aclocal; then
+ echo "${progname}"
+ echo " Please change directory to RTEMS's toplevel directory"
+ exit 1;
+fi
+
+pwd=`pwd`;
+confs=`find $pwd -name configure.in`
+
+aclocal_dir=$pwd/aclocal
+for i in $confs; do
+dir=`dirname $i`;
+( test "$quiet" = "true" || echo "$dir";
+ cd $dir;
+ aclocal -I $aclocal_dir;
+ autoconf;
+ test -f Makefile.am && automake $verbose ;
+)
+done
+
diff --git a/c/Makefile.in b/c/Makefile.in
index ec2f316314..d34437780e 100644
--- a/c/Makefile.in
+++ b/c/Makefile.in
@@ -142,10 +142,10 @@ $(PROJECT_ROOT)/$(RTEMS_BSP)/Makefile.inc: $(PROJECT_ROOT)/make/Templates/Makefi
# the tests directory. This significantly minimizes the install size.
install_files: $(PROJECT_ROOT)/$(RTEMS_BSP)/Makefile.inc
- @top_srcdir@/mkinstalldirs $(prefix)/rtems
- -$(RM) -rf $(prefix)/rtems/$(RTEMS_BSP)
+ @top_srcdir@/mkinstalldirs $(prefix)
+ -$(RM) -rf $(prefix)/$(RTEMS_BSP)
cd ../; tar cf - $(RTEMS_BSP)/[bilsuM]* | \
- (cd $(prefix)/rtems; tar xpBf - )
+ (cd $(prefix); tar xpBf - )
cd ../make; $(MAKE) RTEMS_BSP=$(RTEMS_BSP) install
tests:
diff --git a/make/Makefile.in b/make/Makefile.in
index 8be497fb4f..7b977763ce 100644
--- a/make/Makefile.in
+++ b/make/Makefile.in
@@ -59,41 +59,37 @@ get: retrieve
all:
-$(prefix)/rtems:
+$(prefix):
@top_srcdir@/mkinstalldirs $@
-install: $(prefix)/rtems \
- $(prefix)/rtems/make \
- $(prefix)/rtems/make/compilers \
- $(prefix)/rtems/make/custom \
- $(prefix)/rtems/make/Templates \
+install: $(prefix) \
+ $(prefix)/make \
+ $(prefix)/make/compilers \
+ $(prefix)/make/custom \
+ $(prefix)/make/Templates \
install_files
-$(prefix)/rtems/make:
+$(prefix)/make:
@top_srcdir@/mkinstalldirs $@
install_files:: $(GENERIC_FILES) $(MAKEFILES)
- $(INSTALL) $(INSTDATAFLAGS) $^ \
- $(prefix)/rtems/make
+ $(INSTALL_DATA) $^ $(prefix)/make
-$(prefix)/rtems/make/compilers:
+$(prefix)/make/compilers:
@top_srcdir@/mkinstalldirs $@
install_files:: $(COMPILER_FILES)
- $(INSTALL) $(INSTDATAFLAGS) $^ \
- $(prefix)/rtems/make/compilers
+ $(INSTALL_DATA) $^ $(prefix)/make/compilers
-$(prefix)/rtems/make/custom:
+$(prefix)/make/custom:
@top_srcdir@/mkinstalldirs $@
install_files:: $(CUSTOM_FILES)
- $(INSTALL) $(INSTDATAFLAGS) $^ \
- $(prefix)/rtems/make/custom
+ $(INSTALL_DATA) $^ $(prefix)/make/custom
-$(prefix)/rtems/make/Templates:
+$(prefix)/make/Templates:
@top_srcdir@/mkinstalldirs $@
install_files:: $(TEMPLATE_FILES)
- $(INSTALL) $(INSTDATAFLAGS) $^ \
- $(prefix)/rtems/make/Templates
+ $(INSTALL_DATA) $^ $(prefix)/make/Templates
diff --git a/missing b/missing
new file mode 100755
index 0000000000..7789652e87
--- /dev/null
+++ b/missing
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing - GNU libit 0.0"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0