From af40114664448d0ad49ab25c3a212c8720800f9a Mon Sep 17 00:00:00 2001 From: Arcterus Date: Sun, 20 Jul 2014 01:27:47 -0700 Subject: [PATCH] Add stripping and LTO options to Makefile --- Makefile | 29 +++++++++++++++++++++++------ README.md | 5 +++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 9993a8fa0..0fbad6f99 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,25 @@ +# Config options +ENABLE_LTO ?= n +ENABLE_STRIP ?= n + # Binaries -RUSTC ?= rustc -RM := rm +RUSTC ?= rustc +RM := rm # Flags -RUSTCFLAGS := --opt-level=3 -RMFLAGS := +RUSTCFLAGS := --opt-level=3 +RMFLAGS := + +# Handle config setup +ifeq ($(ENABLE_LTO),y) +RUSTCBINFLAGS := $(RUSTCFLAGS) -Z lto +else +RUSTCBINFLAGS := $(RUSTCFLAGS) +endif + +ifneq ($(ENABLE_STRIP),y) +ENABLE_STRIP := +endif # Install directories PREFIX ?= /usr/local @@ -135,7 +150,8 @@ build/gen/$(1).rs: build/mkmain build/mkmain $(1) build/gen/$(1).rs build/$(1): build/gen/$(1).rs build/$($(1)_RLIB) | build deps - $(RUSTC) $(RUSTCFLAGS) -L build/ -o build/$(1) build/gen/$(1).rs + $(RUSTC) $(RUSTCBINFLAGS) -L build/ -o build/$(1) build/gen/$(1).rs + $(if $(ENABLE_STRIP),strip build/$(1),) endef define CRATE_BUILD @@ -179,7 +195,8 @@ $(foreach test,$(TESTS),$(eval $(call TEST_BUILD,$(test)))) -include build/uutils.d build/uutils: uutils/uutils.rs build/mkuutils $(RLIB_PATHS) build/mkuutils build/gen/uutils.rs $(BUILD) - $(RUSTC) $(RUSTCFLAGS) -L build/ --dep-info $@.d build/gen/uutils.rs -o $@ + $(RUSTC) $(RUSTCBINFLAGS) -L build/ --dep-info $@.d build/gen/uutils.rs -o $@ + $(if $(ENABLE_STRIP),strip build/uutils) # Dependencies -include build/rust-crypto.d diff --git a/README.md b/README.md index a8b2cd371..c75155f10 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,11 @@ To build only a few of the available utilities: make BUILD='UTILITY_1 UTILITY_2' ``` +To build with LTO and stripping: +``` +make ENABLE_LTO=y ENABLE_STRIP=y +``` + Installation Instructions -------------------------