cookutils rev 359

cook: Handle cross compilation
author Christophe Lincoln <pankso@slitaz.org>
date Wed May 09 18:25:13 2012 +0200 (2012-05-09)
parents ff8ec325d545
children c75f13234af0
files cook
line diff
     1.1 --- a/cook	Thu Apr 26 13:34:41 2012 +0200
     1.2 +++ b/cook	Wed May 09 18:25:13 2012 +0200
     1.3 @@ -312,6 +312,7 @@
     1.4  Files      : $files
     1.5  Cook time  : ${sec}s $min
     1.6  Cook date  : $cookdate
     1.7 +Arch type  : $ARCH
     1.8  $(separator)
     1.9  EOT
    1.10  }
    1.11 @@ -440,6 +441,17 @@
    1.12  	echo "Cook: $PACKAGE $VERSION"
    1.13  	separator
    1.14  	set_paths
    1.15 +
    1.16 +	# Handle cross compilation
    1.17 +	case "$ARCH" in
    1.18 +		arm|x86_64)
    1.19 +			echo "cook: adding /usr/cross/$ARCH/bin to PATH"
    1.20 +			export PATH=$PATH:/usr/cross/$ARCH/bin
    1.21 +			echo "cook: using C compiler $HOST_SYSTEM-gcc"
    1.22 +			export CC=${HOST_SYSTEM}-gcc
    1.23 +			export CXX=${HOST_SYSTEM}-g++ ;;
    1.24 +	esac
    1.25 +
    1.26  	[ "$QA" ] && receipt_quality
    1.27  	cd $pkgdir
    1.28  	rm -rf install taz source
    1.29 @@ -622,8 +634,15 @@
    1.30  # but it doesn't handle EXTRAVERSION.
    1.31  packit() {
    1.32  	set_paths
    1.33 +
    1.34 +	# Handle cross compilation
    1.35 +	case "$ARCH" in
    1.36 +		arm|x86_64) VERSION="$VERSION-$ARCH" ;;
    1.37 +	esac
    1.38 +
    1.39  	echo "Pack: $PACKAGE $VERSION"
    1.40  	separator
    1.41 +
    1.42  	if grep -q ^genpkg_rules $receipt; then
    1.43  		gettext -e "Executing: genpkg_rules\n"
    1.44  		set -e && cd $pkgdir && mkdir -p $fs
    1.45 @@ -878,11 +897,6 @@
    1.46  			for pkg in $(mkinstall_list $SETUP_PKGS); do
    1.47  				tazpkg get-install $pkg --forced
    1.48  			done ;;
    1.49 -		*\ --arm\ *)
    1.50 -				hg clone $WOK_URL wok || exit 1
    1.51 -				sed -i s'/ARCH=.*/ARCH="arm"/' /etc/slitaz/cook.conf
    1.52 -				sed -i s'/BUILD_SYSTEM=.*/BUILD_SYSTEM=i486-slitaz-linux/' \
    1.53 -					/etc/slitaz/cook.conf ;;
    1.54  		*)
    1.55  			for pkg in $SETUP_PKGS
    1.56  			do
    1.57 @@ -911,6 +925,22 @@
    1.58  		find $SLITAZ -maxdepth 2 -exec chmod g+w {} \;
    1.59  		separator
    1.60  		gettext -e "All done, ready to cook packages :-)\n\n" ;;
    1.61 +	arm-setup)
    1.62 +		# Setup fro cross ARM compiling.
    1.63 +		sed -i \
    1.64 +			-e s'/ARCH=.*/ARCH="arm"/' \
    1.65 +			-e s'/CFLAGS=.*/CFLAGS=""/' \
    1.66 +			-e s'/BUILD_SYSTEM=.*/BUILD_SYSTEM=i486-slitaz-linux/' \
    1.67 +			-e s'/HOST_SYSTEM=.*/HOST_SYSTEM=$ARCH-slitaz-linux-gnueabi/' \
    1.68 +				/etc/slitaz/cook.conf
    1.69 +		. /etc/slitaz/cook.conf
    1.70 +		echo "Target arch   : $ARCH"
    1.71 +		echo "Configure args: $CONFIGURE_ARGS"
    1.72 +		if [ -x /usr/cross/$ARCH/bin/${HOST_SYSTEM}-gcc ]; then
    1.73 +			echo "Cross compiler: ${HOST_SYSTEM}-gcc"
    1.74 +		else
    1.75 +			echo "ERROR: C compiler is missing: ${HOST_SYSTEM}-gcc"
    1.76 +		fi ;;
    1.77  	test)
    1.78  		# Test a cook environment.
    1.79  		echo "Cook test: testing the cook environment" | log