Fix unspecified behavior in rust makefile and add release target stripping
This commit is contained in:
parent
9a56b99f27
commit
5f5710ffd9
@ -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::
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user