Selaa lähdekoodia

Add Dockerfile to build solang

Signed-off-by: Sean Young <sean@mess.org>
Sean Young 6 vuotta sitten
vanhempi
sitoutus
2c42f11fe8
2 muutettua tiedostoa jossa 22 lisäystä ja 1 poistoa
  1. 21 0
      Dockerfile
  2. 1 1
      README.md

+ 21 - 0
Dockerfile

@@ -0,0 +1,21 @@
+FROM fedora:30 as builder
+MAINTAINER Sean Young <sean@mess.org>
+# Alpine Linux ships with ancient llvm/clang versions, so we pick Fedora
+# for being much more up to date (8.0). Obviously we could build our own
+# llvm and clang, but that takes ages.
+RUN dnf -y install cargo llvm-static llvm-devel zlib-devel clang glibc-devel.i686
+
+RUN mkdir -p src/
+COPY . src/
+WORKDIR /src/intrinsics/
+RUN clang --target=wasm32 -c -emit-llvm -O3 -fno-builtin -Wall intrinsics.c
+
+WORKDIR /src/
+RUN cargo build --release
+
+# Something more minimal than Fedora would be nice. Alphine won't work
+# since we built solang with glibc, not musl.
+FROM fedora:30
+COPY --from=builder /src/target/release/solang /usr/local/bin/solang
+
+ENTRYPOINT ["/usr/local/bin/solang"]

+ 1 - 1
README.md

@@ -80,7 +80,7 @@ To check if your llvm installation has the WebAassmebly backend, run
 
 ### On Fedora 30, you need:
 
-`sudo dnf install cargo llvm-static zlib-devel clang glibc-devel.i686`
+`sudo dnf install cargo llvm-static llvm-devel zlib-devel clang glibc-devel.i686`
 
 ### On Ubuntu 18.10, you need: