_cgo_defun.$O: _cgo_defun.c
$(CC) $(CFLAGS) $(RUNTIME_CFLAGS) _cgo_defun.c
-_cgo_.so: $(GCC_OFILES) $(CGO_DEPS)
+$(CGOTARG).so: $(GCC_OFILES) $(CGO_DEPS)
$(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -o $@ $(GCC_OFILES) $(CGO_LDFLAGS) $(_CGO_LDFLAGS_$(GOOS))
-$(pkgdir)/$(CGOTARG).so: _cgo_.so
- @test -d $(QUOTED_GOROOT)/pkg && mkdir -p $(pkgdir)/$(dir)
- cp _cgo_.so "$@"
+$(pkgdir)/$(CGOTARG).so: $(CGOTARG).so
+ @test -d $(QUOTED_GOROOT)/pkg && mkdir -p $(pkgdir)
+ cp $(CGOTARG).so "$@"
+
+ifneq ($(CGOFILES),)
+testpackage: $(CGOTARG).so
+endif
# Generic build rules.
# These come last so that the rules above can override them
$GC _testmain.go
$GL _testmain.$O
+
+# Set dynamic linker library path, no matter what it's called,
+# to include the current directory while running $O.out,
+# so that cgo libraries can be tested without installation.
+LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH \
+DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH \
$E ./$O.out "$@"