It is still possible to use "make -f client.mk ..something...", but now with mozilla's client.mk. Just one little patch is neeeded, see below.
Note, that currently all the Linux distribution who provide SM, use "make -f client.mk" to build their packages. This way is in use for years. It is also more familiar to "UNIX way" people, while the transition to "mach build" will be quite painful for them.
It is quite preferrable to preserve the possibility of the old build way for such users -- for the same reasons why we try to preserve the old good Firefox things, as long as possible.
The problem with mozilla's client.mk is that it has (an ugly) hack, which causes it to create $(OBJDIR)/.mozconfig.json each time. They already have implemented a way to switch this off, by CREATE_MOZCONFIG_JSON variable (which is used inside for any recursive calls).
The .mozconfig.json file is created by "mach environment", which is very sensitive to the changes in the environment, and just recreate the file in such a case. The new file will have a more recent modification time, which causes "make" to recreate initial configure stuff etc.etc.etc.
Thus the first "make -f client.mk" runs fine, but following -- either at the another build stage of the package (ie. install), or just some attempts to do an incremental build manually (to discover a bug) -- very likely leads to re-creation of .mozconfig.json, and then all tries to run from the scratch again...
To avoid this, either use make -f client.mk ...something... CREATE_MOZCONFIG_JSON= in cmdline for each run but the first, or apply the patch:
--- a/client.mk 2020-12-22 05:23:56.000000000 +0300
+++ a/client.mk-OK 2020-12-24 19:54:52.834091571 +0300
@@ -281,17 +281,25 @@
configure-preqs = \
$(call mkdir_deps,$(OBJDIR)) \
-CREATE_MOZCONFIG_JSON = $(shell $(TOPSRCDIR)/mach environment --format=json -o $(OBJDIR)/.mozconfig.json)
+# Do not try to re-create .mozconfig.json when running
+# directly under `make -f client.mk'
+ifneq (,$(wildcard $(OBJDIR)/.mozconfig.json))
+CREATE_MOZCONFIG_JSON ?= $(shell $(TOPSRCDIR)/mach environment --format=json -o $(OBJDIR)/.mozconfig.json)
# Force CREATE_MOZCONFIG_JSON above to be resolved, without side effects in
# case the result is non empty, and allowing an override on the make command
# line not running the command (using := $(shell) still runs the shell command).
$(OBJDIR)/.mozconfig.json: $(call mkdir_deps,$(OBJDIR)) ;
The patch "automates" an "adding" of the switch cmdline variable in the case .mozconfig.json already exists, as well as avoids this change if client.mk is used (if any) under true mach invocation. Thus the "mach" builds are not affected at all, whereas "make -f client.mk" is still possible as before.
With the patch applied, the only change for distros seems to be "suite" --> "comm/suite" in --enable-application= argument.