summaryrefslogtreecommitdiffhomepage
path: root/configure
blob: 8d175eb3d6ac1d81d2403bcd937baa0a72bc3140 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/sh

# a simple configure-make wrapper for use in conjunction with the 'lazy' build script.
# 'lazy' is deviant, occasionally useful, and permissively licensed; get_lazy() below,
# then look for configure.template in the root directory.

init_vars()
{
	lz_config_dir=`readlink -f $(dirname $0)`
	lz_pwd=`pwd`

	if [ x"$lz_config" = x ]; then
		. $lz_config_dir/config.lzy || exit 2
	else
		. "$lz_config" || exit 2
	fi
}


error_msg()
{
	echo $@ >&2
}


require_out_of_tree()
{
	if [ x"$lz_config_dir" = x"$lz_pwd" ]; then
		error_msg "$lz_package: out-of-tree builds are required."
		error_msg "please invoke configure again from a clean build directory."
		exit 2
	fi

	return 0
}


get_lazy()
{
	which lazy && lazy=`which lazy` && return 0

	if ! [ -d slazy ]; then
		git clone git://midipix.org/lazy slazy || exit 2
	fi

	lazy=$lz_pwd/slazy/lazy
}


lazy_approach()
{
	if [ x"$lz_prefix" = x ]; then
		error_msg "prefix is required."
		exit 2
	fi

	if [ x"$lz_arch" = x ];     then lz_arch=$lz_default_arch; fi
	if [ x"$lz_subarch" = x ];  then lz_subarch=$lz_default_subarch; fi
	if [ x"$lz_target" = x ];   then lz_target=$lz_default_target; fi
	if [ x"$lz_compiler" = x ]; then lz_compiler=$lz_default_compiler; fi
	if [ x"$lz_compiler" = x ]; then lz_compiler=gcc; fi

	$lazy -x config	$lz_debug	\
		-t $lz_target		\
		-a $lz_arch		\
		-c $lz_compiler		\
		-n $lz_package		\
		-p $lz_config_dir	\
		-f $lz_prefix		\
		|| exit 2

}


lazy_copy()
{
	cp "$lz_config_dir/Makefile.in" "$lz_pwd/Makefile"
}


for arg ; do
	case "$arg" in
		--help)	usage
			;;

		--prefix=*)
			lz_prefix=${arg#*=}
			;;
		--host=*)
			lz_target=${arg#*=}
			;;
		--target=*)
			lz_target=${arg#*=}
			;;
		--compiler=*)
			lz_compiler=${arg#*=}
			;;
		--config=*)
			lz_config=${arg#*=}
			;;
		--debug)
			lz_debug='-d'
			;;
		*)
			error_msg ${arg#}: "unsupported config argument."
			exit 2
			;;
	esac
done


init_vars
require_out_of_tree
get_lazy
lazy_approach
lazy_copy