autoport: Allow binary prerequisites to be placed in the autoport directory.

This allow an easy creation of standalone "autoport pack".

Change-Id: Ibe9e38aa3b4bbd7260104e1c2a11630790ff4d2f
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/10370
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
diff --git a/util/autoport/log_maker.go b/util/autoport/log_maker.go
index b991ea7..e2440b4 100644
--- a/util/autoport/log_maker.go
+++ b/util/autoport/log_maker.go
@@ -9,7 +9,7 @@
 	"strings"
 )
 
-func RunAndSave(output string, name string, arg ...string) {
+func TryRunAndSave(output string, name string, arg []string) error {
 	cmd := exec.Command(name, arg...)
 
 	f, err := os.Create(output)
@@ -22,9 +22,27 @@
 
 	err = cmd.Start()
 	if err != nil {
-		log.Fatal(err)
+		return err
 	}
 	cmd.Wait()
+	return nil
+}
+
+func RunAndSave(output string, name string, arg ...string) {
+	err := TryRunAndSave(output, name, arg)
+	if err == nil {
+		return
+	}
+	idx := strings.LastIndex(name, "/")
+	relname := name
+	if idx >= 0 {
+		relname = name[idx+1:]
+	}
+	relname = "./" + relname
+	err = TryRunAndSave(output, relname, arg)
+	if err != nil {
+		log.Fatal(err)
+	}
 }
 
 func MakeLogs(outDir string) {