merge of '4f9e4125cd99ad55d386c416b659389a6a85a901'

and 'e68b93db0d4031a11910fd17c01edee5d6cd4a96'
This commit is contained in:
zzz
2011-09-20 12:40:18 +00:00
5 changed files with 146 additions and 82 deletions

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#FIXME What platforms for MacOS? #FIXME What platforms for MacOS?
MISC_DARWIN_PLATFORMS="" MISC_DARWIN_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle"
# Note: You will have to add the CPU ID for the platform in the CPU ID code # Note: You will have to add the CPU ID for the platform in the CPU ID code
# for a new CPU. Just adding them here won't let I2P use the code! # for a new CPU. Just adding them here won't let I2P use the code!
@@ -14,12 +14,13 @@ MISC_DARWIN_PLATFORMS=""
MISC_LINUX_PLATFORMS="hppa2.0 alphaev56 armv5tel mips64el itanium itanium2 ultrasparc2 ultrasparc2i alphaev6 powerpc970 powerpc7455 powerpc7447" MISC_LINUX_PLATFORMS="hppa2.0 alphaev56 armv5tel mips64el itanium itanium2 ultrasparc2 ultrasparc2i alphaev6 powerpc970 powerpc7455 powerpc7447"
# #
# If you know of other platforms i2p on FREEBSD works on, # If you know of other platforms i2p on *BSD works on,
# please add them here. # please add them here.
# Do NOT add any X86 platforms, do that below in the x86 platform list. # Do NOT add any X86 platforms, do that below in the x86 platform list.
# #
MISC_FREEBSD_PLATFORMS="alphaev56 ultrasparc2i" MISC_FREEBSD_PLATFORMS="alphaev56 ultrasparc2i"
MISC_NETBSD_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle atari amiga m68knommu" MISC_NETBSD_PLATFORMS="armv5tel mips64el ultrasparc2i sgi hppa2.0 alphaev56 powerpc powerpc64 powerpc64le powerpcle atari amiga m68knommu" # and many, many more
MISC_OPENBSD_PLATFORMS="alphaev56 ultrasparc2i sgi powerpc powerpc64 hppa2.0 alphaev56 armv5tel mips64el"
# #
# MINGW/Windows?? # MINGW/Windows??
@@ -44,7 +45,11 @@ X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon g
MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}" MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}"
LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}" LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}"
FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}" FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}"
NETBSD_PLATFORMS="${FREEBSD_PLATFORMS} ${LINUX_PLATFORMS} ${MISC_NETBSD_PLATFORMS}" # As they say, "Of course it runs NetBSD!"
NETBSD_PLATFORMS="${FREEBSD_PLATFORMS} ${MISC_LINUX_PLATFORMS} ${MISC_NETBSD_PLATFORMS}"
OPENBSD_PLATFORM="${X86_PLATFORMS} ${MISC_OPENBSD_PLATFORMS}"
# FIXME Is this all?
DARWIN_PLATFORMS="core2 corei" DARWIN_PLATFORMS="core2 corei"
# Set the version to 5.0.2 for OSX because # Set the version to 5.0.2 for OSX because
@@ -86,7 +91,7 @@ Linux*)
arch="x86";; arch="x86";;
esac esac
case ${arch} in case ${arch} in
x86_64) x86_64 | amd64)
PLATFORM_LIST="${X86_64_PLATFORMS}" PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="-linux-X86_64-";; TARGET="-linux-X86_64-";;
ia64) ia64)
@@ -99,18 +104,40 @@ Linux*)
PLATFORM_LIST="${LINUX_PLATFORMS}";; PLATFORM_LIST="${LINUX_PLATFORMS}";;
esac esac
echo "Building ${TARGET} .so's for ${arch}";; echo "Building ${TARGET} .so's for ${arch}";;
NetBSD*) NetBSD*|FreeBSD*|OpenBSD*)
PLATFORM_LIST="${NETBSD_PLATFORMS}"
NAME="libjbigi" NAME="libjbigi"
TYPE="so" TYPE="so"
TARGET="-netbsd-" PLATFORM_LIST=""
echo "Building netbsd .sos for all architectures";; BSDTYPE="`uname -s | tr [A-Z] [a-z]`"
FreeBSD*) arch=$(uname -m | cut -f1 -d" ")
PLATFORM_LIST="${FREEBSD_PLATFORMS}" case ${arch} in
NAME="libjbigi" i[3-6]86)
TYPE="so" arch="x86";;
TARGET="-freebsd-" esac
echo "Building freebsd .sos for all architectures";; 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}";;
*) *)
echo "Unsupported build environment" echo "Unsupported build environment"
exit;; exit;;

