From 6c4dbc545d0c7d9898684ebad94ceabd2874c917 Mon Sep 17 00:00:00 2001
From: kytv <kytv@mail.i2p>
Date: Sun, 11 Dec 2011 12:50:24 +0000
Subject: [PATCH] Redo functions to remove the dependency on bash

---
 core/c/jbigi/mbuild-all.sh   | 263 ++++++++++++++++++-----------------
 core/c/jbigi/mbuild_jbigi.sh |  32 ++---
 2 files changed, 149 insertions(+), 146 deletions(-)

diff --git a/core/c/jbigi/mbuild-all.sh b/core/c/jbigi/mbuild-all.sh
index 5ec7d08731..9cbe488a54 100755
--- a/core/c/jbigi/mbuild-all.sh
+++ b/core/c/jbigi/mbuild-all.sh
@@ -1,12 +1,4 @@
-#!/usr/bin/env bash
-
-if [ -z "$BASH_VERSION" ]; then
-	echo "This script needs to be run with Bash."
-	echo
-	echo "Please install bash and then run this script with"
-	echo "bash $0"
-	exit 1
-fi
+#!/bin/sh
 
 #FIXME What platforms for MacOS?
 MISC_DARWIN_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle"
@@ -50,6 +42,17 @@ X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon g
 # You should not need to edit anything below this comment.
 #
 
+# The built-in echo in /bin/sh (the real bourne shell) on BSD systems supports -e.
+# The built-in echo in dash (the default /bin/sh on Debian) does not support -e
+# but /bin/echo always supports -e in Linux; therefore, let's set echo to /bin/echo
+# whenever we're on Linux and use the shell's built-in "echo" on everything else.
+
+if [ $(uname -s |tr "[A-Z]" "[a-z]") = "linux" ]; then
+        ECHO="/bin/echo"
+else
+        ECHO="echo"
+fi
+
 MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}"
 LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}"
 FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}"
@@ -62,142 +65,142 @@ DARWIN_PLATFORMS="core2 corei"
 
 # Set the version to 5.0.2 for OSX because AFAIK there are only 64bit capable CPUs for the Intel Macs
 if [ `uname -s |grep Darwin` ]; then
-  	VER=5.0.2
+        VER=5.0.2
 else
-	VER=$(echo gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1)
+        VER=$($ECHO gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1)
 fi
 
 if [ "$VER" = "" ] ; then
-	echo "ERROR! Can't find gmp source tarball."
-	exit 1
+        $ECHO "ERROR! Can't find gmp source tarball."
+        exit 1
 fi
 
 
 case `uname -sr` in
 MINGW*)
-	PLATFORM_LIST="${MINGW_PLATFORMS}"
-	NAME="jbigi"
-	TYPE="dll"
-	TARGET="-windows-"
-	echo "Building windows .dlls for all architectures";;
+        PLATFORM_LIST="${MINGW_PLATFORMS}"
+        NAME="jbigi"
+        TYPE="dll"
+        TARGET="-windows-"
+        $ECHO "Building windows .dlls for all architectures";;
 Darwin*)
-	PLATFORM_LIST="${DARWIN_PLATFORMS}"
-	NAME="libjbigi"
-	TYPE="jnilib"
-	TARGET="-osx-"
-	echo "Building ${TARGET} .jnilibs for all architectures";;
+        PLATFORM_LIST="${DARWIN_PLATFORMS}"
+        NAME="libjbigi"
+        TYPE="jnilib"
+        TARGET="-osx-"
+        $ECHO "Building ${TARGET} .jnilibs for all architectures";;
 Linux*)
-	NAME="libjbigi"
-	TYPE="so"
-	PLATFORM_LIST=""
-	TARGET="-linux-"
-	arch=$(uname -m | cut -f1 -d" ")
-	case ${arch} in
-		i[3-6]86)
-			arch="x86";;
-	esac
-	case ${arch} in
-		x86_64 | amd64)
-			PLATFORM_LIST="${X86_64_PLATFORMS}"
-			TARGET="-linux-X86_64-";;
-		ia64)
-			PLATFORM_LIST="${X86_64_PLATFORMS}"
-			TARGET="-linux-ia64-";;
-		x86)
-			PLATFORM_LIST="${X86_PLATFORMS}"
-			TARGET="-linux-x86-";;
-		*)
-			PLATFORM_LIST="${LINUX_PLATFORMS}";;
-	esac
-	echo "Building ${TARGET} .so's for ${arch}";;
+        NAME="libjbigi"
+        TYPE="so"
+        PLATFORM_LIST=""
+        TARGET="-linux-"
+        arch=$(uname -m | cut -f1 -d" ")
+        case ${arch} in
+                i[3-6]86)
+                        arch="x86";;
+        esac
+        case ${arch} in
+                x86_64 | amd64)
+                        PLATFORM_LIST="${X86_64_PLATFORMS}"
+                        TARGET="-linux-X86_64-";;
+                ia64)
+                        PLATFORM_LIST="${X86_64_PLATFORMS}"
+                        TARGET="-linux-ia64-";;
+                x86)
+                        PLATFORM_LIST="${X86_PLATFORMS}"
+                        TARGET="-linux-x86-";;
+                *)
+                        PLATFORM_LIST="${LINUX_PLATFORMS}";;
+        esac
+        $ECHO "Building ${TARGET} .sos for ${arch}";;
 NetBSD*|FreeBSD*|OpenBSD*)
