Makefile add support for multiple targets w/ first one not parallel
This commit is contained in:
35
Makefile
35
Makefile
@@ -129,6 +129,38 @@ DEPFLAGS = -MMD -MP -MF $(DEPDIR)/$*.d
|
|||||||
ALL_CFLAGS = $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS)
|
ALL_CFLAGS = $(DEPFLAGS) $(CPPFLAGS) $(CFLAGS)
|
||||||
ALL_LDFLAGS = $(LDFLAGS) $(LIBS)
|
ALL_LDFLAGS = $(LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
|
##################################### Multi-targets
|
||||||
|
# We can have an issue with Make's "-j" option, in some situations,
|
||||||
|
# for example "make -j2 clean testing".
|
||||||
|
# See https://stackoverflow.com/a/8496333/3079831
|
||||||
|
|
||||||
|
# Check if job server supported:
|
||||||
|
ifeq ($(filter jobserver, $(.FEATURES)),)
|
||||||
|
# Job server not supported: sub-makes will only start one job unless
|
||||||
|
# you specify a higher number here. Here we use a MS Windows environment
|
||||||
|
# variable specifying number of processors.
|
||||||
|
JOBSARG := -j $(NUMBER_OF_PROCESSORS)
|
||||||
|
else
|
||||||
|
# Job server is supported; let GNU Make work as normal.
|
||||||
|
JOBSARG :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
# .FEATURES only works in GNU Make 3.81+.
|
||||||
|
# If GNU make is older, assume job server support.
|
||||||
|
ifneq ($(firstword $(sort 3.81 $(MAKE_VERSION))),3.81)
|
||||||
|
# If you are using GNU Make < 3.81 that does not support job servers, you
|
||||||
|
# might want to specify -jN parameter here instead.
|
||||||
|
JOBSARG :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(words $(MAKECMDGOALS)),1)
|
||||||
|
.NOTPARALLEL:
|
||||||
|
# The "all" target is required in the list,
|
||||||
|
# in case user invokes make with no targets.
|
||||||
|
$(sort all $(MAKECMDGOALS)):
|
||||||
|
@$(MAKE) $(JOBSARG) -f $(firstword $(MAKEFILE_LIST)) $@
|
||||||
|
else
|
||||||
|
|
||||||
##################################### General targets
|
##################################### General targets
|
||||||
.PHONY: all compile clean cleanall
|
.PHONY: all compile clean cleanall
|
||||||
|
|
||||||
@@ -379,3 +411,6 @@ wtf:
|
|||||||
|
|
||||||
zob:
|
zob:
|
||||||
$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $< $(LIBS) src/util.c -o util
|
$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $< $(LIBS) src/util.c -o util
|
||||||
|
|
||||||
|
##################################### End of multi-targets
|
||||||
|
endif
|
||||||
|
Reference in New Issue
Block a user