Author: imp
Date: Tue Dec 22 06:36:00 2015
New Revision: 292586
URL: https://svnweb.freebsd.org/changeset/base/292586

Log:
  For embedded platforms that require it, use mtools to copy the
  appropriate u-boot port's files into the fat part.

Modified:
  head/tools/tools/nanobsd/embedded/common

Modified: head/tools/tools/nanobsd/embedded/common
==============================================================================
--- head/tools/tools/nanobsd/embedded/common    Tue Dec 22 05:57:23 2015        
(r292585)
+++ head/tools/tools/nanobsd/embedded/common    Tue Dec 22 06:36:00 2015        
(r292586)
@@ -86,7 +86,7 @@ NANO_CFG_BASE=$(pwd)
 NANO_CFG_BASE=$(realpath ${NANO_CFG_BASE}/..)
 NANO_SRC=$(realpath ${NANO_CFG_BASE}/../../..)
 #### XXX share obj 
-NANO_OBJ=$(realpath ${NANO_SRC}/../$NANO_NAME/obj || echo 
${NANO_SRC}/../$NANO_NAME/obj)
+NANO_OBJ=${NANO_SRC}/../$NANO_NAME/obj
 # Where cust_pkg() finds packages to install
 #XXX: Is this the right place?
 #NANO_PORTS=$(realpath ${NANO_SRC}/../ports)
@@ -100,6 +100,9 @@ unset MAKEOBJDIRPREFIX
 NANO_PORTS=${NANO_PORTS:-/usr/ports}
 
 mkdir -p ${NANO_OBJ}
+NANO_OBJ=$(realpath ${NANO_OBJ})
+
+NANO_FAT_DIR=${NANO_OBJ}/_.fat
 
 customize_cmd cust_allow_ssh_root
 
@@ -301,8 +304,11 @@ create_diskimage_mbr ( ) (
                echo Creating MSDOS partition for kernel
                newfs_msdos -C ${NANO_SLICE_FAT_SIZE} -F 16 -L ${NANO_NAME} \
                        ${NANO_OBJ}/_.${NANO_SLICE_FAT}
-               # Need to copy files from ${NANO_FATDIR} with mtools, or use
-               # makefs -t msdos once that's supported
+               if [ -d ${NANO_FAT_DIR} ]; then
+                       # Need to copy files from ${NANO_FATDIR} with mtools, 
or use
+                       # makefs -t msdos once that's supported
+                       mcopy -i ${NANO_OBJ}/_.${NANO_SLICE_FAT} 
${NANO_FAT_DIR}/* ::
+               fi
        fi
 
        # Populate the Powerpc boot image, if needed
@@ -440,7 +446,7 @@ save_build ( )
 }
 customize_cmd save_build
 
-shrink_md_fbsize()
+shrink_md_fbsize ( )
 {
        # We have a lot of little files on our memory disks. Let's decrease
        # the block and frag size to fit more little files on them (this
@@ -454,8 +460,28 @@ customize_cmd shrink_md_fbsize
 
 customize_cmd cust_comconsole
 
-product_custom()
-{
+dos_boot_part ( )
+(
+       local d=/usr/local/share/u-boot/${NANO_BOOT_PKG}
+
+       mkdir ${NANO_FAT_DIR}
+       cp ${d}/* ${NANO_FAT_DIR}       
+)
+
+if [ -n "$NANO_BOOT_PKG" ]; then
+       if [ ! -d ${d} ]; then
+               echo ${NANO_BOOT_PKG} not installed. Sadly, it must be.
+               exit 1
+       fi
+       if [ ! -x /usr/local/bin/mcopy ]; then
+               echo mtools not installed. Sadly, we gotta have it.
+               exit 1
+       fi
+       customize_cmd dos_boot_part
+fi
+
+product_custom ( )
+(
        # not quie ready to tweak these in nopriv build
        if [ -z ${NANO_NOPRIV_BUILD} ]; then
                # Last second tweaks -- generally not needed
@@ -467,7 +493,7 @@ product_custom()
                chown root:wheel ${NANO_WORLDDIR}/
                chown root:wheel ${NANO_WORLDDIR}/usr
        fi
-}
+)
 late_customize_cmd product_custom
 
 #
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to