Kaydet (Commit) d0918212 authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen

build to tail_build with partial build in tail_build

- instead on lots of recursive build.pl modules to iterate through we build all
  tail_build up to the requested module inside one tail_build when doing a
  "make foo.all"
- advantage: speeding up because getting rid of lots of recursive makes with
  artificial module barriers, forcing almost sequential execution: build, link,
  unittest with lots of cpu-idling at each module-end
- disadvantage: all shared dependencies of tail_build are now build for a
  (sub)module of tail_build. This is transitional as we migrate more stuff into
  tail_build and there are good dependencies inside tail_build
- "make foo.all" now only executes slowcheck now for foo, not for all the deps
üst 8b5a984d
...@@ -241,15 +241,23 @@ xpdf\ ...@@ -241,15 +241,23 @@ xpdf\
xsltml\ xsltml\
zlib\ zlib\
gb_TAILBUILDMODULES := $(shell make -f $(SRCDIR)/tail_build/Makefile showmodules)
define gbuild_module_rules define gbuild_module_rules
.PHONY: $(1) $(1).all $(1).clean $(1).deliver .PHONY: $(1) $(1).all $(1).clean $(1).deliver
$(1): bootstrap fetch $(1): bootstrap fetch
cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) gb_PARTIALBUILD=T cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) gb_PARTIALBUILD=T
ifeq ($(filter $(1),$(gb_TAILBUILDMODULES)),)
$(1).all: bootstrap fetch $(1).all: bootstrap fetch
cd $(1) && unset MAKEFLAGS && \ cd $(1) && unset MAKEFLAGS && \
$(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM) $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
else
$(1).all: bootstrap fetch
cd tail_build && unset MAKEFLAGS && export gb_TAILBUILDTARGET="$(WORKDIR)/Module/$(1) $(WORKDIR)/Module/check/$(1)" && \
$(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
endif
$(1).clean: $(1).clean:
cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) clean gb_PARTIALBUILD=T cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) clean gb_PARTIALBUILD=T
......
...@@ -30,12 +30,16 @@ TARGET=prj ...@@ -30,12 +30,16 @@ TARGET=prj
.INCLUDE : settings.mk .INCLUDE : settings.mk
.IF "$(GBUILDTARGET)" == ""
GBUILDTARGET=all slowcheck
.END
.IF "$(depend)" != "" .IF "$(depend)" != ""
all: all:
.ELIF "$(VERBOSE)"!="" .ELIF "$(VERBOSE)"!=""
all: all:
cd $(PRJ) && $(GNUMAKE) -r -j$(GMAKE_MODULE_PARALLELISM) all slowcheck cd $(PRJ) && $(GNUMAKE) -r -j$(GMAKE_MODULE_PARALLELISM) $(GBUILDTARGET)
.ELSE .ELSE
all: all:
@cd $(PRJ) && $(GNUMAKE) -rs -j$(GMAKE_MODULE_PARALLELISM) all slowcheck @cd $(PRJ) && $(GNUMAKE) -rs -j$(GMAKE_MODULE_PARALLELISM) $(GBUILDTARGET)
.END .END
GMAKE_MODULE_PARALLELISM := $(GMAKE_PARALLELISM) # tail_build is special! GMAKE_MODULE_PARALLELISM := $(GMAKE_PARALLELISM) # tail_build is special!
.IF "$(gb_TAILBUILDTARGET)" != ""
GBUILDTARGET=$(gb_TAILBUILDTARGET)
.END
.INCLUDE : gbuildbridge.mk .INCLUDE : gbuildbridge.mk
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment