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
|
WINDOWS::=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MAIN_SOURCE_FILE::=src/hello.rs
|
MAIN_SOURCE_FILE::=src/main.rs
|
||||||
DEPDIR::=dep
|
DEPDIR::=dep
|
||||||
LIBDIRS::=lib
|
LIBDIRS::=lib
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
@ -31,6 +31,7 @@ RELEASE?=0
|
|||||||
SAVEFLAGS?=1
|
SAVEFLAGS?=1
|
||||||
|
|
||||||
RUSTC::=rustc
|
RUSTC::=rustc
|
||||||
|
STRIP::=strip
|
||||||
|
|
||||||
ifeq ($(WINDOWS),1)
|
ifeq ($(WINDOWS),1)
|
||||||
MAIN_EXECUTABLE::=$(MAIN_EXECUTABLE).exe
|
MAIN_EXECUTABLE::=$(MAIN_EXECUTABLE).exe
|
||||||
@ -41,7 +42,7 @@ endif
|
|||||||
all::
|
all::
|
||||||
|
|
||||||
#main target
|
#main target
|
||||||
all:: | flags-update $(MAIN_EXECUTABLE)
|
all:: $(MAIN_EXECUTABLE) $(MAIN_DEP_FILE)
|
||||||
|
|
||||||
#postrun targets
|
#postrun targets
|
||||||
all::
|
all::
|
||||||
@ -96,37 +97,43 @@ ifeq ($(SAVEFLAGS),1)
|
|||||||
OLD_LINKFLAGS::=$(file <$(LDFLAGS_TMPFILE))
|
OLD_LINKFLAGS::=$(file <$(LDFLAGS_TMPFILE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#Compile all the rust 'crates'
|
ifeq ($(SAVEFLAGS),1)
|
||||||
$(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 $@
|
|
||||||
|
|
||||||
$(DEPDIR):
|
#Check if compile flags have changed since last build
|
||||||
$(call mkdir,"$(DEPDIR)")
|
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
|
.PHONY: flags-update
|
||||||
flags-update: rustflags-update ldflags-update
|
flags-update: rustflags-update ldflags-update
|
||||||
|
|
||||||
#Check if compile flags have changed since last build
|
#Compile all the rust 'crates'
|
||||||
.PHONY: rustflags-update
|
$(MAIN_EXECUTABLE): $(MAIN_SOURCE_FILE) $(LDFLAGS_TMPFILE) $(RUSTFLAGS_TMPFILE)
|
||||||
rustflags-update:
|
$(COMPILER) $< $(RUSTFLAGS) -o $@ $(ALL_LDFLAGS)
|
||||||
ifeq ($(SAVEFLAGS),1)
|
ifeq ($(RELEASE),1)
|
||||||
ifneq ($(OLD_COMPILEFLAGS),$(RUSTFLAGS))
|
$(STRIP) --strip-all "$(MAIN_EXECUTABLE)"
|
||||||
$(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
|
|
||||||
endif
|
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
|
.PHONY: clean
|
||||||
clean::
|
clean::
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user