-	NAME="libjbigi"
-	TYPE="so"
-	PLATFORM_LIST=""
-	BSDTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
-	arch=$(uname -m | cut -f1 -d" ")
-	case ${arch} in
-		i[3-6]86)
-			arch="x86";;
-	esac
-	case ${arch} in
-		x86_64|amd64)
-			PLATFORM_LIST="${X86_64_PLATFORMS}"
-			TARGET="-${BSDTYPE}-X86_64-";;
-		ia64)
-			PLATFORM_LIST="${X86_64_PLATFORMS}"
-			TARGET="-${BSDTYPE}-ia64-";;
-		x86)
-			PLATFORM_LIST="${X86_PLATFORMS}"
-			TARGET="-${BSDTYPE}-x86-";;
-		*)
-			case ${BSDTYPE} in
-				netbsd)
-					PLATFORM_LIST="${NETBSD_PLATFORMS}";;
-				openbsd)
-					PLATFORM_LIST="${OPENBSD_PLATFORMS}";;
-				freebsd)
-					PLATFORM_LIST="${FREEBSD_PLATFORMS}";;
-				*)
-					echo "Unsupported build environment"
-					exit 1;;
-			esac
-	esac
-	echo "Building ${BSDTYPE} .so's for ${arch}";;
+        NAME="libjbigi"
+        TYPE="so"
+        PLATFORM_LIST=""
+        BSDTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
+        arch=$(uname -m | cut -f1 -d" ")
+        case ${arch} in
+                i[3-6]86)
+                        arch="x86";;
+        esac
+        case ${arch} in
+                x86_64|amd64)
+                        PLATFORM_LIST="${X86_64_PLATFORMS}"
+                        TARGET="-${BSDTYPE}-X86_64-";;
+                ia64)
+                        PLATFORM_LIST="${X86_64_PLATFORMS}"
+                        TARGET="-${BSDTYPE}-ia64-";;
+                x86)
+                        PLATFORM_LIST="${X86_PLATFORMS}"
+                        TARGET="-${BSDTYPE}-x86-";;
+                *)
+                        case ${BSDTYPE} in
+                                netbsd)
+                                        PLATFORM_LIST="${NETBSD_PLATFORMS}";;
+                                openbsd)
+                                        PLATFORM_LIST="${OPENBSD_PLATFORMS}";;
+                                freebsd)
+                                        PLATFORM_LIST="${FREEBSD_PLATFORMS}";;
+                                *)
+                                        $ECHO "Unsupported build environment"
+                                        exit 1;;
+                        esac
+        esac
+        $ECHO "Building ${BSDTYPE} .sos for ${arch}";;
 *)
-	echo "Unsupported build environment"
-	exit;;
+        $ECHO "Unsupported build environment"
+        exit;;
 esac
 
-function make_static {
-	echo "Attempting .${4} creation for ${3}${5}${2}"
-	../../mbuild_jbigi.sh static || return 1
-	cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4}
-	return 0
+make_static () {
+        $ECHO "Attempting .${4} creation for ${3}${5}${2}"
+        ../../mbuild_jbigi.sh static || return 1
+        cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4}
+        return 0
 }
 
