summaryrefslogtreecommitdiffstats
path: root/helper/system.inc
blob: defa5c9843d2beef216b2a96a6be30cd58d411cf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Helper to determine various system information

#
# 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}')
#[ -z "$ARCH_TRIPLET" ] && pwarning "Could not determine arch triplet."
[[ $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 kernel version
KERNEL_CURRENT_VERSION=$(uname -r)
[ ! -z $KERNEL_CURRENT_VERSION ] || pwarning "Could not determine kernel version."

# determine number of CPU cores
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:
	SYS_DISTRIBUTION=$(lsb_release -is | tr '[A-Z]' '[a-z]' | sed -r 's/[^a-z0-9]//g;s/project$//g;s/scientificsl$/scientific/g')
	case $SYS_DISTRIBUTION in
		ubuntu | debian)	LIB64="lib" ;;
		opensuse)		LIB64="lib64" ;;
		*)			perror "Cannot set LIB64, SYS_DISTRIBUTION: $SYS_DISTRIBUTION unknown!" ;;
	esac
	AMD64_I386=amd64
	X86_64_I586=x86_64
	AMD64_X86=amd64
else
	LIB64="lib"
	AMD64_I386=i386
	X86_64_I586=i586
	AMD64_X86=x86
fi