From 8f6e13bd08d2f37027d34c0f379a79a6c5263e8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= <cmn@dwim.me>
Date: Sat, 27 Dec 2014 10:59:19 +0000
Subject: [PATCH] Make the cgo tool do more linking work

The cgo directives let us do a lot more than I previously thought, so we
can use this to make the building process of git2go go through the go
tool directly rather than via the script.

libgit2 still needs to be built manually, so we do still require make,
but only for building libgit2. Once that's built, any modifications to
git2go's own code can be built with

    go build
---
 Makefile                       |  4 ++--
 git.go                         |  2 ++
 script/build-libgit2-static.sh |  4 ++--
 script/with-static.sh          | 12 ------------
 4 files changed, 6 insertions(+), 16 deletions(-)
 delete mode 100755 script/with-static.sh

diff --git a/Makefile b/Makefile
index 3040857..39fc558 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ build-libgit2:
 
 test: build-libgit2
 	go run script/check-MakeGitError-thread-lock.go
-	./script/with-static.sh go test ./...
+	go test ./...
 
 install: build-libgit2
-	./script/with-static.sh go install ./...
+	go install ./...
diff --git a/git.go b/git.go
index 89bd561..6a5562a 100644
--- a/git.go
+++ b/git.go
@@ -1,6 +1,8 @@
 package git
 
 /*
+#cgo pkg-config: --static --define-variable=libdir=vendor/libgit2/build --define-variable=includedir=vendor/libgit2/include vendor/libgit2/build/libgit2.pc
+#cgo LDFLAGS: -lgit2
 #include <git2.h>
 */
 import "C"
diff --git a/script/build-libgit2-static.sh b/script/build-libgit2-static.sh
index 5723721..0a6c39f 100755
--- a/script/build-libgit2-static.sh
+++ b/script/build-libgit2-static.sh
@@ -4,7 +4,7 @@ set -ex
 
 VENDORED_PATH=vendor/libgit2
 
-cd $VENDORED_PATH &&
+cd "$VENDORED_PATH" &&
 mkdir -p install/lib &&
 mkdir -p build &&
 cd build &&
@@ -13,7 +13,7 @@ cmake -DTHREADSAFE=ON \
       -DBUILD_SHARED_LIBS=OFF \
       -DCMAKE_C_FLAGS=-fPIC \
       -DCMAKE_BUILD_TYPE="RelWithDebInfo" \
-      -DCMAKE_INSTALL_PREFIX=../install \
+      -DCMAKE_INSTALL_PREFIX=. \
       .. &&
 
 cmake --build .
diff --git a/script/with-static.sh b/script/with-static.sh
deleted file mode 100755
index 3f60e31..0000000
--- a/script/with-static.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-export BUILD="$PWD/vendor/libgit2/build"
-export PCFILE="$BUILD/libgit2.pc"
-
-FLAGS=$(pkg-config --static --libs $PCFILE) || exit 1
-export CGO_LDFLAGS="$BUILD/libgit2.a -L$BUILD ${FLAGS}"
-export CGO_CFLAGS="-I$PWD/vendor/libgit2/include"
-
-$@