summaryrefslogtreecommitdiffhomepage
path: root/project/config/cfgdefs.sh
blob: 20daffc5aba4b24c1be13c81ee5b830ba89e603f (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
for arg ; do
	case "$arg" in
		*)
			error_msg ${arg#}: "unsupported config argument."
			exit 2
	esac
done

cfgdefs_set_arch()
{
	if [ -n "$mb_arch" ]; then
		return 0
	fi

	case "$mb_cchost" in
		*-*-*-* )
			mb_arch=${mb_cchost%-*-*-*}
			;;
		*-*-* )
			mb_arch=${mb_cchost%-*-*}
			;;
		*-* )
			mb_arch=${mb_cchost%-*-*-*}
			;;
		* )
			mb_arch='unknown'
			;;
	esac

	if [ "$mb_os" = 'midipix' ]; then
		case "$mb_arch" in
			x86_64 )
				mb_arch='nt64'
				;;
			i[3-6]86 )
				mb_arch='nt32'
				;;
		esac
	fi
}


cfgdefs_detect_libc_version()
{
	mb_libc_verinfo=$(cat "$mb_source_dir/VERSION")

	case "$mb_libc_verinfo" in
		*.*.* )
			libc_ver=${mb_libc_verinfo}
			libc_major=${mb_libc_verinfo%.*.*}
			libc_micro=${mb_libc_verinfo#*.*.}

			libc_minor=${libc_ver#*.}
			libc_minor=${libc_minor%.*}
			;;
		* )
			error_msg "Could not properly parse $mb_source_dir/VERSION"
			exit 2
	esac
}


cfgdefs_output_custom_defs()
{
	sed \
			-e 's/@libc_ver@/'"$libc_ver"'/g'       \
			-e 's/@libc_major@/'"$libc_major"'/g'   \
			-e 's/@libc_minor@/'"$libc_minor"'/g'   \
			-e 's/@libc_micro@/'"$libc_micro"'/g'   \
		"$mb_project_dir/project/config/cfgdefs.in"         \
	| sed -e 's/[ \t]*$//g'                                     \
			>> "$mb_pwd/cfgdefs.mk"
}


# arch
cfgdefs_set_arch

# libc version info
cfgdefs_detect_libc_version

# cfgdefs.in --> cfgdefs.mk
cfgdefs_output_custom_defs

# all done
return 0