-function make_file {
-	# Nonfatal bail out on Failed build.
-	echo "Attempting build for ${3}${5}${2}"
-	make && return 0
-	cd ..
-	rm -R "$2"
-	echo -e "\n\nFAILED! ${3}${5}${2} not made.\a"
-	sleep 10
-	return 1
+make_file () {
+        # Nonfatal bail out on Failed build.
+        $ECHO "Attempting build for ${3}${5}${2}"
+        make && return 0
+        cd ..
+        rm -R "$2"
+        $ECHO -e "\n\nFAILED! ${3}${5}${2} not made.\a"
+        sleep 10
+        return 1
 }
 
-function configure_file {
-	echo -e "\n\n\nAttempting configure for ${3}${5}${2}\n\n\n"
-	sleep 10
-	# Nonfatal bail out on unsupported platform.
-	if [ `uname -s |grep Darwin` ]; then
-		../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0
-	else
-		../../gmp-${1}/configure --build=${2} --with-pic && return 0
-	fi
-	cd ..
-	rm -R "$2"
-	echo -e "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a"
-	sleep 10
-	return 1
+configure_file () {
+        $ECHO -e "\n\n\nAttempting configure for ${3}${5}${2}\n\n\n"
+        sleep 10
+        # Nonfatal bail out on unsupported platform.
+        if [ `uname -s |grep Darwin` ]; then
+                ../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0
+        else
+                ../../gmp-${1}/configure --build=${2} --with-pic && return 0
+        fi
+        cd ..
+        rm -R "$2"
+        $ECHO -e "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a"
+        sleep 10
+        return 1
 }
 
-function build_file {
-	configure_file "$1" "$2" "$3" "$4" "$5"  && make_file "$1" "$2" "$3" "$4" "$5" && make_static "$1" "$2" "$3" "$4" "$5" && return 0
-	echo -e "\n\n\nError building static!\n\n\a"
-	sleep 10
-	return 1
+build_file () {
+        configure_file "$1" "$2" "$3" "$4" "$5"  && make_file "$1" "$2" "$3" "$4" "$5" && make_static "$1" "$2" "$3" "$4" "$5" && return 0
+        $ECHO -e "\n\n\nError building static!\n\n\a"
+        sleep 10
+        return 1
 }
 
-echo "Extracting GMP Version $VER ..."
-tar -xjf gmp-$VER.tar.bz2 || ( echo "Error in tarball file!" ; exit 1 )
+$ECHO "Extracting GMP Version $VER ..."
+tar -xjf gmp-$VER.tar.bz2 || ( $ECHO "Error in tarball file!" ; exit 1 )
 
 if [ ! -d bin ]; then
-	mkdir bin
+        mkdir bin
 fi
 if [ ! -d lib/net/i2p/util ]; then
-	mkdir -p lib/net/i2p/util
+        mkdir -p lib/net/i2p/util
 fi
 
 # Don't touch this one.
@@ -205,18 +208,18 @@ NO_PLATFORM=none
 
 for x in $NO_PLATFORM $PLATFORM_LIST
 do
-	(
-		if [ ! -d bin/$x ]; then
-			mkdir bin/$x
-			cd bin/$x
-		else
-			cd bin/$x
-			rm -Rf *
-		fi
-
-		build_file "$VER" "$x" "$NAME" "$TYPE" "$TARGET"
-	)
+        (
+                if [ ! -d bin/$x ]; then
+                        mkdir bin/$x
+                        cd bin/$x
+                else
+                        cd bin/$x
+                        rm -Rf *
+                fi
+
+                build_file "$VER" "$x" "$NAME" "$TYPE" "$TARGET"
+        )
 done
 
-echo "Success!"
+$ECHO "Success!"
 exit 0
diff --git a/core/c/jbigi/mbuild_jbigi.sh b/core/c/jbigi/mbuild_jbigi.sh
index 23b046cd0a..fbdd37ebbb 100755
--- a/core/c/jbigi/mbuild_jbigi.sh
+++ b/core/c/jbigi/mbuild_jbigi.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
 # When executed in Mingw: Produces a jbigi.dll
 # When executed in Linux/FreeBSD: Produces a libjbigi.so
 # When executed in OSX: Produces a libjbigi.jnilib
@@ -6,17 +6,17 @@ CC="gcc"
 
 case `uname -sr` in
 MINGW*)
-	JAVA_HOME="c:/software/j2sdk1.4.2_05"
-	COMPILEFLAGS="-Wall"
-	INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
-	LINKFLAGS="-shared -Wl,--kill-at"
-	LIBFILE="jbigi.dll";;
+        JAVA_HOME="c:/software/j2sdk1.4.2_05"
+        COMPILEFLAGS="-Wall"
+        INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
+        LINKFLAGS="-shared -Wl,--kill-at"
+        LIBFILE="jbigi.dll";;
 CYGWIN*)
-	JAVA_HOME="c:/software/j2sdk1.4.2_05"
-	COMPILEFLAGS="-Wall -mno-cygwin"
-	INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
-	LINKFLAGS="-shared -Wl,--kill-at"
-	LIBFILE="jbigi.dll";;
+        JAVA_HOME="c:/software/j2sdk1.4.2_05"
+        COMPILEFLAGS="-Wall -mno-cygwin"
+        INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
+        LINKFLAGS="-shared -Wl,--kill-at"
+        LIBFILE="jbigi.dll";;
 Darwin*)
         JAVA_HOME=$(/usr/libexec/java_home)
         COMPILEFLAGS="-fPIC -Wall"
@@ -56,12 +56,12 @@ SunOS*|OpenBSD*|NetBSD*|FreeBSD*|Linux*)
 esac
 
 if [ "$1" = "dynamic" ] ; then
-	echo "Building a jbigi lib that is dynamically linked to GMP"
-	LIBPATH="-L.libs"
-	INCLUDELIBS="-lgmp"
+        echo "Building a jbigi lib that is dynamically linked to GMP"
+        LIBPATH="-L.libs"
+        INCLUDELIBS="-lgmp"
 else
-	echo "Building a jbigi lib that is statically linked to GMP"
-	STATICLIBS=".libs/libgmp.a"
+        echo "Building a jbigi lib that is statically linked to GMP"
+        STATICLIBS=".libs/libgmp.a"
 fi
 
 echo "Compiling C code..."
-- 
GitLab