View File

@@ -23,21 +23,40 @@ Darwin*)
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include" INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include"
LINKFLAGS="-dynamiclib -framework JavaVM" LINKFLAGS="-dynamiclib -framework JavaVM"
LIBFILE="libjbigi.jnilib";; LIBFILE="libjbigi.jnilib";;
SunOS*) SunOS*|OpenBSD*|NetBSD*|FreeBSD*|Linux*)
UNIXTYPE="`uname -s | tr [A-Z] [a-z]`"
if [ $UNIXTYPE = "sunos" ]; then
UNIXTYPE="solaris"
elif [ $UNIXTYPE = "freebsd" ]; then
if [ -d /usr/local/openjdk6 ]; then
JAVA_HOME="/usr/local/openjdk6"
elif [ -d /usr/local/openjdk7 ]; then
JAVA_HOME="/usr/local/openjdk7"
fi
elif [ $UNIXTYPE = "openbsd" ]; then
if [ -d /usr/local/jdk-1.7.0 ]; then
JAVA_HOME="/usr/local/jdk-1.7.0"
fi
elif [ $UNIXTYPE = "netbsd" ]; then
if [ -d /usr/pkg/java/openjdk7 ]; then
JAVA_HOME="/usr/pkg/java/openjdk7"
fi
elif [ $UNIXTYPE = "linux" -a -e /etc/debian_version ]; then
if [ -d /usr/lib/jvm/default-java ]; then
JAVA_HOME="/usr/lib/jvm/default-java"
fi
fi
COMPILEFLAGS="-fPIC -Wall" COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/solaris" INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
LINKFLAGS="-shared -Wl,-soname,libjbigi.so" LINKFLAGS="-shared -Wl,-soname,libjbigi.so"
LIBFILE="libjbigi.so";; LIBFILE="libjbigi.so";;
*) *)
COMPILEFLAGS="-fPIC -Wall" echo "Unsupported system type."
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/linux" exit 1;;
LINKFLAGS="-shared -Wl,-soname,libjbigi.so"
LIBFILE="libjbigi.so";;
esac esac
if [ "$1" = "dynamic" ] ; then if [ "$1" = "dynamic" ] ; then
echo "Building a jbigi lib that is dynamically linked to GMP" echo "Building a jbigi lib that is dynamically linked to GMP"
LIBPATH="-L.libs" LIBPATH="-L.libs"
INCLUDELIBS="-lgmp" INCLUDELIBS="-lgmp"
else else

View File

