summaryrefslogtreecommitdiff
path: root/project/config/cfgdefs.sh
blob: 4f07150df424a6a9608545ff3c4aa4a6573b4641 (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
# in projects where [ $mb_use_custom_cfgdefs = yes ],
# cfgdefs.sh is invoked from within ./configure via
# . $mb_project_dir/project/cfgdefs.sh

# this file is covered by COPYING.BAUTOMAKE.

# a successful return from cfgdefs.sh will be followed
# by a second invocation of the config_copy() function,
# reflecting any changes to common config variables
# made by cfgdefs.sh.

# finally, cfgdefs.sh may update the contents of the
# config-time generated cfgdefs.mk.


for arg ; do
	case "$arg" in
		--with-host-perl=*)
			mb_host_perl=${arg#*=}
			;;

		--with-host-sh=*)
			mb_host_sh=${arg#*=}
			;;

		*)
			error_msg ${arg#}: "unsupported config argument."
			exit 2
	esac
done


cfgdefs_detect_automake_version()
{
	automake_ver=$(grep 'VERSION' "$mb_source_dir/doc/version.texi")
	automake_ver=${automake_ver##* }

	automake_year=$(grep 'UPDATED-MONTH' "$mb_source_dir/doc/version.texi")
	automake_year=${automake_year##* }

	automake_major=$(printf '%s' "$automake_ver" | cut -d'.' -f1)
	automake_minor=$(printf '%s' "$automake_ver" | cut -d'.' -f2)
	automake_micro=$(printf '%s' "$automake_ver" | cut -d'.' -f3)

	if [ -z "$automake_major" ] || [ -z "$automake_minor" ]; then
		error_msg "Could not properly parse automake's version.texi"
		exit 2
	fi
}


cfgdefs_output_custom_defs()
{
	mb_host_perl=${mb_host_perl:-/usr/bin/perl}
	mb_host_sh=${mb_host_sh:-/usr/bin/sh}

	sed \
			-e 's/@automake_ver@/'"$automake_ver"'/g'       \
			-e 's/@automake_year@/'"$automake_year"'/g'     \
			-e 's/@automake_major@/'"$automake_major"'/g'   \
			-e 's/@automake_minor@/'"$automake_minor"'/g'   \
			-e 's/@automake_micro@/'"$automake_micro"'/g'   \
			-e 's!@host_perl@!'"$mb_host_perl"'!g'          \
			-e 's!@host_sh@!'"$mb_host_sh"'!g'              \
		"$mb_project_dir/project/config/cfgdefs.in"         \
	| sed -e 's/[ \t]*$//g'                                     \
			>> "$mb_pwd/cfgdefs.mk"
}


# automake version info
cfgdefs_detect_automake_version

# cfgdefs.in --> cfgdefs.mk
cfgdefs_output_custom_defs

# all done
return 0