Add a .travis.yml
authorAlex Crichton <alex@alexcrichton.com>
Wed, 18 Jun 2014 20:36:49 +0000 (13:36 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 19 Jun 2014 18:52:51 +0000 (11:52 -0700)
.travis.install.deps.sh [new file with mode: 0755]
.travis.yml [new file with mode: 0644]
Makefile

diff --git a/.travis.install.deps.sh b/.travis.install.deps.sh
new file mode 100755 (executable)
index 0000000..578c004
--- /dev/null
@@ -0,0 +1,21 @@
+set -ex
+
+# Install a 32-bit compiler for linux
+sudo apt-get update
+sudo apt-get install gcc-multilib
+target=unknown-linux-gnu
+
+# Install both 64 and 32 bit libraries. Apparently travis barfs if you try to
+# just install the right ones? This should enable cross compilation in the
+# future anyway.
+curl -O http://static.rust-lang.org/dist/rust-nightly-x86_64-$target.tar.gz
+curl -O http://static.rust-lang.org/dist/rust-nightly-i686-$target.tar.gz
+tar xfz rust-nightly-x86_64-$target.tar.gz
+tar xfz rust-nightly-i686-$target.tar.gz
+cp -r rust-nightly-i686-$target/lib/rustlib/i686-$target \
+      rust-nightly-x86_64-$target/lib/rustlib
+(cd rust-nightly-x86_64-$target && \
+ find lib/rustlib/i686-$target/lib -type f >> \
+ lib/rustlib/manifest.in)
+sudo ./rust-nightly-x86_64-$target/install.sh
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..b51759b
--- /dev/null
@@ -0,0 +1,16 @@
+language: rust
+
+install:
+  - ./.travis.install.deps.sh
+
+script:
+  - make CC="$CC" RUSTC="$RUSTC" -j4
+  - make CC="$CC" RUSTC="$RUSTC" test -j4
+
+env:
+  - ARCH=i686 CC='cc -m32' RUSTC='rustc --target=i686-unknown-linux-gnu'
+  - ARCH=x86_64 CC=cc RUSTC='rustc --target=x86_64-unknown-linux-gnu'
+
+os:
+  - linux
+  - osx
index 23a2fed593d85a960cd61fcd76e7c823e1f7f713..b6c08637fa5dcbad73bc013de742931335fb283f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -23,17 +23,17 @@ all: $(BIN_TARGETS)
 # === Dependencies
 
 $(HAMMER): $(wildcard libs/hammer.rs/src/*.rs)
-       cd libs/hammer.rs && make
+       $(MAKE) -C libs/hammer.rs
 
 $(TOML): $(wildcard libs/rust-toml/src/toml/*.rs)
-       cd libs/rust-toml && make
+       $(MAKE) -C libs/rust-toml
 
 $(HAMCREST): $(shell find libs/hamcrest-rust/src/hamcrest -name '*.rs')
-       cd libs/hamcrest-rust && make
+       $(MAKE) -C libs/hamcrest-rust
 
 # === Cargo
 
-$(LIBCARGO): $(SRC) $(HAMMER)
+$(LIBCARGO): $(SRC) $(HAMMER) $(TOML)
        mkdir -p target
        $(RUSTC) $(RUSTC_FLAGS) $(DEPS) --out-dir target src/cargo/lib.rs
        touch $(LIBCARGO)