diff options
author | Vishal Bhoj <vishal.bhoj@linaro.org> | 2011-12-01 08:59:09 +0000 |
---|---|---|
committer | Vishal Bhoj <vishal.bhoj@linaro.org> | 2011-12-01 08:59:27 +0000 |
commit | 3590b596b5e3ec3d3e89490e0fe2ba634c4f2e22 (patch) | |
tree | 17c6a68fdf5aef11b011cfd0b17e8c0aef84863b | |
download | common-3590b596b5e3ec3d3e89490e0fe2ba634c4f2e22.tar.gz |
Added build files from device/linaro/common
Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
-rw-r--r-- | tasks/bootfiles.mk | 69 | ||||
-rw-r--r-- | tasks/kernel.mk | 38 | ||||
-rwxr-xr-x | tasks/mktarball.sh | 62 | ||||
-rw-r--r-- | tasks/tarballs.mk | 36 | ||||
-rw-r--r-- | tasks/uboot.mk | 46 |
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 |