Fix library makefile not issuing a job server due to variable expansion not working as expected
This commit is contained in:
parent
fd0dd378f4
commit
1830c18c5e
@ -31,6 +31,7 @@ LANG::=$(EXT)
|
|||||||
MAIN_LIBRARY::=tester
|
MAIN_LIBRARY::=tester
|
||||||
PRE_TARGETS::=
|
PRE_TARGETS::=
|
||||||
POST_TARGETS::=
|
POST_TARGETS::=
|
||||||
|
CLEAN_TARGETS::=
|
||||||
SHARED?=1
|
SHARED?=1
|
||||||
STATIC?=0
|
STATIC?=0
|
||||||
RELEASE?=0
|
RELEASE?=0
|
||||||
@ -129,31 +130,32 @@ THIS_MAKEFILE_NAME::=$(lastword $(MAKEFILE_LIST))
|
|||||||
SOURCES::=$(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
SOURCES::=$(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(SOURCES)))))
|
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(SOURCES)))))
|
||||||
|
|
||||||
#generate a command to run a submake using this same makefile without printing "Entering directory" stuff
|
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||||
#note: the empty line is required in this definition
|
SUBMAKE_ARGUMENTS::=--no-print-directory -f "$(THIS_MAKEFILE_NAME)"
|
||||||
define RUN_SUBMAKE_TARGET
|
#just a variable for a newline
|
||||||
@$(MAKE) --no-print-directory -f "$(THIS_MAKEFILE_NAME)" "$(1)" $(2)
|
define \n
|
||||||
|
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
#default target: run targets in PRE_TARGETS, then build the main library, then POST_TARGETS
|
#default target: run targets in PRE_TARGETS, then build the main library, then POST_TARGETS
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all:
|
all:
|
||||||
$(foreach target,$(PRE_TARGETS),$(call RUN_SUBMAKE_TARGET,$(target)))
|
$(foreach target,$(PRE_TARGETS),@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(target)"$(\n))
|
||||||
ifeq ($(SHARED),1)
|
ifeq ($(SHARED),1)
|
||||||
ifeq ($(WINDOWS),1)
|
ifeq ($(WINDOWS),1)
|
||||||
$(call RUN_SUBMAKE_TARGET,$(DLLOUT))
|
@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(DLLOUT)"
|
||||||
else #windows
|
else #windows
|
||||||
$(call RUN_SUBMAKE_TARGET,$(INTERNAL_SHARED_LIBRARY))
|
@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(INTERNAL_SHARED_LIBRARY)"
|
||||||
endif #windows
|
endif #windows
|
||||||
endif #shared
|
endif #shared
|
||||||
ifeq ($(STATIC),1)
|
ifeq ($(STATIC),1)
|
||||||
ifeq ($(SHARED),1)
|
ifeq ($(SHARED),1)
|
||||||
$(call RUN_SUBMAKE_TARGET,object_clean)
|
@$(MAKE) $(SUBMAKE_ARGUMENTS) "object_clean"
|
||||||
endif #shared
|
endif #shared
|
||||||
$(call RUN_SUBMAKE_TARGET,$(INTERNAL_STATIC_LIBRARY),SHARED=0)
|
@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(INTERNAL_STATIC_LIBRARY)" SHARED=0
|
||||||
endif #static
|
endif #static
|
||||||
$(foreach target,$(POST_TARGETS),$(call RUN_SUBMAKE_TARGET,$(target)))
|
$(foreach target,$(POST_TARGETS),@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(target)"$(\n))
|
||||||
|
|
||||||
ifeq ($(WINDOWS),1)
|
ifeq ($(WINDOWS),1)
|
||||||
#target for windows shared library
|
#target for windows shared library
|
||||||
@ -203,6 +205,7 @@ object_clean:
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: object_clean
|
clean: object_clean
|
||||||
|
$(foreach target,$(CLEAN_TARGETS),@$(MAKE) $(SUBMAKE_ARGUMENTS) "$(target)"$(\n))
|
||||||
$(call rmdir,"$(DEPDIR)")
|
$(call rmdir,"$(DEPDIR)")
|
||||||
$(call rm,"lib$(MAIN_LIBRARY).so")
|
$(call rm,"lib$(MAIN_LIBRARY).so")
|
||||||
$(call rm,"lib$(MAIN_LIBRARY).a")
|
$(call rm,"lib$(MAIN_LIBRARY).a")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user