From 09c3a79d8c7f1cbe42858266db400571bab5defc Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Thu, 22 Jun 2023 02:50:56 -0700 Subject: [PATCH] add git archive function --- Makefile | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 9305ec8..72f1af7 100644 --- a/Makefile +++ b/Makefile @@ -252,18 +252,33 @@ define fetch_file " endef +define git_archive + $(call git_clone,$(CACHE_DIR)/$(notdir $@),$(1),$(2)) \ + && tar \ + -C $(CACHE_DIR)/$(notdir $@) \ + --sort=name \ + --mtime='@0' \ + --owner=0 \ + --group=0 \ + --numeric-owner \ + -cvf - \ + . \ + | gzip -n > $@ \ + && rm -rf $(CACHE_DIR)/$(notdir $@) +endef + define git_clone [ -d $(1) ] || \ - mkdir -p $(FETCH_DIR) && \ - mkdir $(1).tmp && \ + mkdir -p $(1).tmp && \ git -C $(1).tmp init && \ git -C $(1).tmp remote add origin $(2) && \ git -C $(1).tmp fetch origin $(3) && \ git -C $(1).tmp -c advice.detachedHead=false checkout $(3) && \ + git -C $(1).tmp submodule update --init && \ git -C $(1).tmp rev-parse --verify HEAD | grep -q $(3) || { \ echo 'Error: Git ref/branch collision.'; exit 1; \ } && \ - mv $(1).tmp $(1); + mv $(1).tmp $(1) endef define apply_patches