| package actions |
| |
| import ( |
| "context" |
| "strings" |
| |
| "cos.googlesource.com/cos/tools.git/src/pkg/dkms" |
| "github.com/spf13/cobra" |
| ) |
| |
| var buildCmd = &cobra.Command{ |
| Use: "build", |
| Short: "Builds a module from the DKMS tree", |
| Long: strings.TrimSpace(` |
| Compiles the modules in a DKMS package using the MAKE command from dkms.conf |
| and saves the results to the package's build directory in the DKMS tree. |
| |
| If a --gcs-bucket is provided, this will attempt to download the compiled |
| modules from the package, and will only fall back to building them locally if |
| they are not present and downloadable from the bucket. If --upload is also |
| passed, this will upload modules to the bucket after they have been compiled. |
| |
| If the package is not already added to the DKMS source tree, this will try to |
| add it. See the add command for more details. |
| |
| If --install-build-dependencies is passed and a local build must be performed, |
| this will install the appropriate compiler toolchain and kernel headers for |
| the specified kernel. |
| |
| If any patches should be applied before building the package, as specified in |
| dkms.conf, this will apply them. |
| |
| If --make-variables is set to "default", the following default make variables |
| will be appended to the MAKE command: |
| ARCH=${arch} |
| CC=toolchain/bin/${arch}-cros-linux-gnu-clang |
| CXX=toolchain/bin/${arch}-cros-linux-gnu-clang++ |
| LD=toolchain/bin/${arch}-cros-linux-gnu-ld.lld |
| STRIP=toolchain/bin/llvm-strip |
| OBJCOPY=toolchain/bin/llvm-objcopy |
| HOSTCC=${arch}-pc-linux-gnu-clang |
| HOSTCXX=${arch}-pc-linux-gnu-clang++ |
| HOSTLD=${arch}-pc-linux-gnu-clang |
| `), |
| Args: ParseArgs, |
| RunE: func(cmd *cobra.Command, args []string) error { |
| if RootGCSBucket == nil { |
| return dkms.Build(RootPackage, RootOptions) |
| } else { |
| return dkms.CachedBuild(context.Background(), RootPackage, RootGCSBucket, RootOptions) |
| } |
| }, |
| } |
| |
| func init() { |
| rootCmd.AddCommand(buildCmd) |
| } |