summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVishal Bhoj <vishal.bhoj@linaro.org>2011-12-01 08:59:09 +0000
committerVishal Bhoj <vishal.bhoj@linaro.org>2011-12-01 08:59:27 +0000
commit3590b596b5e3ec3d3e89490e0fe2ba634c4f2e22 (patch)
tree17c6a68fdf5aef11b011cfd0b17e8c0aef84863b
downloadcommon-3590b596b5e3ec3d3e89490e0fe2ba634c4f2e22.tar.gz
vendor/linaro: Initial commitHEADmaster
Added build files from device/linaro/common Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
-rw-r--r--tasks/bootfiles.mk69
-rw-r--r--tasks/kernel.mk38
-rwxr-xr-xtasks/mktarball.sh62
-rw-r--r--tasks/tarballs.mk36
-rw-r--r--tasks/uboot.mk46
5 files changed, 251 insertions, 0 deletions
diff --git a/tasks/bootfiles.mk b/tasks/bootfiles.mk
new file mode 100644
index 0000000..4635935
--- /dev/null
+++ b/tasks/bootfiles.mk
@@ -0,0 +1,69 @@
+.PHONY: u-boot-img mlo
+ifeq ($(TARGET_PRODUCT), pandaboard)
+u-boot-img: $(PRODUCT_OUT)/u-boot.img
+mlo: $(PRODUCT_OUT)/MLO
+else
+ifeq ($(TARGET_PRODUCT), full_panda)
+u-boot-img: $(PRODUCT_OUT)/u-boot.img
+mlo: $(PRODUCT_OUT)/MLO
+else
+u-boot-img:
+mlo:
+endif
+endif
+
+.PHONY: u-boot
+ifeq ($(TARGET_USE_UBOOT),true)
+u-boot: $(PRODUCT_OUT)/u-boot.bin
+else
+u-boot:
+endif
+
+.PHONY: xloader-config
+.PHONY: x-loader
+.PHONY: cleanup
+ifeq ($(TARGET_USE_XLOADER),true)
+cleanup:
+ cd $(TOP)/device/linaro/x-loader &&\
+ make mrproper
+
+xloader-config: cleanup
+ cd $(TOP)/device/linaro/x-loader &&\
+ make $(XLOADER_CONFIG)
+
+x-loader: xloader-config
+ cd $(TOP)/device/linaro/x-loader &&\
+ make ARCH=arm CROSS_COMPILE=$(shell sh -c "cd $(TOP); cd `dirname $(TARGET_TOOLS_PREFIX)`; pwd")/$(shell basename $(TARGET_TOOLS_PREFIX)) all
+else
+xloader-config:
+x-loader:
+endif
+
+.PHONY: copybootfiles
+copybootfiles: x-loader u-boot u-boot-img mlo
+ $(hide) mkdir -p $(PRODUCT_OUT)/boot
+ifeq ($(TARGET_PRODUCT), pandaboard)
+ cp $(PRODUCT_OUT)/u-boot.img $(PRODUCT_OUT)/boot
+ cp $(PRODUCT_OUT)/MLO $(PRODUCT_OUT)/boot
+endif
+ifeq ($(TARGET_PRODUCT), full_panda)
+ cp $(PRODUCT_OUT)/u-boot.img $(PRODUCT_OUT)/boot
+ cp $(PRODUCT_OUT)/MLO $(PRODUCT_OUT)/boot
+endif
+ifeq ($(TARGET_USE_UBOOT),true)
+ cp $(PRODUCT_OUT)/u-boot.bin $(PRODUCT_OUT)/boot
+ifeq ($(TARGET_PRODUCT), iMX53)
+ cp -L $(PRODUCT_OUT)/u-boot.imx $(PRODUCT_OUT)/boot
+endif
+endif
+ifeq ($(TARGET_USE_XLOADER),true)
+ cp $(TOP)/device/linaro/x-loader/MLO $(PRODUCT_OUT)/boot
+endif
+
+.PHONY: uInitrd
+uInitrd: copybootfiles
+ $(hide) mkdir -p $(PRODUCT_OUT)/boot
+ $(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $(PRODUCT_OUT)/obj/Initrd
+ mkimage -A arm -O linux -T ramdisk -n "Android Ramdisk Image" -d $(PRODUCT_OUT)/obj/Initrd $(PRODUCT_OUT)/boot/uInitrd
+
+$(INSTALLED_BOOTTARBALL_TARGET): copybootfiles uInitrd
diff --git a/tasks/kernel.mk b/tasks/kernel.mk
new file mode 100644
index 0000000..94fe549
--- /dev/null
+++ b/tasks/kernel.mk
@@ -0,0 +1,38 @@
+ifneq ($(strip $(SHOW_COMMANDS)),)
+KERNEL_VERBOSE="V=1"
+endif
+
+android_kernel: $(PRODUCT_OUT)/u-boot.bin
+ cd $(TOP)/kernel &&\
+ $(MAKE) -j1 $(KERNEL_VERBOSE) ARCH=arm CROSS_COMPILE=arm-eabi- defconfig $(KERNEL_CONFIG) &&\
+ $(MAKE) $(KERNEL_VERBOSE) ARCH=arm CROSS_COMPILE=arm-eabi- uImage
+
+android_kernel_modules: $(INSTALLED_KERNEL_TARGET) $(ACP)
+ cd $(TOP)/kernel &&\
+ $(MAKE) ARCH=arm CROSS_COMPILE=arm-eabi- modules
+ mkdir -p $(TOP)/kernel/modules_for_android
+ cd $(TOP)/kernel &&\
+ $(MAKE) ARCH=arm CROSS_COMPILE=arm-eabi- modules_install INSTALL_MOD_PATH=modules_for_android
+ mkdir -p $(TARGET_OUT)/modules
+ find kernel/modules_for_android -name "*.ko" -exec $(ACP) -fpt {} $(TARGET_OUT)/modules/ \;
+
+
+ifeq ($(TARGET_USE_GATOR),true)
+KERNEL_PATH:=$(shell pwd)/kernel
+gator_driver: android_kernel_modules $(INSTALLED_KERNEL_TARGET) $(ACP)
+ cd $(TOP)/external/gator/driver &&\
+ $(MAKE) ARCH=arm CROSS_COMPILE=arm-eabi- -C $(KERNEL_PATH) M=`pwd` modules
+ mkdir -p $(TARGET_OUT)/modules
+ find $(TOP)/external/gator/driver/. -name "*.ko" -exec $(ACP) -fpt {} $(TARGET_OUT)/modules/ \;
+else
+gator_driver:
+endif
+
+out_of_tree_modules: $(INSTALLED_KERNEL_TARGET) gator_driver
+
+$(INSTALLED_KERNEL_TARGET): android_kernel
+ cp $(TOP)/kernel/arch/arm/boot/uImage $(PRODUCT_OUT)/boot/
+ ln -sf ../../../../kernel/arch/arm/boot/uImage $(INSTALLED_KERNEL_TARGET)
+
+$(INSTALLED_SYSTEMTARBALL_TARGET): android_kernel_modules out_of_tree_modules
+$(INSTALLED_BOOTTARBALL_TARGET): android_kernel
diff --git a/tasks/mktarball.sh b/tasks/mktarball.sh
new file mode 100755
index 0000000..c9f51de
--- /dev/null
+++ b/tasks/mktarball.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+# This is a modified copy of build/tools/mktarball.sh
+# Used for creating the root tarball.
+
+
+# $1: path to fs_get_stats program
+# $2: start dir
+# $3: subdir to tar up (from $2)
+# $4: target tar name
+# $5: target tarball name (usually $(3).bz2)
+
+if [ $# -ne 5 ]; then
+ echo "Error: wrong number of arguments in cmd: $0 $* "
+ exit 1
+fi
+
+fs_get_stats=`readlink -f $1`
+start_dir=`readlink -f $2`
+dir_to_tar=$3
+target_tar=`readlink -f $4`
+target_tarball=`readlink -f $5`
+
+cd $2
+
+#tar --no-recursion -cvf ${target_tar} ${dir_to_tar}
+rm ${target_tar} > /dev/null 2>&1
+
+# do dirs first
+subdirs=`find ${dir_to_tar} -type d -print`
+files=`find ${dir_to_tar} \! -type d -print`
+for f in ${subdirs} ${files} ; do
+ curr_perms=`stat -c 0%a $f`
+ [ -d "$f" ] && is_dir=1 || is_dir=0
+ f2=`echo ${f#*/}`
+ new_info=`${fs_get_stats} ${curr_perms} ${is_dir} ${f2}`
+ new_uid=`echo ${new_info} | awk '{print $1;}'`
+ new_gid=`echo ${new_info} | awk '{print $2;}'`
+ new_perms=`echo ${new_info} | awk '{print $3;}'`
+# echo "$f: dir: $is_dir curr: $curr_perms uid: $new_uid gid: $new_gid "\
+# "perms: $new_perms"
+ tar --no-recursion --numeric-owner --owner $new_uid \
+ --group $new_gid --mode $new_perms -p -rf ${target_tar} ${f}
+done
+
+if [ $? -eq 0 ] ; then
+ case "${target_tarball}" in
+ *.bz2 )
+ bzip2 -c ${target_tar} > ${target_tarball}
+ ;;
+ *.gz )
+ gzip -c ${target_tar} > ${target_tarball}
+ ;;
+ esac
+ success=$?
+ [ $success -eq 0 ] || rm -f ${target_tarball}
+ rm -f ${target_tar}
+ exit $success
+fi
+
+rm -f ${target_tar}
+exit 1
diff --git a/tasks/tarballs.mk b/tasks/tarballs.mk
new file mode 100644
index 0000000..6547230
--- /dev/null
+++ b/tasks/tarballs.mk
@@ -0,0 +1,36 @@
+#
+# Trigger build of tar balls for the linaro boards
+#
+
+LINARO_MKTARBALL := device/linaro/common/tasks/mktarball.sh
+
+#######
+## root tarball
+define build-roottarball-target
+ $(hide) echo "Target root fs tarball:" $(INSTALLED_ROOTTARBALL_TARGET)
+ $(hide) $(LINARO_MKTARBALL) $(FS_GET_STATS) \
+ $(PRODUCT_OUT)/root . $(PRIVATE_ROOT_TAR) \
+ $(INSTALLED_ROOTTARBALL_TARGET)
+endef
+
+ifndef ROOT_TARBALL_FORMAT
+ ROOT_TARBALL_FORMAT := bz2
+endif
+
+root_tar := $(PRODUCT_OUT)/root.tar
+INSTALLED_ROOTTARBALL_TARGET := $(root_tar).$(ROOT_TARBALL_FORMAT)
+
+$(INSTALLED_ROOTTARBALL_TARGET): PRIVATE_ROOT_TAR := $(root_tar)
+
+ifneq ($(strip $(TARGET_NO_KERNEL)),true)
+$(INSTALLED_ROOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_RAMDISK_FILES) $(PRODUCT_OUT)/kernel
+ cp $(PRODUCT_OUT)/kernel $(PRODUCT_OUT)/root/kernel
+ $(build-roottarball-target)
+
+else
+$(INSTALLED_ROOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_RAMDISK_FILES)
+ $(build-roottarball-target)
+endif
+
+
+roottarball: $(INSTALLED_ROOTTARBALL_TARGET) \ No newline at end of file
diff --git a/tasks/uboot.mk b/tasks/uboot.mk
new file mode 100644
index 0000000..3c1503d
--- /dev/null
+++ b/tasks/uboot.mk
@@ -0,0 +1,46 @@
+# u-boot tends to trigger compiler and linker bugs frequently.
+# If you're running into a problem not fixed easily, use an
+# older compiler by commenting out the 2 lines above and
+# uncommenting the one below.
+UBOOT_TCPREFIX = arm-eabi-
+
+# u-boot can't be built with gold - so we force BFD LD into the
+# PATH ahead of everything else
+
+android_uboot: $(ACP)
+ mkdir -p $(PRODUCT_OUT)/obj/u-boot
+ cd $(TOP)/u-boot &&\
+ $(MAKE) O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=$(UBOOT_TCPREFIX) $(UBOOT_CONFIG) &&\
+ $(MAKE) O=../$(PRODUCT_OUT)/obj/u-boot CROSS_COMPILE=$(UBOOT_TCPREFIX)
+ifeq ($(TARGET_PRODUCT), iMX53)
+ cd $(TOP)/u-boot &&\
+ $(MAKE) CROSS_COMPILE=$(UBOOT_TCPREFIX) $(UBOOT_CONFIG) && \
+ $(MAKE) CROSS_COMPILE=$(UBOOT_TCPREFIX) u-boot.imx
+endif
+ cd $(TOP) && $(ACP) -fept $(PRODUCT_OUT)/obj/u-boot/tools/mkimage $(BUILD_OUT_EXECUTABLES)/
+
+$(PRODUCT_OUT)/u-boot.bin: android_uboot
+ ln -sf obj/u-boot/u-boot.bin $(PRODUCT_OUT)/u-boot.bin
+ifeq ($(TARGET_PRODUCT), iMX53)
+ cp $(TOP)/u-boot/u-boot.imx $(PRODUCT_OUT)/u-boot.imx
+endif
+ifeq ($(TARGET_PRODUCT), origen)
+ mkdir -p $(PRODUCT_OUT)/boot
+ cp $(PRODUCT_OUT)/obj/u-boot/spl/origen-spl.bin $(PRODUCT_OUT)/boot/u-boot-mmc-spl.bin
+endif
+
+
+ifeq ($(TARGET_PRODUCT), pandaboard)
+$(PRODUCT_OUT)/u-boot.img: android_uboot
+ ln -sf obj/u-boot/u-boot.img $(PRODUCT_OUT)/u-boot.img
+
+$(PRODUCT_OUT)/MLO: android_uboot
+ ln -sf obj/u-boot/MLO $(PRODUCT_OUT)/MLO
+endif
+ifeq ($(TARGET_PRODUCT), full_panda)
+$(PRODUCT_OUT)/u-boot.img: android_uboot
+ ln -sf obj/u-boot/u-boot.img $(PRODUCT_OUT)/u-boot.img
+
+$(PRODUCT_OUT)/MLO: android_uboot
+ ln -sf obj/u-boot/MLO $(PRODUCT_OUT)/MLO
+endif