summaryrefslogtreecommitdiff
path: root/build-aux/Makefile.once.head/20-golang.mk
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/Makefile.once.head/20-golang.mk')
-rw-r--r--build-aux/Makefile.once.head/20-golang.mk16
1 files changed, 16 insertions, 0 deletions
diff --git a/build-aux/Makefile.once.head/20-golang.mk b/build-aux/Makefile.once.head/20-golang.mk
new file mode 100644
index 0000000..ed3056c
--- /dev/null
+++ b/build-aux/Makefile.once.head/20-golang.mk
@@ -0,0 +1,16 @@
+# Copyright 2015-2016 Luke Shumaker
+
+golang.Q ?= @
+golang.FLAGS ?=
+
+_golang.cgo_variables = CGO_ENABLED CGO_CFLAGS CGO_CPPFLAGS CGO_CXXFLAGS CGO_LDFLAGS CC CXX
+$(foreach v,$(_golang.cgo_variables),$(eval $v ?=))
+export $(_golang.cgo_variables)
+
+_golang.src_cmd = find -L $1/src -name '.*' -prune -o \( -type f \( -false $(foreach e,go c s S cc cpp cxx h hh hpp hxx,-o -name '*.$e') \) -o -type d \) -print
+golang.src = $(shell $(_golang.src_cmd)) $(addprefix $(var),$(_golang.cgo_variables))
+
+define golang.install
+ GOPATH='$(abspath $1)' go install $(golang.FLAGS) $2
+ $(golang.Q)true $(foreach e,$(notdir $2), && test -f $1/bin/$e -a -x $1/bin/$e && touch $1/bin/$e)
+endef