@@ -7,10 +7,8 @@ CYGWIN*)
echo "Building windows .dlls";; echo "Building windows .dlls";;
Linux*) Linux*)
echo "Building linux .sos";; echo "Building linux .sos";;
NetBSD*) NetBSD*|OpenBSD*|FreeBSD*)
echo "Building netbsd .sos";; echo "Building `uname -s |tr [A-Z] [a-z]` .sos";;
FreeBSD*)
echo "Building freebsd .sos";;
Darwin*) Darwin*)
echo "Building OSX jnilibs";; echo "Building OSX jnilibs";;
*) *)
@@ -39,51 +37,45 @@ Darwin*)
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/" INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/"
LINKFLAGS="-dynamiclib -framework JavaVM" LINKFLAGS="-dynamiclib -framework JavaVM"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-darwin.jnilib";; LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-darwin.jnilib";;
NetBSD*) Linux*|OpenBSD*|NetBSD*|FreeBSD*|SunOS*)
UNIXTYPE="`uname -s | tr [A-Z] [a-z]`"
if [ $UNIXTYPE = "sunos" ]; then
UNIXTYPE="solaris"
elif [ $UNIXTYPE = "freebsd" ]; then
if [ -d /usr/local/openjdk6 ]; then
JAVA_HOME="/usr/local/openjdk6"
elif [ -d /usr/local/openjdk7 ]; then
JAVA_HOME="/usr/local/openjdk7"
fi
elif [ $UNIXTYPE = "openbsd" ]; then
if [ -d /usr/local/jdk-1.7.0 ]; then
JAVA_HOME="/usr/local/jdk-1.7.0"
fi
elif [ $UNIXTYPE = "netbsd" ]; then
if [ -d /usr/pkg/java/openjdk7 ]; then
JAVA_HOME="/usr/pkg/java/openjdk7"
fi
elif [ $UNIXTYPE = "linux" -a -e /etc/debian_version ]; then
if [ -d /usr/lib/jvm/default-java ]; then
JAVA_HOME="/usr/lib/jvm/default-java"
fi
fi
case `uname -m` in case `uname -m` in
amd64) x86_64*|amd64)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-netbsd.so" LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-${UNIXTYPE}.so"
LIBFILE="lib/netnet/support/CPUInformation/libjcpuid-x86_64-netbsd.so";; LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-${UNIXTYPE}.so";;
i?86*)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-netbsd.so"
LIBFILE="lib/netnet/support/CPUInformation/libjcpuid-x86-netbsd.so";;
*)
echo "Unknown build environment"
exit;;
esac
COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/ -I$JAVA_HOME/include/netbsd/";;
FreeBSD*)
case `uname -m` in
amd64)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-freebsd.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-freebsd.so";;
i?86*)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-freebsd.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-freebsd.so";;
*)
echo "Unknown build environment"
exit;;
esac
COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/ -I$JAVA_HOME/include/freebsd/";;
Linux*)
case `uname -m` in
x86_64*)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-linux.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-linux.so";;
ia64*) ia64*)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-linux.so" LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-${UNIXTYPE}.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-ia64-linux.so";; LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-ia64-${UNIXTYPE}.so";;
i?86*) i?86*)
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-linux.so" LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-${UNIXTYPE}.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-linux.so";; LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-${UNIXTYPE}.so";;
*) *)
echo "Unsupported build environment" echo "Unsupported build environment"
exit;; exit;;
esac esac
COMPILEFLAGS="-fPIC -Wall" COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include -I$JAVA_HOME/include/linux";; INCLUDES="-I. -Iinclude -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}";;
esac esac

View File

@@ -21,6 +21,8 @@
# redhat = Red Hat # redhat = Red Hat
# solaris = Solaris # solaris = Solaris
# suse = SuSE # suse = SuSE
# openbsd = OpenBSD
# netbsd = NetBSD
# unknown = OS could not be determined # unknown = OS could not be determined
HOST_OS=`uname -a` HOST_OS=`uname -a`
@@ -36,6 +38,8 @@ FREEBSD=`echo "$HOST_OS" | grep FreeBSD`
LINUX=`echo "$HOST_OS" | grep Linux` LINUX=`echo "$HOST_OS" | grep Linux`
SOLARIS=`echo "$HOST_OS" | grep Solaris` SOLARIS=`echo "$HOST_OS" | grep Solaris`
SUNOS=`echo "$HOST_OS" | grep SunOS` SUNOS=`echo "$HOST_OS" | grep SunOS`
NETBSD=`echo "$HOST_OS" |grep NetBSD`
OPENBSD=`echo "$HOST_OS" |grep OpenBSD`
if [ ! "X$DARWIN" = "X" -o ! "X$MAC" = "X" ]; then if [ ! "X$DARWIN" = "X" -o ! "X$MAC" = "X" ]; then
echo osx echo osx
@@ -47,6 +51,16 @@ if [ ! "X$FREEBSD" = "X" ]; then
exit 0 exit 0
fi fi
if [ ! "X$NETBSD" = "X" ]; then
echo netbsd
exit 0
fi
if [ ! "X$OPENBSD" = "X" ]; then
echo openbsd
exit 0
fi
if [ ! "X$LINUX" = "X" ]; then if [ ! "X$LINUX" = "X" ]; then
LINUX_DISTRO=`cat /proc/version` LINUX_DISTRO=`cat /proc/version`

