From 00e245b59fa27df0d83c3c1916180c8f97b33726 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 2 May 2006 21:35:55 +0000 Subject: [PATCH] Add some finer grained dependancy checking. Check that make >= 3.80 is installed, check that at least gcc 2.95 is installed. Other dependancy will be added as needed. --- toolchain/binutils/binutils.mk | 20 +--- toolchain/dependancies/dependancies.mk | 25 +++++ toolchain/dependancies/dependancies.sh | 129 +++++++++++++++++++++++++ 3 files changed, 155 insertions(+), 19 deletions(-) create mode 100644 toolchain/dependancies/dependancies.mk create mode 100755 toolchain/dependancies/dependancies.sh diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk index 7658ce0b3b..89820fcede 100644 --- a/toolchain/binutils/binutils.mk +++ b/toolchain/binutils/binutils.mk @@ -73,25 +73,7 @@ $(BINUTILS_DIR1)/binutils/objdump: $(BINUTILS_DIR1)/.configured $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR1)/binutils/objdump $(MAKE) -C $(BINUTILS_DIR1) install -binutils-dependancies: - @if ! which which > /dev/null ; then \ - echo -e "\n\nYou must install 'which' on your build machine\n"; \ - exit 1; \ - fi; - @if ! which bison > /dev/null ; then \ - echo -e "\n\nYou must install 'bison' on your build machine\n"; \ - exit 1; \ - fi; - @if ! which flex > /dev/null ; then \ - echo -e "\n\nYou must install 'flex' on your build machine\n"; \ - exit 1; \ - fi; - @if ! which msgfmt > /dev/null ; then \ - echo -e "\n\nYou must install 'gettext' on your build machine\n"; \ - exit 1; \ - fi; - -binutils: binutils-dependancies $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/ld +binutils: dependancies $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/ld binutils-source: $(DL_DIR)/$(BINUTILS_SOURCE) diff --git a/toolchain/dependancies/dependancies.mk b/toolchain/dependancies/dependancies.mk new file mode 100644 index 0000000000..a0da2509f1 --- /dev/null +++ b/toolchain/dependancies/dependancies.mk @@ -0,0 +1,25 @@ +###################################################################### +# +# Check buildroot dependancies and bail out if the user's +# system is judged to be lacking.... +# +###################################################################### + +dependancies: + $(TOPDIR)/toolchain/dependancies/dependancies.sh + +dependancies-source: + +dependancies-clean: + rm -f $(SSTRIP_TARGET) + +dependancies-dirclean: + true + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +# unconditionally include this one... +TARGETS+=dependancies diff --git a/toolchain/dependancies/dependancies.sh b/toolchain/dependancies/dependancies.sh new file mode 100755 index 0000000000..45ae75c2a4 --- /dev/null +++ b/toolchain/dependancies/dependancies.sh @@ -0,0 +1,129 @@ +#!/bin/sh + +set -e +#set -x + +echo "Checking build system dependancies:" +echo "" + + +############################################################# +# +# check build system 'make' +# +############################################################# +MAKE=$(which make) +if [ -z "$MAKE" ] ; then + echo "make installed: FALSE" + echo -e "\n\nYou must install 'make' on your build machine\n"; + exit 1; +fi; +MAKE_VERSION=$($MAKE --version 2>&1 | head -n1 | sed -e 's/^.* \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g') +if [ -z "$MAKE_VERSION" ] ; then + echo "make installed: FALSE" + echo -e "\n\nYou must install 'make' on your build machine\n"; + exit 1; +fi; +MAKE_MAJOR=$(echo $MAKE_VERSION | sed -e "s/\..*//g") +MAKE_MINOR=$(echo $MAKE_VERSION | sed -e "s/^$MAKE_MAJOR\.//g" -e "s/\..*//g") +if [ $MAKE_MAJOR -lt 3 -o $MAKE_MAJOR -eq 3 -a $MAKE_MINOR -lt 8 ] ; then + echo "You have make '$MAKE_VERSION' installed. GNU make >=3.80 is required" + exit 1; +fi; +echo "GNU make version '$MAKE_VERSION': Ok" + + + +############################################################# +# +# check build system 'gcc' +# +############################################################# +COMPILER=$(which gcc) +if [ -z "$COMPILER" ] ; then + COMPILER=$(which cc) + if [ -z "$COMPILER" ] ; then + echo "gcc installed: FALSE" + echo -e "\n\nYou must install 'gcc' on your build machine\n"; + exit 1; + fi; +fi; +COMPILER_VERSION=$($COMPILER --version 2>&1 | head -n1 | sed -e 's/^.* \([0-9\.]\)/\1/g' -e "s/[-\ ].*//g") +if [ -z "$COMPILER_VERSION" ] ; then + echo "gcc installed: FALSE" + echo -e "\n\nYou must install 'gcc' on your build machine\n"; + exit 1; +fi; +COMPILER_MAJOR=$(echo $COMPILER_VERSION | sed -e "s/\..*//g") +COMPILER_MINOR=$(echo $COMPILER_VERSION | sed -e "s/^$COMPILER_MAJOR\.//g" -e "s/\..*//g") +if [ $COMPILER_MAJOR -lt 3 -o $COMPILER_MAJOR -eq 2 -a $COMPILER_MINOR -lt 95 ] ; then + echo "You have gcc '$COMPILER_VERSION' installed. gcc >= 2.95 is required" + exit 1; +fi; +echo "gcc version '$COMPILER_VERSION': Ok" + + + + +############################################################# +# +# check build system 'which' +# +############################################################# +if ! which which > /dev/null ; then + echo "which installed: FALSE" + echo -e "\n\nYou must install 'which' on your build machine\n"; + exit 1; +fi; +echo "which installed: Ok" + + +############################################################# +# +# check build system 'bison' +# +############################################################# +if ! which bison > /dev/null ; then + echo "bison installed: FALSE" + echo -e "\n\nYou must install 'bison' on your build machine\n"; + exit 1; +fi; +echo "bison installed: Ok" + + +############################################################# +# +# check build system 'flex' +# +############################################################# +if ! which flex > /dev/null ; then + echo "flex installed: FALSE" + echo -e "\n\nYou must install 'flex' on your build machine\n"; + exit 1; +fi; +echo "flex installed: Ok" + + +############################################################# +# +# check build system 'gettext' +# +############################################################# +if ! which msgfmt > /dev/null ; then \ + echo "gettext installed: FALSE" + echo -e "\n\nYou must install 'gettext' on your build machine\n"; \ + exit 1; \ +fi; +echo "gettext installed: Ok" + + + + + +############################################################# +# +# All done +# +############################################################# +echo "Build system dependancies: Ok" +