github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/tools/makebb/makebb.go (about) 1 // Copyright 2015-2018 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // makebb compiles many Go commands into one bb-style binary. 6 package main 7 8 import ( 9 "flag" 10 "log" 11 "os" 12 "path/filepath" 13 14 "github.com/u-root/u-root/pkg/bb" 15 "github.com/u-root/u-root/pkg/golang" 16 "github.com/u-root/u-root/pkg/uroot" 17 ) 18 19 var outputPath = flag.String("o", "bb", "Path to busybox binary") 20 21 func main() { 22 flag.Parse() 23 24 // Why doesn't the log package export this as a default? 25 l := log.New(os.Stdout, "", log.LstdFlags) 26 env := golang.Default() 27 if env.CgoEnabled { 28 l.Printf("Disabling CGO for u-root...") 29 env.CgoEnabled = false 30 } 31 l.Printf("Build environment: %s", env) 32 33 pkgs := flag.Args() 34 if len(pkgs) == 0 { 35 pkgs = []string{"github.com/u-root/u-root/cmds/*/*"} 36 } 37 pkgs, err := uroot.ResolvePackagePaths(l, env, pkgs) 38 if err != nil { 39 l.Fatal(err) 40 } 41 42 o, err := filepath.Abs(*outputPath) 43 if err != nil { 44 l.Fatal(err) 45 } 46 47 if err := bb.BuildBusybox(env, pkgs, false /* noStrip */, o); err != nil { 48 l.Fatal(err) 49 } 50 }