forked from I2P_Developers/i2p.i2p
Improved jcpuid build script
This commit is contained in:
@ -1,9 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd `dirname $0`
|
||||
rm -rf lib
|
||||
mkdir -p lib/freenet/support/CPUInformation
|
||||
|
||||
case `uname -s` in
|
||||
MINGW*|CYGWIN*)
|
||||
[ -z $CC_PREFIX ] && CC_PREFIX=""
|
||||
[ -z $TARGET ] && TARGET="$(uname -s)"
|
||||
[ -z $HOST ] && HOST="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
case $TARGET in
|
||||
MINGW*|CYGWIN*|windows*)
|
||||
echo "Building windows .dlls";;
|
||||
SunOS*)
|
||||
echo "Building solaris .sos";;
|
||||
@ -16,23 +22,69 @@ case `uname -s` in
|
||||
exit;;
|
||||
esac
|
||||
|
||||
rm -rf lib
|
||||
mkdir -p lib/freenet/support/CPUInformation
|
||||
|
||||
[ -z $CC ] && CC="gcc"
|
||||
if [ -z $BITS ]; then
|
||||
BITS=64
|
||||
printf "\aBITS variable not set, defaulting to $BITS\n\a" >&2
|
||||
fi
|
||||
|
||||
case `uname -s` in
|
||||
MINGW*|CYGWIN*)
|
||||
JAVA_HOME="/c/software/j2sdk1.4.2_05"
|
||||
COMPILEFLAGS="-Wall"
|
||||
INCLUDES="-I. -Iinclude -I${JAVA_HOME}/include/ -I${JAVA_HOME}/include/win32/"
|
||||
LINKFLAGS="-shared -static -static-libgcc -Wl,--kill-at"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/jcpuid-x86-windows.dll";;
|
||||
if [ -z $CC ]; then
|
||||
export CC="gcc"
|
||||
printf "\aCC variable not set, defaulting to $CC\n\a" >&2
|
||||
fi
|
||||
|
||||
|
||||
if [ $BITS -eq 32 ]; then
|
||||
export ABI=32
|
||||
export CFLAGS="-m32"
|
||||
export LDFLAGS="-m32"
|
||||
elif [ $BITS -eq 64 ]; then
|
||||
export ABI=64
|
||||
export CFLAGS="-m64"
|
||||
export LDFLAGS="-m64"
|
||||
else
|
||||
printf "\aBITS value \"$BITS\" not valid, please select 32 or 64\n\a" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -z $ARCH ] && case `uname -m` in
|
||||
x86_64*|amd64)
|
||||
if [ $BITS -eq 64 ]; then
|
||||
ARCH="x86_64"
|
||||
else
|
||||
ARCH="x86"
|
||||
fi
|
||||
;;
|
||||
ia64*)
|
||||
ARCH="ia64";;
|
||||
i?86*)
|
||||
ARCH="x86";;
|
||||
# Solaris x86
|
||||
i86pc)
|
||||
if [ $BITS -eq 64 ]; then
|
||||
ARCH="x86_64"
|
||||
else
|
||||
ARCH="x86"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported build environment. jcpuid is only used on x86 systems."
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
|
||||
case $TARGET in
|
||||
MINGW*|CYGWIN*|windows*)
|
||||
[ -z $JAVA_HOME ] && JAVA_HOME="/c/software/j2sdk1.4.2_05"
|
||||
CFLAGS="${CFLAGS} -Wall"
|
||||
INCLUDES="-I. -Iinclude -I${JAVA_HOME}/include/ -I${JAVA_HOME}/include/$HOST/"
|
||||
LDFLAGS="${LDFLAGS} -shared -static -static-libgcc -Wl,--kill-at"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/jcpuid-${ARCH}-windows.dll";;
|
||||
Darwin*)
|
||||
JAVA_HOME=$(/usr/libexec/java_home)
|
||||
COMPILEFLAGS="-fPIC -Wall -arch x86_64 -arch i386"
|
||||
CFLAGS="${CFLAGS} -fPIC -Wall -arch x86_64 -arch i386"
|
||||
INCLUDES="-I. -Iinclude -I${JAVA_HOME}/include/"
|
||||
LINKFLAGS="-dynamiclib -framework JavaVM"
|
||||
LDFLAGS="${LDFLAGS} -dynamiclib -framework JavaVM"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-darwin.jnilib";;
|
||||
Linux*|OpenBSD*|NetBSD*|*FreeBSD*|SunOS*)
|
||||
KFREEBSD=0
|
||||
@ -52,41 +104,23 @@ case `uname -s` in
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Abort script on uncaught errors
|
||||
set -e
|
||||
|
||||
case `uname -m` in
|
||||
x86_64*|amd64)
|
||||
ARCH="x86_64";;
|
||||
ia64*)
|
||||
ARCH="ia64";;
|
||||
i?86*)
|
||||
ARCH="x86";;
|
||||
# Solaris x86
|
||||
i86pc)
|
||||
if $(echo $CC | grep -q '\-m64') ; then
|
||||
ARCH="x86_64"
|
||||
else
|
||||
ARCH="x86"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported build environment. jcpuid is only used on x86 systems."
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
LINKFLAGS="-shared -Wl,-soname,libjcpuid-${ARCH}-${UNIXTYPE}.so"
|
||||
LDFLAGS="${LDFLAGS} -shared -Wl,-soname,libjcpuid-${ARCH}-${UNIXTYPE}.so"
|
||||
if [ $KFREEBSD -eq 1 ]; then
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-kfreebsd.so"
|
||||
else
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-${UNIXTYPE}.so"
|
||||
fi
|
||||
COMPILEFLAGS="-fPIC -Wall"
|
||||
CFLAGS="${CFLAGS} -fPIC -Wall"
|
||||
INCLUDES="-I. -Iinclude -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${UNIXTYPE}";;
|
||||
esac
|
||||
|
||||
echo "CC_PREFIX:$CC_PREFIX"
|
||||
echo "TARGET:$TARGET"
|
||||
echo "HOST:$HOST"
|
||||
echo "ARCH:$ARCH"
|
||||
|
||||
echo "Compiling C code..."
|
||||
rm -f ${LIBFILE}
|
||||
${CC} ${COMPILEFLAGS} ${LINKFLAGS} ${INCLUDES} src/*.c -o ${LIBFILE} || (echo "Failed to compile ${LIBFILE}"; exit 1)
|
||||
strip ${LIBFILE} || (echo "Failed to strip ${LIBFILE}" ; exit 1)
|
||||
${CC_PREFIX}${CC} ${CFLAGS} ${LDFLAGS} ${INCLUDES} src/*.c -o ${LIBFILE} || (echo "Failed to compile ${LIBFILE}"; exit 1)
|
||||
${CC_PREFIX}strip ${LIBFILE} || (echo "Failed to strip ${LIBFILE}" ; exit 1)
|
||||
echo Built `dirname $0`/${LIBFILE}
|
||||
|
Reference in New Issue
Block a user