diff --git a/makefile.basic_rust b/makefile.basic_rust index 0ad10bf..a62641f 100644 --- a/makefile.basic_rust +++ b/makefile.basic_rust @@ -19,7 +19,7 @@ ifeq ($(OS),Windows_NT) WINDOWS::=1 endif -MAIN_SOURCE_FILE::=src/hello.rs +MAIN_SOURCE_FILE::=src/main.rs DEPDIR::=dep LIBDIRS::=lib LDLIBS::= @@ -31,6 +31,7 @@ RELEASE?=0 SAVEFLAGS?=1 RUSTC::=rustc +STRIP::=strip ifeq ($(WINDOWS),1) MAIN_EXECUTABLE::=$(MAIN_EXECUTABLE).exe @@ -41,7 +42,7 @@ endif all:: #main target -all:: | flags-update $(MAIN_EXECUTABLE) +all:: $(MAIN_EXECUTABLE) $(MAIN_DEP_FILE) #postrun targets all:: @@ -96,37 +97,43 @@ ifeq ($(SAVEFLAGS),1) OLD_LINKFLAGS::=$(file <$(LDFLAGS_TMPFILE)) endif -#Compile all the rust 'crates' -$(MAIN_EXECUTABLE): $(MAIN_SOURCE_FILE) $(MAIN_DEP_FILE) $(LDFLAGS_TMPFILE) - $(COMPILER) $< $(RUSTFLAGS) -o $@ $(ALL_LDFLAGS) -#create a dependency tracking file so that the project rebuilds when any dep is updated -$(MAIN_DEP_FILE): $(MAIN_SOURCE_FILE) $(DEPDIR) $(RUSTFLAGS_TMPFILE) - $(COMPILER) $< --emit dep-info $(RUSTFLAGS) -o $@ +ifeq ($(SAVEFLAGS),1) -$(DEPDIR): - $(call mkdir,"$(DEPDIR)") +#Check if compile flags have changed since last build +ifneq ($(OLD_COMPILEFLAGS),$(RUSTFLAGS)) +.PHONY: $(RUSTFLAGS_TMPFILE) +$(RUSTFLAGS_TMPFILE): + $(file >$(RUSTFLAGS_TMPFILE),$(RUSTFLAGS)) +else +$(RUSTFLAGS_TMPFILE): +endif + +#Check if link flags have changed since last build +ifneq ($(ALL_LDFLAGS),$(OLD_LINKFLAGS)) +.PHONY: $(LDFLAGS_TMPFILE) +$(LDFLAGS_TMPFILE): + $(file >$(LDFLAGS_TMPFILE),$(ALL_LDFLAGS)) +else +$(LDFLAGS_TMPFILE): +endif + +endif .PHONY: flags-update flags-update: rustflags-update ldflags-update -#Check if compile flags have changed since last build -.PHONY: rustflags-update -rustflags-update: -ifeq ($(SAVEFLAGS),1) -ifneq ($(OLD_COMPILEFLAGS),$(RUSTFLAGS)) - $(file >$(RUSTFLAGS_TMPFILE),$(RUSTFLAGS)) -endif -$(RUSTFLAGS_TMPFILE): rustflags-update -endif -#Check if link flags have changed since last build -.PHONY: ldflags-update -ldflags-update: -ifeq ($(SAVEFLAGS),1) -ifneq ($(ALL_LDFLAGS),$(OLD_LINKFLAGS)) - $(file >$(LDFLAGS_TMPFILE),$(ALL_LDFLAGS)) -endif -$(LDFLAGS_TMPFILE): ldflags-update +#Compile all the rust 'crates' +$(MAIN_EXECUTABLE): $(MAIN_SOURCE_FILE) $(LDFLAGS_TMPFILE) $(RUSTFLAGS_TMPFILE) + $(COMPILER) $< $(RUSTFLAGS) -o $@ $(ALL_LDFLAGS) +ifeq ($(RELEASE),1) + $(STRIP) --strip-all "$(MAIN_EXECUTABLE)" endif +#create a dependency tracking file so that the project rebuilds when any dep is updated +$(MAIN_DEP_FILE): $(MAIN_SOURCE_FILE) $(RUSTFLAGS_TMPFILE) | $(DEPDIR) + $(COMPILER) $< --emit dep-info $(RUSTFLAGS) -o $@ + +$(DEPDIR): + $(call mkdir,"$(DEPDIR)") .PHONY: clean clean::