mirror of
https://github.com/servo/servo.git
synced 2025-06-10 01:23:13 +00:00
After this pull request merged: https://github.com/servo/servo/pull/7209 the 'script' component would never enter a 'built' state. In other words, if one calls `mach build`, lets it complete, then calls `mach build` again, the 'script' component would rebuild even though we supposedly just built it. This was due to the `ParserResults.pkl` getting placed in the `components/script` directory instead of the output directory, causing cargo to think that there were unbuilt files.
49 lines
1.7 KiB
Text
49 lines
1.7 KiB
Text
# Recursive wildcard function
|
|
# http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
|
|
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) \
|
|
$(filter $(subst *,%,$2),$d))
|
|
|
|
PYTHON = $(shell which python2.7 2>/dev/null || echo python)
|
|
BINDINGS_SRC = $(shell pwd)/dom/bindings/codegen
|
|
WEBIDLS_SRC = $(shell pwd)/dom/webidls
|
|
WEBIDLS = $(call rwildcard,$(WEBIDLS_SRC),*.webidl)
|
|
BINDINGS = $(patsubst %.webidl,%Binding.rs,$(WEBIDLS))
|
|
AUTOGEN_SRC = $(foreach var,$(BINDINGS),$(subst $(WEBIDLS_SRC),$(OUT_DIR)/Bindings,$(var)))
|
|
|
|
export PYTHONPATH := $(BINDINGS_SRC)/parser:$(BINDINGS_SRC)/ply:$(PYTHONPATH)
|
|
|
|
CACHE_DIR = $(OUT_DIR)/_cache
|
|
|
|
bindinggen_dependencies := $(addprefix $(BINDINGS_SRC)/,BindingGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(OUT_DIR)/ParserResults.pkl $(OUT_DIR)/Bindings/.done
|
|
|
|
globalgen_dependencies := $(addprefix $(BINDINGS_SRC)/,GlobalGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(CACHE_DIR)/.done $(OUT_DIR)/Bindings/.done
|
|
|
|
.PHONY: all
|
|
all: $(AUTOGEN_SRC)
|
|
|
|
$(OUT_DIR)/Bindings/.done:
|
|
mkdir -p $(OUT_DIR)/Bindings
|
|
touch $@
|
|
|
|
$(CACHE_DIR)/.done:
|
|
mkdir -p $(CACHE_DIR)
|
|
touch $@
|
|
|
|
$(OUT_DIR)/ParserResults.pkl: $(globalgen_dependencies) $(WEBIDLS)
|
|
$(PYTHON) \
|
|
$(BINDINGS_SRC)/GlobalGen.py \
|
|
--cachedir=$(CACHE_DIR) \
|
|
$(BINDINGS_SRC)/Bindings.conf \
|
|
$(OUT_DIR) \
|
|
. \
|
|
$(WEBIDLS)
|
|
|
|
$(AUTOGEN_SRC): $(OUT_DIR)/Bindings/%Binding.rs: $(bindinggen_dependencies) \
|
|
$(addprefix $(WEBIDLS_SRC)/,%.webidl)
|
|
$(PYTHON) \
|
|
$(BINDINGS_SRC)/BindingGen.py \
|
|
$(BINDINGS_SRC)/Bindings.conf \
|
|
$(OUT_DIR) \
|
|
$(OUT_DIR)/Bindings/$*Binding \
|
|
$(addprefix $(WEBIDLS_SRC)/,$*.webidl)
|
|
touch $@
|