View File

@@ -46,39 +46,49 @@ case $HOST_OS in
elif [ `echo $OS_ARCH |grep arm` ]; then elif [ `echo $OS_ARCH |grep arm` ]; then
wrapperpath="./lib/wrapper/linux-armv5" wrapperpath="./lib/wrapper/linux-armv5"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
elif [ `echo $OS_ARCH |grep ppc` ]; then elif [ `echo $OS_ARCH |grep ppc` ]; then
wrapperpath="./lib/wrapper/linux-ppc" wrapperpath="./lib/wrapper/linux-ppc"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
elif [ "X$X86_64" = "X" ]; then elif [ "X$X86_64" = "X" ]; then
wrapperpath="./lib/wrapper/linux" wrapperpath="./lib/wrapper/linux"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
else else
wrapperpath="./lib/wrapper/linux64" wrapperpath="./lib/wrapper/linux64"
cp ${wrapperpath}/libwrapper.so ./lib cp ${wrapperpath}/libwrapper.so ./lib
# the 32bit libwrapper.so will be needed if a 32 bit jvm is used # the 32bit libwrapper.so will be needed if a 32 bit jvm is used
cp ./lib/wrapper/linux/libwrapper.so ./lib/libwrapper-linux-x86-32.so cp ./lib/wrapper/linux/libwrapper.so ./lib/libwrapper-linux-x86-32.so
fi fi
;; ;;
freebsd ) freebsd )
if [ ! `echo $OS_ARCH | grep amd64` ]; then if [ ! `echo $OS_ARCH | grep amd64` ]; then
wrapperpath="./lib/wrapper/freebsd" wrapperpath="./lib/wrapper/freebsd"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
else else
wrapperpath="./lib/wrapper/freebsd64" wrapperpath="./lib/wrapper/freebsd64"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
# the 32bit libwrapper.so will be needed if a 32 bit jvm is used # the 32bit libwrapper.so will be needed if a 32 bit jvm is used
cp ./lib/freebsd/libwrapper.so ./lib/libwrapper-freebsd-x86-32.so cp ./lib/freebsd/libwrapper.so ./lib/libwrapper-freebsd-x86-32.so
fi fi
;; ;;
osx ) osx )
wrapperpath="./lib/wrapper/macosx" wrapperpath="./lib/wrapper/macosx"
cp ${wrapperpath}/libwrapper.jnilib ./lib/ cp ${wrapperpath}/libwrapper.jnilib ./lib/
chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter
;; ;;
solaris ) solaris )
wrapperpath="./lib/wrapper/solaris" wrapperpath="./lib/wrapper/solaris"
cp ${wrapperpath}/libwrapper.so ./lib/ cp ${wrapperpath}/libwrapper.so ./lib/
;; ;;
netbsd|openbsd )
# FIXME
# This isn't displayed when installing, but if we fall back to the "*)"
# choice, no cleanup happens and users are advised to copy the wrapper
# in place...but there is no wrapper. Figuring how how to display this,
# such as when doing a headless installation would be good.
echo "The java wrapper is not supported on this platform."
echo "Please use `pwd`/runplain.sh to start I2P."
# But at least the cleanup below will happen.
;;
* ) * )
echo "${ERROR_MSG}" echo "${ERROR_MSG}"
echo "Host OS is $HOST_OS" >> $LOGFILE echo "Host OS is $HOST_OS" >> $LOGFILE
@@ -88,9 +98,12 @@ case $HOST_OS in
;; ;;
esac esac
cp $wrapperpath/i2psvc . if [ ! "X$wrapperpath" = "x" ]; then
cp $wrapperpath/i2psvc .
chmod 755 ./i2psvc
fi
chmod 755 ./eepget chmod 755 ./eepget
chmod 755 ./i2psvc
rm -rf ./icons rm -rf ./icons
rm -rf ./lib/wrapper rm -rf ./lib/wrapper
rm -f ./lib/*.dll rm -f ./lib/*.dll
@@ -109,4 +122,3 @@ fi
rm -f ./osid rm -f ./osid
rm -f ./postinstall.sh rm -f ./postinstall.sh
exit 0 exit 0