gopkg.in/hugelgupf/u-root.v2@v2.0.0-20180831055005-3f8fdb0ce09d/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 "path/filepath" 12 13 "github.com/u-root/u-root/pkg/golang" 14 "github.com/u-root/u-root/pkg/uroot" 15 "github.com/u-root/u-root/pkg/uroot/builder" 16 ) 17 18 var outputPath = flag.String("o", "bb", "Path to busybox binary") 19 20 func main() { 21 flag.Parse() 22 23 env := golang.Default() 24 if env.CgoEnabled { 25 log.Printf("Disabling CGO for u-root...") 26 env.CgoEnabled = false 27 } 28 log.Printf("Build environment: %s", env) 29 30 pkgs := flag.Args() 31 var err error 32 if len(pkgs) == 0 { 33 pkgs, err = uroot.DefaultPackageImports(env) 34 } else { 35 pkgs, err = uroot.ResolvePackagePaths(env, pkgs) 36 } 37 if err != nil { 38 log.Fatal(err) 39 } 40 41 o, err := filepath.Abs(*outputPath) 42 if err != nil { 43 log.Fatal(err) 44 } 45 46 if err := builder.BuildBusybox(env, pkgs, o); err != nil { 47 log.Fatal(err) 48 } 49 }