From 15c7307fe8a74c4d54ce5913671c6f7480a25812 Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sun, 8 Apr 2018 18:33:52 +0200 Subject: [PATCH] Allow setup_astyle.sh to be used on macOS as well --- contrib/utilities/indent | 2 +- contrib/utilities/setup_astyle.sh | 39 ++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/contrib/utilities/indent b/contrib/utilities/indent index dd0923ff55..b18c59af6a 100755 --- a/contrib/utilities/indent +++ b/contrib/utilities/indent @@ -36,7 +36,7 @@ if test ! -d source -o ! -d include -o ! -d examples ; then fi # Add the location 'setup_astyle.sh' installs astyle to to the local PATH. -ASTYLE_PATH="$(realpath contrib/utilities)/programs/astyle/build/gcc/bin" +ASTYLE_PATH="$(cd "$(dirname "$0")" && pwd)/programs/astyle/bin" export PATH=$ASTYLE_PATH:$PATH if test ! -f contrib/styles/astyle.rc ; then diff --git a/contrib/utilities/setup_astyle.sh b/contrib/utilities/setup_astyle.sh index e9296a16b1..8005442b54 100755 --- a/contrib/utilities/setup_astyle.sh +++ b/contrib/utilities/setup_astyle.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## --------------------------------------------------------------------- ## ## Copyright (C) 2018 by the deal.II authors @@ -15,18 +15,40 @@ ## --------------------------------------------------------------------- # -# This script downloads and installs astyle-2.04 in programs/astyle/build/gcc. +# This script downloads and installs astyle-2.04 in programs/astyle/bin. # The installed binary is used in the 'indent' script in case astyle is # installed by this script. # -# This script only works on Linux, and also puts the 'astyle' +# This script only works on Linux and macOS, and also puts the 'astyle' # executable into a very specific place. This is not a general purpose # solution. A better solution is to essentially execute the commands # below in a shell and make sure that the executable is installed into # a central directory -- say, /usr/bin or /usr/local/bin. # -PRG=$PWD/programs +PRG="$(cd "$(dirname "$0")" && pwd)/programs" + +# Find out which kind of OS we are running and set the appropriate settings +case "$OSTYPE" in + darwin*) + FILENAME="astyle_2.04_macosx.tar.gz" + CHECKSUM_CMD="shasum" + CHECKSUM="e0ba90723463172fd8a063897092284993eeebb87c63cf26ee36f555b0d89368 $FILENAME" + BUILD_PATH="$PRG/astyle/build/mac" + ;; + linux*) + FILENAME="astyle_2.04_linux.tar.gz" + CHECKSUM_CMD="sha256sum" + CHECKSUM="70b37f4853c418d1e2632612967eebf1bdb93dfbe558c51d7d013c9b4e116b60 $FILENAME" + BUILD_PATH="$PRG/astyle/build/gcc" + ;; + *) + echo "unknown: $OSTYPE" + exit 1 + ;; +esac + +INSTALL_PATH="$BUILD_PATH"/../../ if [ ! -d "$PRG" ] then @@ -39,11 +61,12 @@ if [ ! -d "$PRG/astyle" ] then echo "Downloading and installing astyle." mkdir "$PRG/astyle" - wget https://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/astyle_2.04_linux.tar.gz > /dev/null - if echo "70b37f4853c418d1e2632612967eebf1bdb93dfbe558c51d7d013c9b4e116b60 astyle_2.04_linux.tar.gz" | sha256sum -c; then - tar xfz astyle_2.04_linux.tar.gz -C "$PRG" > /dev/null - cd "$PRG/astyle/build/gcc" || exit 1 + curl -s -L "https://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/$FILENAME" -O > /dev/null + if echo "$CHECKSUM" | "${CHECKSUM_CMD}" -c; then + tar xfz "$FILENAME" -C "$PRG" > /dev/null + cd "$BUILD_PATH" || exit 1 make -j4 > /dev/null + cp -r "$BUILD_PATH"/bin "$INSTALL_PATH" else echo "*** The downloaded file has the wrong SHA256 checksum!" exit 1 -- 2.39.5