# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
-# GNU Make syntax:
-ifndef GOBIN
-GOBIN=$(HOME)/bin
-endif
-# ugly hack to deal with whitespaces in $GOBIN
+# ugly hack to deal with whitespaces in $GOROOT
nullstring :=
space := $(nullstring) # a space at the end
-QUOTED_GOBIN=$(subst $(space),\ ,$(GOBIN))
+QUOTED_GOROOT:=$(subst $(space),\ ,$(GOROOT))
+
+include $(QUOTED_GOROOT)/src/Make.common
+
+PREREQ+=$(patsubst %,%.make,$(DEPS))
all: $(TARG)
$(TARG): _go_.$O $(OFILES)
$(QUOTED_GOBIN)/$(LD) -o $@ _go_.$O $(OFILES)
-_go_.$O: $(GOFILES)
+_go_.$O: $(GOFILES) $(PREREQ)
$(QUOTED_GOBIN)/$(GC) -o $@ $(GOFILES)
install: $(QUOTED_GOBIN)/$(TARG)
$(QUOTED_GOBIN)/$(TARG): $(TARG)
cp -f $(TARG) $(QUOTED_GOBIN)
-clean:
- rm -f *.[$(OS)] $(TARG) $(CLEANFILES)
+CLEANFILES+=$(TARG)
-nuke:
- rm -f *.[$(OS)] $(TARG) $(CLEANFILES) $(QUOTED_GOBIN)/$(TARG)
+nuke: clean
+ rm -f $(QUOTED_GOBIN)/$(TARG)
--- /dev/null
+# Copyright 2009 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+# GNU Make syntax:
+ifndef GOBIN
+GOBIN=$(HOME)/bin
+endif
+
+# ugly hack to deal with whitespaces in $GOBIN
+nullstring :=
+space := $(nullstring) # a space at the end
+ifndef GOBIN
+QUOTED_HOME=$(subst $(space),\ ,$(HOME))
+GOBIN=$(QUOTED_HOME)/bin
+endif
+QUOTED_GOBIN=$(subst $(space),\ ,$(GOBIN))
+
+# ugly hack to deal with whitespaces in $GOROOT
+QUOTED_GOROOT:=$(subst $(space),\ ,$(GOROOT))
+
+clean:
+ rm -rf *.o *.a *.[$(OS)] [$(OS)].out $(CLEANFILES)
+
+%.make:
+ (cd $* && $(QUOTED_GOBIN)/gomake install)
package: _obj/$(TARG).a
testpackage: _test/$(TARG).a
+# ugly hack to deal with whitespaces in $GOROOT
nullstring :=
space := $(nullstring) # a space at the end
-ifndef GOBIN
-QUOTED_HOME=$(subst $(space),\ ,$(HOME))
-GOBIN=$(QUOTED_HOME)/bin
-endif
-QUOTED_GOBIN=$(subst $(space),\ ,$(GOBIN))
+QUOTED_GOROOT:=$(subst $(space),\ ,$(GOROOT))
+
+include $(QUOTED_GOROOT)/src/Make.common
# GNU Make 3.80 has a bug in lastword
# elem=$(lastword $(subst /, ,$(TARG)))
dir=$(patsubst %/$(elem),%,$(TARG))
endif
-# ugly hack to deal with whitespaces in $GOROOT
-QUOTED_GOROOT=$(subst $(space),\ ,$(GOROOT))
-
pkgdir=$(QUOTED_GOROOT)/pkg/$(GOOS)_$(GOARCH)
INSTALLFILES+=$(pkgdir)/$(TARG).a
OFILES+=_cgo_defun.$O
GCC_OFILES=$(patsubst %.go,%.cgo2.o,$(CGOFILES))
INSTALLFILES+=$(pkgdir)/$(TARG).so
-PREREQ+=$(patsubst %,%.make,$(DEPS))
endif
+PREREQ+=$(patsubst %,%.make,$(DEPS))
+
coverage:
$(QUOTED_GOBIN)/gotest
$(QUOTED_GOBIN)/6cov -g $(shell pwd) $O.out | grep -v '_test\.go:'
-clean:
- rm -rf *.[$(OS)o] *.a [$(OS)].out *.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go *.so _obj _test _testmain.go $(CLEANFILES)
+CLEANFILES+=*.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go *.so _obj _test _testmain.go
test:
$(QUOTED_GOBIN)/gotest
dir:
@echo $(dir)
-%.make:
- (cd $* && $(QUOTED_GOBIN)/gomake)
-
# To use cgo in a Go package, add a line
#
# CGOFILES=x.go y.go