mfg: account for updated bootloader path in mfg command
diff --git a/newt/builder/paths.go b/newt/builder/paths.go
index cc5c2d3..46b61c6 100644
--- a/newt/builder/paths.go
+++ b/newt/builder/paths.go
@@ -28,6 +28,7 @@
 	"mynewt.apache.org/newt/util"
 )
 
+const BUILD_NAME_BOOT = "app/@mcuboot"
 const BUILD_NAME_APP = "app"
 const BUILD_NAME_LOADER = "loader"
 
diff --git a/newt/mfg/build.go b/newt/mfg/build.go
index e13b93c..ac04172 100644
--- a/newt/mfg/build.go
+++ b/newt/mfg/build.go
@@ -223,7 +223,12 @@
 		t.App().Name())
 	man, err := manifest.ReadManifest(mpath)
 	if err != nil {
-		return MfgBuildTarget{}, util.FmtNewtError("%s", err.Error())
+		mpath = builder.ManifestPath(dt.Name, builder.BUILD_NAME_BOOT,
+			t.App().Name())
+		man, err = manifest.ReadManifest(mpath)
+		if err != nil {
+			return MfgBuildTarget{}, util.FmtNewtError("%s", err.Error())
+		}
 	}
 
 	isBoot := parse.ValueIsTrue(man.Syscfg["BOOT_LOADER"])
diff --git a/newt/mfg/emit.go b/newt/mfg/emit.go
index 7a8068f..e6632d7 100644
--- a/newt/mfg/emit.go
+++ b/newt/mfg/emit.go
@@ -99,7 +99,7 @@
 // `.bin` files; image targets use `.img`.
 func targetSrcBinPath(t *target.Target, isBoot bool) string {
 	if isBoot {
-		return builder.AppBinPath(t.Name(), builder.BUILD_NAME_APP,
+		return builder.AppBinPath(t.Name(), builder.BUILD_NAME_BOOT,
 			t.App().Name())
 	} else {
 		return builder.AppImgPath(t.Name(), builder.BUILD_NAME_APP,
@@ -108,26 +108,41 @@
 }
 
 // Calculates the source path of a target's `.elf` file.
-func targetSrcElfPath(t *target.Target) string {
-	return builder.AppElfPath(t.Name(), builder.BUILD_NAME_APP, t.App().Name())
+func targetSrcElfPath(t *target.Target, isBoot bool) string {
+	if isBoot {
+		return builder.AppElfPath(t.Name(), builder.BUILD_NAME_BOOT, t.App().Name())
+	} else {
+		return builder.AppElfPath(t.Name(), builder.BUILD_NAME_APP, t.App().Name())
+	}
 }
 
 // Calculates the source path of a target's manifest file.
-func targetSrcManifestPath(t *target.Target) string {
-	return builder.ManifestPath(t.Name(), builder.BUILD_NAME_APP,
-		t.App().Name())
+func targetSrcManifestPath(t *target.Target, isBoot bool) string {
+	if isBoot {
+		return builder.ManifestPath(t.Name(), builder.BUILD_NAME_BOOT,
+			t.App().Name())
+	} else {
+		return builder.ManifestPath(t.Name(), builder.BUILD_NAME_APP,
+			t.App().Name())
+	}
 }
 
 func newMfgEmitTarget(bt MfgBuildTarget) (MfgEmitTarget, error) {
+	var build_name string
+	if bt.IsBoot {
+		build_name = builder.BUILD_NAME_BOOT
+	} else {
+		build_name = builder.BUILD_NAME_APP
+	}
 	return MfgEmitTarget{
 		Name:    bt.Target.FullName(),
 		Offset:  bt.Area.Offset + bt.Offset,
 		Size:    bt.Size,
 		IsBoot:  bt.IsBoot,
 		BinPath: targetSrcBinPath(bt.Target, bt.IsBoot),
-		ElfPath: targetSrcElfPath(bt.Target),
+		ElfPath: targetSrcElfPath(bt.Target, bt.IsBoot),
 		ManifestPath: builder.ManifestPath(bt.Target.Name(),
-			builder.BUILD_NAME_APP, bt.Target.App().Name()),
+			build_name, bt.Target.App().Name()),
 		ExtraManifest: bt.ExtraManifest,
 	}, nil
 }