aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile18
-rw-r--r--scripts/common.sh37
-rw-r--r--scripts/get-libuv.sh16
4 files changed, 69 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index d87a317eea..5872fd9386 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
build/
+.deps/
+
*.rej
*.orig
*.mo
diff --git a/Makefile b/Makefile
index 4bdfaa39aa..7b3611abf0 100644
--- a/Makefile
+++ b/Makefile
@@ -3,12 +3,22 @@ CMAKE_FLAGS := -DCMAKE_BUILD_TYPE=Debug
test: build/src/vim
cd src/testdir && make
-build/src/vim:
+build/src/vim: deps
cd build && make
-cmake:
- rm -rf build
+deps: .deps/usr/lib/libuv.a
+
+.deps/usr/lib/libuv.a:
+ sh -e scripts/get-libuv.sh
+
+cmake: clean
mkdir build
cd build && cmake $(CMAKE_FLAGS) ../
-.PHONY: test cmake
+clean:
+ rm -rf build
+ for file in lua mbyte mzscheme small tiny; do \
+ rm -f src/testdir/$$file.vim; \
+ done
+
+.PHONY: test deps cmake
diff --git a/scripts/common.sh b/scripts/common.sh
new file mode 100644
index 0000000000..d7653c6aa1
--- /dev/null
+++ b/scripts/common.sh
@@ -0,0 +1,37 @@
+pkgroot="$(pwd)"
+deps="$pkgroot/.deps"
+prefix="$deps/usr"
+export PATH="$prefix/bin:$PATH"
+
+download() {
+ local url=$1
+ local tgt=$2
+ local sha1=$3
+
+ if [ ! -d "$tgt" ]; then
+ mkdir -p "$tgt"
+ if which wget > /dev/null 2>&1; then
+ tmp_dir=$(mktemp -d "/tmp/download_sha1check_XXXXXXX")
+ fifo="$tmp_dir/fifo"
+ mkfifo "$fifo"
+ # download, untar and calculate sha1 sum in one pass
+ (wget "$url" -O - | tee "$fifo" | \
+ (cd "$tgt"; tar --strip-components=1 -xvzf -)) &
+ sum=$(sha1sum < "$fifo" | cut -d ' ' -f1)
+ rm -rf "$tmp_dir"
+ if [ "$sum" != "$sha1" ]; then
+ echo "SHA1 sum doesn't match, expected '$sha1' got '$sum'"
+ exit 1
+ fi
+ else
+ echo "Missing wget utility"
+ exit 1
+ fi
+ fi
+}
+
+github_download() {
+ local repo=$1
+ local ver=$2
+ download "https://github.com/${repo}/archive/${ver}.tar.gz" "$3" "$4"
+}
diff --git a/scripts/get-libuv.sh b/scripts/get-libuv.sh
new file mode 100644
index 0000000000..e7001ef3a0
--- /dev/null
+++ b/scripts/get-libuv.sh
@@ -0,0 +1,16 @@
+. scripts/common.sh
+
+uv_repo=joyent/libuv
+uv_ver=v0.11.19
+uv_dir="$deps/uv-$uv_ver"
+uv_sha1=5539d8e99e22b438cf4a412d4cec70ac6bb519fc
+
+rm -rf "$uv_dir"
+
+github_download "$uv_repo" "$uv_ver" "$uv_dir" "$uv_sha1"
+cd "$uv_dir"
+sh autogen.sh
+./configure --prefix="$prefix"
+make
+make install
+rm "$prefix/lib/"libuv*.so "$prefix/lib/"libuv*.so.*