Changeset 6c4dbc5 for core/c


Ignore:
Timestamp:
Dec 11, 2011 12:50:24 PM (9 years ago)
Author:
kytv <kytv@…>
Branches:
master
Children:
929d471
Parents:
f8a3afd
Message:

Redo functions to remove the dependency on bash

Location:
core/c/jbigi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • core/c/jbigi/mbuild-all.sh

    rf8a3afd r6c4dbc5  
    1 #!/usr/bin/env bash
    2 
    3 if [ -z "$BASH_VERSION" ]; then
    4         echo "This script needs to be run with Bash."
    5         echo
    6         echo "Please install bash and then run this script with"
    7         echo "bash $0"
    8         exit 1
    9 fi
     1#!/bin/sh
    102
    113#FIXME What platforms for MacOS?
     
    5042# You should not need to edit anything below this comment.
    5143#
     44
     45# The built-in echo in /bin/sh (the real bourne shell) on BSD systems supports -e.
     46# The built-in echo in dash (the default /bin/sh on Debian) does not support -e
     47# but /bin/echo always supports -e in Linux; therefore, let's set echo to /bin/echo
     48# whenever we're on Linux and use the shell's built-in "echo" on everything else.
     49
     50if [ $(uname -s |tr "[A-Z]" "[a-z]") = "linux" ]; then
     51        ECHO="/bin/echo"
     52else
     53        ECHO="echo"
     54fi
    5255
    5356MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}"
     
    6366# Set the version to 5.0.2 for OSX because AFAIK there are only 64bit capable CPUs for the Intel Macs
    6467if [ `uname -s |grep Darwin` ]; then
    65         VER=5.0.2
     68        VER=5.0.2
    6669else
    67         VER=$(echo gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1)
     70        VER=$($ECHO gmp-*.tar.bz2 | sed -e "s/\(.*-\)\(.*\)\(.*.tar.bz2\)$/\2/" | tail -n 1)
    6871fi
    6972
    7073if [ "$VER" = "" ] ; then
    71         echo "ERROR! Can't find gmp source tarball."
    72         exit 1
     74        $ECHO "ERROR! Can't find gmp source tarball."
     75        exit 1
    7376fi
    7477
     
    7679case `uname -sr` in
    7780MINGW*)
    78         PLATFORM_LIST="${MINGW_PLATFORMS}"
    79         NAME="jbigi"
    80         TYPE="dll"
    81         TARGET="-windows-"
    82         echo "Building windows .dlls for all architectures";;
     81        PLATFORM_LIST="${MINGW_PLATFORMS}"
     82        NAME="jbigi"
     83        TYPE="dll"
     84        TARGET="-windows-"
     85        $ECHO "Building windows .dlls for all architectures";;
    8386Darwin*)
    84         PLATFORM_LIST="${DARWIN_PLATFORMS}"
    85         NAME="libjbigi"
    86         TYPE="jnilib"
    87         TARGET="-osx-"
    88         echo "Building ${TARGET} .jnilibs for all architectures";;
     87        PLATFORM_LIST="${DARWIN_PLATFORMS}"
     88        NAME="libjbigi"
     89        TYPE="jnilib"
     90        TARGET="-osx-"
     91        $ECHO "Building ${TARGET} .jnilibs for all architectures";;
    8992Linux*)
    90         NAME="libjbigi"
    91         TYPE="so"
    92         PLATFORM_LIST=""
    93         TARGET="-linux-"
    94         arch=$(uname -m | cut -f1 -d" ")
    95         case ${arch} in
    96                 i[3-6]86)
    97                         arch="x86";;
    98         esac
    99         case ${arch} in
    100                 x86_64 | amd64)
    101                         PLATFORM_LIST="${X86_64_PLATFORMS}"
    102                         TARGET="-linux-X86_64-";;
    103                 ia64)
    104                         PLATFORM_LIST="${X86_64_PLATFORMS}"
    105                         TARGET="-linux-ia64-";;
    106                 x86)
    107                         PLATFORM_LIST="${X86_PLATFORMS}"
    108                         TARGET="-linux-x86-";;
    109                 *)
    110                         PLATFORM_LIST="${LINUX_PLATFORMS}";;
    111         esac
    112         echo "Building ${TARGET} .so's for ${arch}";;
     93        NAME="libjbigi"
     94        TYPE="so"
     95        PLATFORM_LIST=""
     96        TARGET="-linux-"
     97        arch=$(uname -m | cut -f1 -d" ")
     98        case ${arch} in
     99                i[3-6]86)
     100                        arch="x86";;
     101        esac
     102        case ${arch} in
     103                x86_64 | amd64)
     104                        PLATFORM_LIST="${X86_64_PLATFORMS}"
     105                        TARGET="-linux-X86_64-";;
     106                ia64)
     107                        PLATFORM_LIST="${X86_64_PLATFORMS}"
     108                        TARGET="-linux-ia64-";;
     109                x86)
     110                        PLATFORM_LIST="${X86_PLATFORMS}"
     111                        TARGET="-linux-x86-";;
     112                *)
     113                        PLATFORM_LIST="${LINUX_PLATFORMS}";;
     114        esac
     115        $ECHO "Building ${TARGET} .sos for ${arch}";;
    113116NetBSD*|FreeBSD*|OpenBSD*)
    114         NAME="libjbigi"
    115         TYPE="so"
    116         PLATFORM_LIST=""
    117         BSDTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
    118         arch=$(uname -m | cut -f1 -d" ")
    119         case ${arch} in
    120                 i[3-6]86)
    121                         arch="x86";;
    122         esac
    123         case ${arch} in
    124                 x86_64|amd64)
    125                         PLATFORM_LIST="${X86_64_PLATFORMS}"
    126                         TARGET="-${BSDTYPE}-X86_64-";;
    127                 ia64)
    128                         PLATFORM_LIST="${X86_64_PLATFORMS}"
    129                         TARGET="-${BSDTYPE}-ia64-";;
    130                 x86)
    131                         PLATFORM_LIST="${X86_PLATFORMS}"
    132                         TARGET="-${BSDTYPE}-x86-";;
    133                 *)
    134                         case ${BSDTYPE} in
    135                                 netbsd)
    136                                         PLATFORM_LIST="${NETBSD_PLATFORMS}";;
    137                                 openbsd)
    138                                         PLATFORM_LIST="${OPENBSD_PLATFORMS}";;
    139                                 freebsd)
    140                                         PLATFORM_LIST="${FREEBSD_PLATFORMS}";;
    141                                 *)
    142                                         echo "Unsupported build environment"
    143                                         exit 1;;
    144                         esac
    145         esac
    146         echo "Building ${BSDTYPE} .so's for ${arch}";;
     117        NAME="libjbigi"
     118        TYPE="so"
     119        PLATFORM_LIST=""
     120        BSDTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
     121        arch=$(uname -m | cut -f1 -d" ")
     122        case ${arch} in
     123                i[3-6]86)
     124                        arch="x86";;
     125        esac
     126        case ${arch} in
     127                x86_64|amd64)
     128                        PLATFORM_LIST="${X86_64_PLATFORMS}"
     129                        TARGET="-${BSDTYPE}-X86_64-";;
     130                ia64)
     131                        PLATFORM_LIST="${X86_64_PLATFORMS}"
     132                        TARGET="-${BSDTYPE}-ia64-";;
     133                x86)
     134                        PLATFORM_LIST="${X86_PLATFORMS}"
     135                        TARGET="-${BSDTYPE}-x86-";;
     136                *)
     137                        case ${BSDTYPE} in
     138                                netbsd)
     139                                        PLATFORM_LIST="${NETBSD_PLATFORMS}";;
     140                                openbsd)
     141                                        PLATFORM_LIST="${OPENBSD_PLATFORMS}";;
     142                                freebsd)
     143                                        PLATFORM_LIST="${FREEBSD_PLATFORMS}";;
     144                                *)
     145                                        $ECHO "Unsupported build environment"
     146                                        exit 1;;
     147                        esac
     148        esac
     149        $ECHO "Building ${BSDTYPE} .sos for ${arch}";;
    147150*)
    148         echo "Unsupported build environment"
    149         exit;;
     151        $ECHO "Unsupported build environment"
     152        exit;;
    150153esac
    151154
    152 function make_static {
    153         echo "Attempting .${4} creation for ${3}${5}${2}"
    154         ../../mbuild_jbigi.sh static || return 1
    155         cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4}
    156         return 0
    157 }
    158 
    159 function make_file {
    160         # Nonfatal bail out on Failed build.
    161         echo "Attempting build for ${3}${5}${2}"
    162         make && return 0
    163         cd ..
    164         rm -R "$2"
    165         echo -e "\n\nFAILED! ${3}${5}${2} not made.\a"
    166         sleep 10
    167         return 1
    168 }
    169 
    170 function configure_file {
    171         echo -e "\n\n\nAttempting configure for ${3}${5}${2}\n\n\n"
    172         sleep 10
    173         # Nonfatal bail out on unsupported platform.
    174         if [ `uname -s |grep Darwin` ]; then
    175                 ../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0
    176         else
    177                 ../../gmp-${1}/configure --build=${2} --with-pic && return 0
    178         fi
    179         cd ..
    180         rm -R "$2"
    181         echo -e "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a"
    182         sleep 10
    183         return 1
    184 }
    185 
    186 function build_file {
    187         configure_file "$1" "$2" "$3" "$4" "$5"  && make_file "$1" "$2" "$3" "$4" "$5" && make_static "$1" "$2" "$3" "$4" "$5" && return 0
    188         echo -e "\n\n\nError building static!\n\n\a"
    189         sleep 10
    190         return 1
    191 }
    192 
    193 echo "Extracting GMP Version $VER ..."
    194 tar -xjf gmp-$VER.tar.bz2 || ( echo "Error in tarball file!" ; exit 1 )
     155make_static () {
     156        $ECHO "Attempting .${4} creation for ${3}${5}${2}"
     157        ../../mbuild_jbigi.sh static || return 1
     158        cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4}
     159        return 0
     160}
     161
     162make_file () {
     163        # Nonfatal bail out on Failed build.
     164        $ECHO "Attempting build for ${3}${5}${2}"
     165        make && return 0
     166        cd ..
     167        rm -R "$2"
     168        $ECHO -e "\n\nFAILED! ${3}${5}${2} not made.\a"
     169        sleep 10
     170        return 1
     171}
     172
     173configure_file () {
     174        $ECHO -e "\n\n\nAttempting configure for ${3}${5}${2}\n\n\n"
     175        sleep 10
     176        # Nonfatal bail out on unsupported platform.
     177        if [ `uname -s |grep Darwin` ]; then
     178                ../../gmp-${1}/configure --build=${2}-apple-darwin --with-pic && return 0
     179        else
     180                ../../gmp-${1}/configure --build=${2} --with-pic && return 0
     181        fi
     182        cd ..
     183        rm -R "$2"
     184        $ECHO -e "\n\nSorry, ${3}${5}${2} is not supported on your build environment.\a"
     185        sleep 10
     186        return 1
     187}
     188
     189build_file () {
     190        configure_file "$1" "$2" "$3" "$4" "$5"  && make_file "$1" "$2" "$3" "$4" "$5" && make_static "$1" "$2" "$3" "$4" "$5" && return 0
     191        $ECHO -e "\n\n\nError building static!\n\n\a"
     192        sleep 10
     193        return 1
     194}
     195
     196$ECHO "Extracting GMP Version $VER ..."
     197tar -xjf gmp-$VER.tar.bz2 || ( $ECHO "Error in tarball file!" ; exit 1 )
    195198
    196199if [ ! -d bin ]; then
    197         mkdir bin
     200        mkdir bin
    198201fi
    199202if [ ! -d lib/net/i2p/util ]; then
    200         mkdir -p lib/net/i2p/util
     203        mkdir -p lib/net/i2p/util
    201204fi
    202205
     
    206209for x in $NO_PLATFORM $PLATFORM_LIST
    207210do
    208         (
    209                 if [ ! -d bin/$x ]; then
    210                         mkdir bin/$x
    211                         cd bin/$x
    212                 else
    213                         cd bin/$x
    214                         rm -Rf *
    215                 fi
    216 
    217                 build_file "$VER" "$x" "$NAME" "$TYPE" "$TARGET"
    218         )
     211        (
     212                if [ ! -d bin/$x ]; then
     213                        mkdir bin/$x
     214                        cd bin/$x
     215                else
     216                        cd bin/$x
     217                        rm -Rf *
     218                fi
     219
     220                build_file "$VER" "$x" "$NAME" "$TYPE" "$TARGET"
     221        )
    219222done
    220223
    221 echo "Success!"
     224$ECHO "Success!"
    222225exit 0
  • core/c/jbigi/mbuild_jbigi.sh

    rf8a3afd r6c4dbc5  
    1 #!/usr/bin/env bash
     1#!/bin/sh
    22# When executed in Mingw: Produces a jbigi.dll
    33# When executed in Linux/FreeBSD: Produces a libjbigi.so
     
    77case `uname -sr` in
    88MINGW*)
    9         JAVA_HOME="c:/software/j2sdk1.4.2_05"
    10         COMPILEFLAGS="-Wall"
    11         INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
    12         LINKFLAGS="-shared -Wl,--kill-at"
    13         LIBFILE="jbigi.dll";;
     9        JAVA_HOME="c:/software/j2sdk1.4.2_05"
     10        COMPILEFLAGS="-Wall"
     11        INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
     12        LINKFLAGS="-shared -Wl,--kill-at"
     13        LIBFILE="jbigi.dll";;
    1414CYGWIN*)
    15         JAVA_HOME="c:/software/j2sdk1.4.2_05"
    16         COMPILEFLAGS="-Wall -mno-cygwin"
    17         INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
    18         LINKFLAGS="-shared -Wl,--kill-at"
    19         LIBFILE="jbigi.dll";;
     15        JAVA_HOME="c:/software/j2sdk1.4.2_05"
     16        COMPILEFLAGS="-Wall -mno-cygwin"
     17        INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include/win32/ -I$JAVA_HOME/include/"
     18        LINKFLAGS="-shared -Wl,--kill-at"
     19        LIBFILE="jbigi.dll";;
    2020Darwin*)
    2121        JAVA_HOME=$(/usr/libexec/java_home)
     
    5757
    5858if [ "$1" = "dynamic" ] ; then
    59         echo "Building a jbigi lib that is dynamically linked to GMP"
    60         LIBPATH="-L.libs"
    61         INCLUDELIBS="-lgmp"
     59        echo "Building a jbigi lib that is dynamically linked to GMP"
     60        LIBPATH="-L.libs"
     61        INCLUDELIBS="-lgmp"
    6262else
    63         echo "Building a jbigi lib that is statically linked to GMP"
    64         STATICLIBS=".libs/libgmp.a"
     63        echo "Building a jbigi lib that is statically linked to GMP"
     64        STATICLIBS=".libs/libgmp.a"
    6565fi
    6666
Note: See TracChangeset for help on using the changeset viewer.