Ver código fonte

zkas: Static build test

parazyd 2 anos atrás
pai
commit
f8583fdd25
3 arquivos alterados com 16 adições e 10 exclusões
  1. 0 1
      Cargo.lock
  2. 9 5
      Makefile
  3. 7 4
      bin/zkas/Makefile

+ 0 - 1
Cargo.lock

@@ -3620,7 +3620,6 @@ version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
 dependencies = [
- "cc",
  "pkg-config",
  "vcpkg",
 ]

+ 9 - 5
Makefile

@@ -6,10 +6,10 @@ PREFIX = $(HOME)/.cargo
 # Cargo binary
 CARGO = cargo +nightly
 
-# Optional compile target
-#RUST_TARGET = x86_64-unknown-linux-musl
-# Uncomment this if the above is uncommented
-#TARGET_PRFX = --target=
+# Compile target for system binaries
+RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
+# Uncomment when doing musl static builds
+#RUSTFLAGS = "-C target-feature=+crt-static -C link-self-contained=yes"
 
 # Binaries to be built
 BINS = \
@@ -32,7 +32,11 @@ PROOFS_BIN = $(PROOFS_SRC:=.bin)
 all: $(BINS)
 
 zkas:
-	$(MAKE) -C bin/zkas
+	$(MAKE) -C bin/zkas \
+		PREFIX="$(PREFIX)" \
+		CARGO="$(CARGO)" \
+		RUST_TARGET="$(RUST_TARGET)" \
+		RUSTFLAGS="$(RUSTFLAGS)"
 
 $(PROOFS_BIN): zkas $(PROOFS_SRC)
 	./zkas $(basename $@) -o $@

+ 7 - 4
bin/zkas/Makefile

@@ -6,19 +6,22 @@ PREFIX = $(HOME)/.cargo
 # Cargo binary
 CARGO = cargo +nightly
 
+# Compile target
+RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
+
 SRC = \
 	Cargo.toml \
 	../../Cargo.toml \
-	$(shell find src -type f) \
-	$(shell find ../../src/serial -type f) \
-	$(shell find ../../src/zkas -type f)
+	$(shell find src -type f -name '*.rs') \
+	$(shell find ../../src/serial -type f -name '*.rs') \
+	$(shell find ../../src/zkas -type f -name '*.rs')
 
 BIN = ../../zkas
 
 all: $(BIN)
 
 $(BIN): $(SRC)
-	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package zkas
+	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package zkas
 	cp -f ../../target/$(RUST_TARGET)/release/zkas $@
 
 clean: