From 0f4de68059b258a01eecc1f11c44530250e894ec Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 23 Dec 2014 12:28:48 +0100 Subject: [PATCH] Improve check_tools again, check for almost everything --- Makefile | 4 ++-- check_tools.sh | 32 ++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 9d0826c02..a8932eff8 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ LINPHONE_ANDROID_DEBUG_VERSION=$(shell git describe --always) BELLESIP_VERSION_SCRIPT:=cat submodules/belle-sip/configure.ac | grep "AC_INIT(" | sed -e "s/.*belle-sip\]//" | sed -e "s/].*//" | sed -e "s/.*\[//" BELLESIP_VERSION=$(shell $(BELLESIP_VERSION_SCRIPT)) ANDROID_MOST_RECENT_TARGET=$(shell android list target -c | grep -E 'android-[0-9]+' | tail -n1) -#We force target 19 because 21 creates binaries incompatible with older versions due to rand() function no longer inline (congrats to Google's developers) +#We force target 19 because 21 creates binaries incompatible with older versions due to rand() function no longer inline (congrats to Google's developers) NDKBUILD_TARGET=android-19 #The NDK target used to compile external third parties (ffmpeg, x264) EXTERNAL_MAKE_TARGET=14 @@ -64,7 +64,7 @@ APP_STL=stlport_static # Checks CHECK_MSG=$(shell ./check_tools.sh) ifneq ($(CHECK_MSG),) - $(error $(CHECK_MSG)) + $(error Some tools are missing.) endif include check_tools.mk diff --git a/check_tools.sh b/check_tools.sh index 4c46e7aad..30d9d08b8 100755 --- a/check_tools.sh +++ b/check_tools.sh @@ -1,37 +1,49 @@ #!/bin/sh -rm -f check_tools.mk -touch check_tools.mk - error_on_quit=0 +echo_err() { + echo "$@" >&2 +} + check_installed() { if [ -z "$(which $1)" ]; then - echo "Could not find $1. Please install $2." + echo_err "Could not find $1. Please install $2." error_on_quit=1 return 1 fi return 0 } - -check_installed "java" "it" -check_installed "ant" "it" -check_installed "yasm" "it" -check_installed "nasm" "it" +for prog in automake autoconf pkg-config java ant yasm nasm wget; do + check_installed "$prog" "it" +done +check_installed "libtoolize" "libtool" check_installed "ndk-build" "android NDK" if check_installed "android" "android SDK"; then check_installed "adb" "android SDK platform tools" # check that at least one target is installed if [ -z "$(android list target -c)" ]; then - echo "Install at least one android target in android SDK" + echo_err "Install at least one android target in the android SDK" error_on_quit=1 fi fi +if nasm -f elf32 2>&1 | grep -q "fatal: unrecognised output format"; then + echo_err "Invalid version of nasm: your version does not support elf32 output format. If you have installed nasm, please check that your PATH env variable is set correctly." + error_on_quit=1 +fi +if ! (find submodules/linphone/mediastreamer2 -mindepth 1 2>/dev/null | grep -q . \ + || find submodules/linphone/oRTP -mindepth 1 2>/dev/null | grep -q .); then + echo_err "Missing some git submodules. Did you run 'git submodule update --init --recursive'?" +fi if [ $error_on_quit = 0 ]; then + rm -f check_tools.mk + touch check_tools.mk echo "JAVA=\"$(which java)\"" >> check_tools.mk echo "ANTLR=\"$(which java)\" -jar \"submodules/externals/antlr3/antlr-3.2.jar\"" >> check_tools.mk +else + echo "Failed to detect required tools, aborting." fi exit $error_on_quit