Blob Blame History Raw
#!/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