SCRIPTPATH=$(dirname ${SCRIPT})
source ${SCRIPTPATH}/hvk-common.sh
+print_usage()
+{
+ echo "${PROG_NAME} -- U-Boot/kernel compile script"
+ echo "Usage: ${PROG_NAME} [OPTIONS...] [IP ADDRESS]"
+ echo
+ echo "Options:"
+ echo " -h display this help and exit"
+ echo " -r reboot after deploying files"
+ echo " -w compile with W=1"
+ echo
+}
+
+reboot=0
+warnings_opts=""
+
+while getopts "hrw" flag ;do
+ case ${flag} in
+ h)
+ print_usage
+ exit 0
+ ;;
+ r)
+ reboot=1
+ ;;
+ w)
+ warnings_opts="W=1"
+ ;;
+ ?)
+ echo "${PROG_NAME}: Invalid option: ${OPTARG}."
+ echo "Try \`${PROG_NAME} -h' for more information."
+ exit 1
+ ;;
+ esac
+done
+shift `expr "${OPTIND}" - 1`
+
+# `$#' now represents the number of arguments after the options.
+# `$1' is the first argument, etc.
+if [ $# -gt 1 ]; then
+ echo "${PROG_NAME}: Too many arguments."
+ echo "Try \`${PROG_NAME} -h' for more information."
+ exit 1
+fi
+
+if [ ${#} -eq 1 ]; then
+ EVK_IP="${1}"
+fi
+
+if [ ! -f .config ]; then
+ echo "Missing configuration file .config."
+ echo "Configure your kernel by running 'hvk-init.sh'"
+ exit 1
+fi
+
+KMAKE="${KMAKE} ${warnings_opts}"
+
+if grep -q '^CONFIG_MODULES=y' .config; then
+ CONFIG_MODULES=1
+else
+ CONFIG_MODULES=0
+fi
+
${KMAKE}
if [ x"${mode}" = x"linux" ]; then
- ${KMAKE} modules_prepare
- ${KMAKE} modules
+ if [ x"${CONFIG_MODULES}" = x"1" ]; then
+ ${KMAKE} modules_prepare
+ ${KMAKE} modules
+ fi
if [ x"${DTB_SRC}" != x"" ]; then
${KMAKE} dtbs
${KMAKE} u-boot-initial-env
fi
-if [ ${#} -eq 1 ]; then
- EVK_IP="${1}"
-
+if [ "${EVK_IP}" != "" ]; then
scp ${BOOT_SRC}/Image root@${EVK_IP}:${BOOT_DEST}/Image-latest
scp ${DTB_SRC} root@${EVK_IP}:${BOOT_DEST}/latest.dtb
- rm -rf modules-tmp
- ${KMAKE} INSTALL_MOD_PATH=modules-tmp modules_install
- pushd modules-tmp/lib/
- tar cf - modules/* | gzip -9 > /tmp/modules.tar.gz
- popd
+ if [ x"${CONFIG_MODULES}" = x"1" ]; then
+ rm -rf modules-tmp
+ ${KMAKE} INSTALL_MOD_PATH=modules-tmp modules_install
+ pushd modules-tmp/lib/
+ tar cf - modules/* | gzip -9 > /tmp/modules.tar.gz
+ popd
- scp /tmp/modules.tar.gz root@${EVK_IP}:/tmp
+ scp /tmp/modules.tar.gz root@${EVK_IP}:/tmp
- ssh root@${EVK_IP} "cd /lib && tar -xf /tmp/modules.tar.gz"
- rm /tmp/modules.tar.gz
+ ssh root@${EVK_IP} "cd /lib && tar -xf /tmp/modules.tar.gz"
+ rm /tmp/modules.tar.gz
+ fi
+
+ # Determine if using extlinux on target:
+ ssh -q root@${EVK_IP} [[ -f /boot/extlinux/extlinux.conf ]] && EXTLINUX=1 || EXTLINUX=0;
- # Switch to latest kernel and DTB:
- ssh root@${EVK_IP} "fw_setenv image Image-latest; fw_setenv fdt_file latest.dtb"
+ if [ "${EXTLINUX}" = "1" ]; then
+ # Switch to latest kernel and DTB:
+ ssh root@${EVK_IP} "sed -i -e 's@^DEFAULT.*@DEFAULT test@' /boot/extlinux/extlinux.conf"
+ fi
+
+ if [ x"${reboot}" = x"1" ]; then
+ ssh root@${EVK_IP} "reboot"
+ fi
fi