summaryrefslogtreecommitdiff
path: root/coreconf
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2020-05-08 22:04:11 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2020-05-08 22:04:11 +0000
commit7e759ba8417509336128e6eccd912df5b365f609 (patch)
treee1fdceed0cb04ede7ab24623e6e2a7d67114501c /coreconf
parentc5b8b3ab315f6b402aec5d71de84f35c545faa47 (diff)
downloadnss-hg-7e759ba8417509336128e6eccd912df5b365f609.tar.gz
Bug 1629553 Use order-prereq for $(MAKE_OBJDIR) r=rrelyea
Introduces a simple "%/d" rule to create directories using $(MAKE_OBJDIR) and replace all explicit $(MAKE_OBJDIR) calls with an order-only-prerequisites. To expand the $(@D) prerequisite, this needs .SECONDEXPANSION. Differential Revision: https://phabricator.services.mozilla.com/D70989
Diffstat (limited to 'coreconf')
-rw-r--r--coreconf/rules.mk45
1 files changed, 16 insertions, 29 deletions
diff --git a/coreconf/rules.mk b/coreconf/rules.mk
index fbcf001e3..1bdf08145 100644
--- a/coreconf/rules.mk
+++ b/coreconf/rules.mk
@@ -114,6 +114,10 @@ alltags:
find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs etags -a
find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs ctags -a
+.SECONDEXPANSION:
+%/d:
+ @$(MAKE_OBJDIR)
+
define PROGRAM_template
ifndef $(1)_OBJS
@@ -128,8 +132,7 @@ ifndef $(1)_OBJS
endif
endif
-$(1): $$($(1)_OBJS) $$(EXTRA_LIBS)
- @$$(MAKE_OBJDIR)
+$(1): $$($(1)_OBJS) $$(EXTRA_LIBS) | $$$$(@D)/d
rm -f $$@
ifeq (,$$(filter-out _WIN%,$$(NS_USE_GCC)_$$(OS_TARGET)))
$$(MKPROG) $$($(1)_OBJS) -Fe$$@ -link $$(LDFLAGS) $$(XLDFLAGS) $$(EXTRA_LIBS) $$(EXTRA_SHARED_LIBS) $$(OS_LIBS)
@@ -155,8 +158,7 @@ endif
get_objs:
@echo $(OBJS)
-$(LIBRARY): $(OBJS)
- @$(MAKE_OBJDIR)
+$(LIBRARY): $(OBJS) | $$(@D)/d
rm -f $@
ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
$(AR) $(subst /,\\,$(OBJS))
@@ -184,8 +186,7 @@ SUB_SHLOBJS = $(foreach dir,$(SHARED_LIBRARY_DIRS),$(addprefix $(dir)/,$(shell $
endif
endif
-$(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE) $(SUB_SHLOBJS)
- @$(MAKE_OBJDIR)
+$(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE) $(SUB_SHLOBJS) | $$(@D)/d
rm -f $@
ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1)
echo "#!" > $(OBJDIR)/lib$(LIBRARY_NAME)_syms
@@ -215,8 +216,7 @@ endif
endif
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
-$(RES): $(RESNAME)
- @$(MAKE_OBJDIR)
+$(RES): $(RESNAME) | $$(@D)/d
# The resource compiler does not understand the -U option.
ifdef NS_USE_GCC
$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $<
@@ -226,8 +226,7 @@ endif
@echo $(RES) finished
endif
-$(MAPFILE): $(MAPFILE_SOURCE)
- @$(MAKE_OBJDIR)
+$(MAPFILE): $(MAPFILE_SOURCE) | $$(@D)/d
$(PROCESS_MAP_FILE)
WCCFLAGS1 := $(subst /,\\,$(CFLAGS))
@@ -270,8 +269,7 @@ endif
# The quotes allow absolute paths to contain spaces.
core_abspath = '$(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(PWD)/$(1)))'
-$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
- @$(MAKE_OBJDIR)
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c | $$(@D)/d
ifdef USE_NT_C_SYNTAX
$(CC) -Fo$@ -c $(CSTD) $(CFLAGS) $(call core_abspath,$<)
else
@@ -282,7 +280,7 @@ else
endif
endif
-$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
+$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c | $$(@D)/d
ifdef USE_NT_C_SYNTAX
$(CC) -Fo$@ -c $(CSTD) $(CFLAGS) $(call core_abspath,$<)
else
@@ -294,21 +292,17 @@ endif
endif
ifneq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
-$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s
- @$(MAKE_OBJDIR)
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s | $$(@D)/d
$(AS) -o $@ $(ASFLAGS) -c $<
endif
-$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.asm
- @$(MAKE_OBJDIR)
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.asm | $$(@D)/d
$(AS) -Fo$@ $(ASFLAGS) -c $<
-$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.S
- @$(MAKE_OBJDIR)
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.S | $$(@D)/d
$(AS) -o $@ $(ASFLAGS) -c $<
-$(OBJDIR)/$(PROG_PREFIX)%: %.cpp
- @$(MAKE_OBJDIR)
+$(OBJDIR)/$(PROG_PREFIX)%: %.cpp | $$(@D)/d
ifdef USE_NT_C_SYNTAX
$(CCC) -Fo$@ -c $(CXXSTD) $(CFLAGS) $(CXXFLAGS) $(call core_abspath,$<)
else
@@ -321,8 +315,7 @@ endif
define compile_ccc_pattern_RULE
-$$(OBJDIR)/$$(PROG_PREFIX)%$$(OBJ_SUFFIX): %.$(1)
- $$(MAKE_OBJDIR)
+$$(OBJDIR)/$$(PROG_PREFIX)%$$(OBJ_SUFFIX): %.$(1) | $$$$(@D)/d
ifdef STRICT_CPLUSPLUS_SUFFIX
echo "#line 1 \"$$<\"" | cat - $$< > $$(OBJDIR)/t_$$*.cc
$$(CCC) -o $$@ -c $$(CXXSTD) $$(CFLAGS) $$(CXXFLAGS) $$(OBJDIR)/t_$$*.cc
@@ -367,9 +360,6 @@ endif
define copy_varlist_into_dir_RULE
ifdef $(2)
ifneq (,$$(strip $$($(2))))
-$(3)/d:
- @$$(MAKE_OBJDIR)
-
$(3)/%: %
$$(INSTALL) -m 444 $$^ $(3)
@@ -400,9 +390,6 @@ ifneq ($(BUILD_OPT),)
REGDATE = $(subst \ ,, $(shell $(PERL) $(CORE_DEPTH)/$(MODULE)/scripts/now))
endif
-$(TESTS_DIR)/d:
- @$(MAKE_OBJDIR)
-
check: $(REGRESSION_SPEC) | $(TESTS_DIR)/d
cd $(PLATFORM); \
../$(SOURCE_MD_DIR)/bin/regress$(PROG_SUFFIX) specfile=../$(REGRESSION_SPEC) progress $(EXTRA_REGRESS_OPTIONS)