summaryrefslogtreecommitdiffstats
path: root/core/includes/system.inc
diff options
context:
space:
mode:
Diffstat (limited to 'core/includes/system.inc')
-rw-r--r--core/includes/system.inc37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/includes/system.inc b/core/includes/system.inc
new file mode 100644
index 00000000..ea953d69
--- /dev/null
+++ b/core/includes/system.inc
@@ -0,0 +1,37 @@
+# Helper to determine various system information
+
+__init () {
+ # determine architecture triplet from the path of libc needed by the executing shell.
+ # please try not to use this to find/fetch libs in /lib or /usr/lib.
+ # Use ARCH_LIB_DIR, like "$ARCH_LIB_DIR/somefile.so" or "/usr$ARCH_LIB_DIR/somefile.so"
+ ARCH_TRIPLET=$(ldd $SHELL|grep "libc.so" | awk -F "/" '{print $3}')
+ [[ $ARCH_TRIPLET == *\(*\) ]] && ARCH_TRIPLET=""
+
+ ARCH_LIB_DIR=$(ldd $SHELL | grep "libc.so" | sed -r 's#^.*(/lib.*)/libc.so.*$#\1#g')
+ [ -z "$ARCH_LIB_DIR" -o ! -d "$ARCH_LIB_DIR" ] && perror "Could not determine arch dependent lib dir (where libc.so resides)"
+
+ # determine number of CPU cores
+ declare -rg CPU_CORES=$(cat /proc/cpuinfo | grep processor | wc -l)
+ export MAKEFLAGS="-j$CPU_CORES"
+
+ # Determine if we have lib64
+ if [ "$(uname -m)x" = "x86_64x" ]; then
+ # Setting LIB64, as openSuse differentiates but Ubuntu does not:
+ case $SYS_DISTRIBUTION in
+ ubuntu | debian) LIB64="lib" ;;
+ opensuse | fedora | centos) LIB64="lib64" ;;
+ *) perror "Cannot set LIB64, SYS_DISTRIBUTION: $SYS_DISTRIBUTION unknown!" ;;
+ esac
+ AMD64_I386=amd64
+ X86_64_I586=x86_64
+ AMD64_X86=amd64
+ ARCHREGEX="(amd64|x86[_-]64)"
+ else
+ LIB64="lib"
+ AMD64_I386=i386
+ X86_64_I586=i586
+ AMD64_X86=x86
+ ARCHREGEX="(i[3456]86|x86[_-]32)"
+ fi
+}
+