diff --git a/core/c/jbigi/mbuild-all.sh b/core/c/jbigi/mbuild-all.sh index 40ef32489..4814d5898 100755 --- a/core/c/jbigi/mbuild-all.sh +++ b/core/c/jbigi/mbuild-all.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash #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 # 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" # -# 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. # Do NOT add any X86 platforms, do that below in the x86 platform list. # 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?? @@ -44,7 +45,11 @@ X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon g MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}" LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_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" # Set the version to 5.0.2 for OSX because @@ -86,7 +91,7 @@ Linux*) arch="x86";; esac case ${arch} in - x86_64) + x86_64 | amd64) PLATFORM_LIST="${X86_64_PLATFORMS}" TARGET="-linux-X86_64-";; ia64) @@ -99,18 +104,40 @@ Linux*) PLATFORM_LIST="${LINUX_PLATFORMS}";; esac echo "Building ${TARGET} .so's for ${arch}";; -NetBSD*) - PLATFORM_LIST="${NETBSD_PLATFORMS}" +NetBSD*|FreeBSD*|OpenBSD*) NAME="libjbigi" TYPE="so" - TARGET="-netbsd-" - echo "Building netbsd .sos for all architectures";; -FreeBSD*) - PLATFORM_LIST="${FREEBSD_PLATFORMS}" - NAME="libjbigi" - TYPE="so" - TARGET="-freebsd-" - echo "Building freebsd .sos for all architectures";; + 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}";; *) echo "Unsupported build environment" exit;; diff --git a/core/c/jbigi/mbuild_jbigi.sh b/core/c/jbigi/mbuild_jbigi.sh index 245431d0d..4b505d1e1 100755 --- a/core/c/jbigi/mbuild_jbigi.sh +++ b/core/c/jbigi/mbuild_jbigi.sh @@ -23,21 +23,40 @@ Darwin*) INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include" LINKFLAGS="-dynamiclib -framework JavaVM" 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" - 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" LIBFILE="libjbigi.so";; - *) - COMPILEFLAGS="-fPIC -Wall" - INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/linux" - LINKFLAGS="-shared -Wl,-soname,libjbigi.so" - LIBFILE="libjbigi.so";; + echo "Unsupported system type." + exit 1;; esac 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" INCLUDELIBS="-lgmp" else diff --git a/core/c/jcpuid/mbuild.sh b/core/c/jcpuid/mbuild.sh index a69cbdf53..14dec0309 100755 --- a/core/c/jcpuid/mbuild.sh +++ b/core/c/jcpuid/mbuild.sh @@ -7,10 +7,8 @@ CYGWIN*) echo "Building windows .dlls";; Linux*) echo "Building linux .sos";; -NetBSD*) - echo "Building netbsd .sos";; -FreeBSD*) - echo "Building freebsd .sos";; +NetBSD*|OpenBSD*|FreeBSD*) + echo "Building `uname -s |tr [A-Z] [a-z]` .sos";; Darwin*) echo "Building OSX jnilibs";; *) @@ -39,51 +37,45 @@ Darwin*) INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/" LINKFLAGS="-dynamiclib -framework JavaVM" 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 - amd64) - LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-netbsd.so" - LIBFILE="lib/netnet/support/CPUInformation/libjcpuid-x86_64-netbsd.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";; + x86_64*|amd64) + LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-${UNIXTYPE}.so" + LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-${UNIXTYPE}.so";; ia64*) - LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-linux.so" - LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-ia64-linux.so";; + LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-${UNIXTYPE}.so" + LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-ia64-${UNIXTYPE}.so";; i?86*) - LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-linux.so" - LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-linux.so";; + LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-${UNIXTYPE}.so" + LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-${UNIXTYPE}.so";; *) echo "Unsupported build environment" exit;; esac 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 diff --git a/installer/resources/osid b/installer/resources/osid index 4b5630b57..f5fc79a14 100644 --- a/installer/resources/osid +++ b/installer/resources/osid @@ -21,6 +21,8 @@ # redhat = Red Hat # solaris = Solaris # suse = SuSE +# openbsd = OpenBSD +# netbsd = NetBSD # unknown = OS could not be determined HOST_OS=`uname -a` @@ -36,6 +38,8 @@ FREEBSD=`echo "$HOST_OS" | grep FreeBSD` LINUX=`echo "$HOST_OS" | grep Linux` SOLARIS=`echo "$HOST_OS" | grep Solaris` 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 echo osx @@ -47,6 +51,16 @@ if [ ! "X$FREEBSD" = "X" ]; then exit 0 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 LINUX_DISTRO=`cat /proc/version` diff --git a/installer/resources/postinstall.sh b/installer/resources/postinstall.sh index 7910c5400..f13cf19b6 100644 --- a/installer/resources/postinstall.sh +++ b/installer/resources/postinstall.sh @@ -46,39 +46,49 @@ case $HOST_OS in elif [ `echo $OS_ARCH |grep arm` ]; then wrapperpath="./lib/wrapper/linux-armv5" cp ${wrapperpath}/libwrapper.so ./lib/ - elif [ `echo $OS_ARCH |grep ppc` ]; then - wrapperpath="./lib/wrapper/linux-ppc" - cp ${wrapperpath}/libwrapper.so ./lib/ + elif [ `echo $OS_ARCH |grep ppc` ]; then + wrapperpath="./lib/wrapper/linux-ppc" + cp ${wrapperpath}/libwrapper.so ./lib/ elif [ "X$X86_64" = "X" ]; then wrapperpath="./lib/wrapper/linux" cp ${wrapperpath}/libwrapper.so ./lib/ else wrapperpath="./lib/wrapper/linux64" cp ${wrapperpath}/libwrapper.so ./lib - # 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 + # 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 fi ;; freebsd ) - if [ ! `echo $OS_ARCH | grep amd64` ]; then - wrapperpath="./lib/wrapper/freebsd" - cp ${wrapperpath}/libwrapper.so ./lib/ - else - wrapperpath="./lib/wrapper/freebsd64" - cp ${wrapperpath}/libwrapper.so ./lib/ - # 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 - fi + if [ ! `echo $OS_ARCH | grep amd64` ]; then + wrapperpath="./lib/wrapper/freebsd" + cp ${wrapperpath}/libwrapper.so ./lib/ + else + wrapperpath="./lib/wrapper/freebsd64" + cp ${wrapperpath}/libwrapper.so ./lib/ + # 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 + fi ;; osx ) wrapperpath="./lib/wrapper/macosx" cp ${wrapperpath}/libwrapper.jnilib ./lib/ - chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter + chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter ;; solaris ) wrapperpath="./lib/wrapper/solaris" 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 "Host OS is $HOST_OS" >> $LOGFILE @@ -88,9 +98,12 @@ case $HOST_OS in ;; esac -cp $wrapperpath/i2psvc . +if [ ! "X$wrapperpath" = "x" ]; then + cp $wrapperpath/i2psvc . + chmod 755 ./i2psvc +fi + chmod 755 ./eepget -chmod 755 ./i2psvc rm -rf ./icons rm -rf ./lib/wrapper rm -f ./lib/*.dll @@ -109,4 +122,3 @@ fi rm -f ./osid rm -f ./postinstall.sh exit 0 -