From 6760d2a5f4b586429df27cfdc9a1254262b9bbfe Mon Sep 17 00:00:00 2001 From: kytv <kytv@mail.i2p> Date: Mon, 19 Sep 2011 12:23:43 +0000 Subject: [PATCH] Add (Net|Open)BSD support, clean-ups --- core/c/jbigi/mbuild-all.sh | 54 ++++++++++++++++++++------- core/c/jbigi/mbuild_jbigi.sh | 35 ++++++++++++++---- core/c/jcpuid/mbuild.sh | 72 ++++++++++++++++-------------------- 3 files changed, 99 insertions(+), 62 deletions(-) diff --git a/core/c/jbigi/mbuild-all.sh b/core/c/jbigi/mbuild-all.sh index 40ef324893..00beaccdb4 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="powerpc powerpc64 powerpc64le powerpcle atari amiga m68knommu" # and many, many more +MISC_OPENBSD_PLATFORMS="" # # MINGW/Windows?? @@ -44,7 +45,10 @@ 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}" + +# FIXME Is this all? DARWIN_PLATFORMS="core2 corei" # Set the version to 5.0.2 for OSX because @@ -99,18 +103,40 @@ Linux*) PLATFORM_LIST="${LINUX_PLATFORMS}";; esac echo "Building ${TARGET} .so's for ${arch}";; -NetBSD*) - PLATFORM_LIST="${NETBSD_PLATFORMS}" - NAME="libjbigi" - TYPE="so" - TARGET="-netbsd-" - echo "Building netbsd .sos for all architectures";; -FreeBSD*) - PLATFORM_LIST="${FREEBSD_PLATFORMS}" +NetBSD*|FreeBSD*|OpenBSD*) 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) + 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 245431d0d7..4b505d1e16 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 a69cbdf53f..47dfbe9eb8 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*) - 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*) +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 x86_64*) - LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-linux.so" - LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-linux.so";; + 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 -- GitLab