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