|
@@ -1,8 +1,11 @@
|
|
|
-ifeq ("$(origin O)", "command line")
|
|
|
+ifeq ($(origin O), command line)
|
|
|
dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),)
|
|
|
ABSOLUTE_O := $(shell cd $(O) ; pwd)
|
|
|
- OUTPUT := $(ABSOLUTE_O)/
|
|
|
+ OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
|
|
|
COMMAND_O := O=$(ABSOLUTE_O)
|
|
|
+ifeq ($(objtree),)
|
|
|
+ objtree := $(O)
|
|
|
+endif
|
|
|
endif
|
|
|
|
|
|
ifneq ($(OUTPUT),)
|
|
@@ -47,9 +50,10 @@ endif
|
|
|
# Call by doing: $(call descend,directory[,target])
|
|
|
#
|
|
|
descend = \
|
|
|
- $(QUIET_SUBDIR0)$(1) $(QUIET_SUBDIR1) $(2)
|
|
|
+ +mkdir -p $(OUTPUT)$(1) && \
|
|
|
+ $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1)
|
|
|
|
|
|
-QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
|
|
|
+QUIET_SUBDIR0 = +$(MAKE) $(COMMAND_O) -C # space to separate -C and subdir
|
|
|
QUIET_SUBDIR1 =
|
|
|
|
|
|
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
|
@@ -64,5 +68,10 @@ ifndef V
|
|
|
$(MAKE) $(PRINT_DIR) -C $$subdir
|
|
|
QUIET_FLEX = @echo ' ' FLEX $@;
|
|
|
QUIET_BISON = @echo ' ' BISON $@;
|
|
|
+
|
|
|
+ descend = \
|
|
|
+ @echo ' ' DESCEND $(1); \
|
|
|
+ mkdir -p $(OUTPUT)$(1) && \
|
|
|
+ $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1)
|
|
|
endif
|
|
|
endif
|