summaryrefslogtreecommitdiffstats
path: root/lib/build-dev.mk
diff options
context:
space:
mode:
Diffstat (limited to 'lib/build-dev.mk')
-rw-r--r--lib/build-dev.mk72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/build-dev.mk b/lib/build-dev.mk
new file mode 100644
index 0000000..c924bd2
--- /dev/null
+++ b/lib/build-dev.mk
@@ -0,0 +1,72 @@
+# Copyright 2022 Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-or-later WITH LGPL-3.0-linking-exception
+
+
+ifndef LIB_BUILD_DEV_MK_
+LIB_BUILD_DEV_MK_ := 1
+
+
+include $(srcdir)/lib/build.mk
+include $(srcdir)/lib/build-dev.mk
+include $(srcdir)/lib/build-obj.mk
+include $(srcdir)/lib/cmd.mk
+include $(srcdir)/lib/src.mk
+include $(srcdir)/lib/version.mk
+
+
+DEFAULT_ARFLAGS := qcsDP
+EXTRA_ARFLAGS :=
+ARFLAGS := $(DEFAULT_ARFLAGS) $(EXTRA_ARFLAGS)
+
+
+AR := gcc-ar
+
+
+_LIB_a := $(builddir)/$(libname).a
+_LIB_pc := $(builddir)/$(libname).pc
+
+
+$(_LIB_a): %.a: $(_TU_o) $(mk) | $$(@D)/
+ $(info AR $@)
+ $(CD) $(dir $@) && \
+ for opt in g 0 1 2 s 3 fast; do \
+ $(RM) $(notdir $*.O$$opt.a) 2>/dev/null ||:; \
+ $(ECHO) $(patsubst $(builddir)/%,%,$(_TU_o)) \
+ | $(SED) "s,.o\>,.O$$opt.o," \
+ | $(XARGS) $(AR) $(ARFLAGS) $(notdir $*).O$$opt.a; \
+ done
+ $(RM) $@ 2>/dev/null ||:
+ $(CD) $(dir $@)/ && \
+ $(ECHO) $(patsubst $(builddir)/%,%,$(_TU_o)) \
+ | $(XARGS) $(AR) $(ARFLAGS) $(notdir $@)
+
+$(_LIB_pc_u): $(LIB_pc_u) $(mk) | $$(@D)/
+ $(CP) -T $< $@
+
+$(_LIB_pc): $(_LIB_pc_u) $(mk) | $$(@D)/
+ $(info SED $@)
+ $(SED) 's/Version:.*/Version: $(DISTVERSION)/' <$< >$@
+ $(SED) -i 's,prefix=.*,prefix=$(prefix),' $@
+ifneq ($(filter includedir=%,$(MAKEOVERRIDES)),)
+ $(SED) -i 's,includedir=.*,includedir=$(includedir),' $@
+endif
+ifneq ($(filter libdir=%,$(MAKEOVERRIDES)),)
+ $(SED) -i 's,libdir=.*,libdir=$(libdir),' $@
+endif
+
+
+.PHONY: build-dev-ar
+build-dev-ar: $(_LIB_a)
+ @:
+
+.PHONY: build-dev-pc
+build-dev-pc: $(_LIB_pc)
+ @:
+
+
+.PHONY: build-dev
+build-dev: build-dev-ar build-dev-pc
+ @:
+
+
+endif # include guard