Third-party Go Packages & “Make.386: No such file or directory”
I’m trying to give the go language a proper try. I’m using an up-to-the-minute clone of the go mercurial repository, and I’m seeing a lot of this sort of thing in the error logs while trying to build third-party libraries. This is what I saw while trying to build GoMySQL, for example:
$ make
Makefile:1: /path/to/golang/src/Make.386: No such file or directory
/path/to/golang/src/Make.pkg:9: /src/Make.common: No such file or directory
make: *** No rule to make target `/src/Make.common'. Stop.
(Depending on your architecture/$GOARCH, you may see something slightly different!)
You can fix this by changing this line of the Makefile:
include $(GOROOT)/src/Make.$(GOARCH)
to this:
include $(GOROOT)/src/Make.inc
Try building it again:
$ make
8g -o _go_.8 mysql.go mysql_const.go mysql_error.go
mysql_packet.go mysql_result.go mysql_statement.go
rm -f _obj/mysql.a
gopack grc _obj/mysql.a _go_.8
Easy.
I’ve committed this fix (and a few more) to my fork of GoMySQL. The fixes are largely untested, but it will at least compile for you if you’re on the bleeding edge.