|
@@ -3,7 +3,7 @@
|
|
|
rm -rf autogen
|
|
|
|
|
|
mkdir -p autogen/dockerversion
|
|
|
-cat > autogen/dockerversion/dockerversion.go <<EOF
|
|
|
+cat > autogen/dockerversion/dockerversion.go <<DVEOF
|
|
|
// AUTOGENERATED FILE; see $BASH_SOURCE
|
|
|
package dockerversion
|
|
|
|
|
@@ -15,4 +15,39 @@ var (
|
|
|
INITSHA1 string = "$DOCKER_INITSHA1"
|
|
|
INITPATH string = "$DOCKER_INITPATH"
|
|
|
)
|
|
|
-EOF
|
|
|
+DVEOF
|
|
|
+
|
|
|
+# Compile the Windows resources into the sources
|
|
|
+mkdir -p autogen/winresources
|
|
|
+cat > autogen/winresources/resources.go <<WREOF
|
|
|
+// AUTOGENERATED FILE; see $BASH_SOURCE
|
|
|
+package winresources
|
|
|
+
|
|
|
+/*
|
|
|
+
|
|
|
+This package is for embedding a manifest file and an icon into docker.exe.
|
|
|
+The benefit of this is that a manifest file does not need to be alongside
|
|
|
+the .exe, and there is an icon when docker runs, or viewed through Windows
|
|
|
+explorer.
|
|
|
+
|
|
|
+When make binary is run, the Dockerfile prepares the build environment by:
|
|
|
+
|
|
|
+ - Cloning github.com/akavel/rsrc
|
|
|
+
|
|
|
+ - Go-installing the rsrc executable
|
|
|
+
|
|
|
+make.sh invokes hack/make/.go-autogen to:
|
|
|
+
|
|
|
+ - Run rsrc to create a binary file (autogen/winresources/rsrc.syso) that
|
|
|
+ contains the manifest and icon. This file is automatically picked up by
|
|
|
+ 'go build', so no post-processing steps are required. The sources for
|
|
|
+ rsrc.syso are under hack/make/.resources-windows.
|
|
|
+
|
|
|
+*/
|
|
|
+WREOF
|
|
|
+if [ "$(go env GOOS)" = 'windows' ]; then
|
|
|
+ rsrc \
|
|
|
+ -manifest hack/make/.resources-windows/docker.exe.manifest \
|
|
|
+ -ico hack/make/.resources-windows/docker.ico \
|
|
|
+ -o autogen/winresources/rsrc.syso > /dev/null
|
|
|
+fi
|