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
}