summaryrefslogtreecommitdiff
path: root/Makerules
diff options
context:
space:
mode:
Diffstat (limited to 'Makerules')
-rw-r--r--Makerules17
1 files changed, 15 insertions, 2 deletions
diff --git a/Makerules b/Makerules
index 26f8398041..62cceac1c6 100644
--- a/Makerules
+++ b/Makerules
@@ -172,7 +172,11 @@ endef
$(common-objpfx)dummy.d:
echo '# .s files cannot contain includes, so they need no deps.' > $@
-object-suffixes-for-rules = $(object-suffixes) .oS
+object-suffixes-for-rules := $(object-suffixes)
+
+ifeq (yes,$(build-shared))
+object-suffixes-for-rules += .oS
+endif
# It matters that this set of rules, for compiling from sources in
# the current directory (the $srcdir/$subdir) come before the
@@ -571,6 +575,15 @@ $(subdirs-stamps): subdir_lib;
endif
object-suffixes-left = $(object-suffixes)
include $(o-iterator)
+ifeq (yes,$(build-shared))
+$(common-objpfx)$(patsubst %,$(libtype.oS),c)($(ar-symtab-name)): \
+ $(common-objpfx)$(patsubst %,$(libtype.oS),c)(\
+ $(patsubst %,%.oS,$(static-only-routines))) \
+ $(wildcard $(foreach d,$(subdirs),$(common-objpfx)$d/stamp.oS))
+ $(SHELL) $(..)./autolock.sh \
+ $(common-objpfx)$(patsubst %,$(libtype.oS),c).lck \
+ $(RANLIB) $(common-objpfx)$(patsubst %,$(libtype.oS),c)
+endif
# This makes all the object files.
@@ -914,7 +927,7 @@ common-mostlyclean:
define rmobjs
$(foreach o,$(object-suffixes),
-rm -f $(objpfx)stamp$o $(o-objects))
--rm -f $(objpfx)stamp.oS $(patsubst %,$(static-only-routines),$(objpfx)%.oS)
+-rm -f $(objpfx)stamp.oS $(patsubst %,$(objpfx)%.oS,$(static-only-routines))
endef
# Also remove the dependencies and generated source files.