3646a9db (kx 2023-05-15 10:33:19 +0300 1) #
3646a9db (kx 2023-05-15 10:33:19 +0300 2) # Project Home:
3646a9db (kx 2023-05-15 10:33:19 +0300 3) # ============
3646a9db (kx 2023-05-15 10:33:19 +0300 4) # https://github.com/protocolbuffers/protobuf
3646a9db (kx 2023-05-15 10:33:19 +0300 5) #
3646a9db (kx 2023-05-15 10:33:19 +0300 6) # Git:
3646a9db (kx 2023-05-15 10:33:19 +0300 7) # ===
3646a9db (kx 2023-05-15 10:33:19 +0300 8) # https://github.com/protocolbuffers/protobuf
3646a9db (kx 2023-05-15 10:33:19 +0300 9) #
3646a9db (kx 2023-05-15 10:33:19 +0300 10) # Clone:
3646a9db (kx 2023-05-15 10:33:19 +0300 11) # =====
3646a9db (kx 2023-05-15 10:33:19 +0300 12) # git clone https://github.com/protocolbuffers/protobuf.git
3646a9db (kx 2023-05-15 10:33:19 +0300 13) #
3646a9db (kx 2023-05-15 10:33:19 +0300 14)
3646a9db (kx 2023-05-15 10:33:19 +0300 15) url = https://github.com/protocolbuffers
3646a9db (kx 2023-05-15 10:33:19 +0300 16)
3646a9db (kx 2023-05-15 10:33:19 +0300 17) repo_name = protobuf
3646a9db (kx 2023-05-15 10:33:19 +0300 18) pkg_name = protobuf
3646a9db (kx 2023-05-15 10:33:19 +0300 19) suffix = tar.xz
3646a9db (kx 2023-05-15 10:33:19 +0300 20)
3646a9db (kx 2023-05-15 10:33:19 +0300 21) versions = 23.0
3646a9db (kx 2023-05-15 10:33:19 +0300 22)
3646a9db (kx 2023-05-15 10:33:19 +0300 23) # List of tags to be extracted:
3646a9db (kx 2023-05-15 10:33:19 +0300 24) TAGS = $(versions)
3646a9db (kx 2023-05-15 10:33:19 +0300 25)
3646a9db (kx 2023-05-15 10:33:19 +0300 26) git_repo = .git_clone
3646a9db (kx 2023-05-15 10:33:19 +0300 27) tarballs = $(addsuffix .$(suffix), $(addprefix $(pkg_name)-, $(versions)))
3646a9db (kx 2023-05-15 10:33:19 +0300 28) sha1s = $(addsuffix .sha1sum, $(tarballs))
3646a9db (kx 2023-05-15 10:33:19 +0300 29)
3646a9db (kx 2023-05-15 10:33:19 +0300 30) TARGETS = repository_clean
3646a9db (kx 2023-05-15 10:33:19 +0300 31)
3646a9db (kx 2023-05-15 10:33:19 +0300 32)
3646a9db (kx 2023-05-15 10:33:19 +0300 33) all: $(TARGETS)
3646a9db (kx 2023-05-15 10:33:19 +0300 34)
3646a9db (kx 2023-05-15 10:33:19 +0300 35) .PHONY: downloads_clean repository_clean
3646a9db (kx 2023-05-15 10:33:19 +0300 36)
3646a9db (kx 2023-05-15 10:33:19 +0300 37) $(git_repo):
3646a9db (kx 2023-05-15 10:33:19 +0300 38) @echo -e "\n======= Clone $(repo_name).git repository =======\n"
3646a9db (kx 2023-05-15 10:33:19 +0300 39) @rm -rf $(repo_name)
3646a9db (kx 2023-05-15 10:33:19 +0300 40) @git clone $(url)/$(repo_name).git $(repo_name)
3646a9db (kx 2023-05-15 10:33:19 +0300 41) @touch $@
3646a9db (kx 2023-05-15 10:33:19 +0300 42)
3646a9db (kx 2023-05-15 10:33:19 +0300 43) $(tarballs): $(git_repo)
3646a9db (kx 2023-05-15 10:33:19 +0300 44) @for version in $(versions) ; do \
3646a9db (kx 2023-05-15 10:33:19 +0300 45) tag=v`echo $$version` ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 46) if [ ! -f $(repo_name)-$$version.$(suffix) ]; then \
3646a9db (kx 2023-05-15 10:33:19 +0300 47) echo -e "\n======= Creating '$(repo_name)-$$version.$(suffix)' snapshot =======" ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 48) ( cd $(repo_name) ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 49) git submodule update --init ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 50) git archive --format=tar --prefix=$(repo_name)-$${version}/ --output=../$(repo_name)-$${version}.tar $${tag} ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 51) cmd="git submodule foreach --recursive 'git archive --format=tar --prefix=$(repo_name)-$${version}/\$$sm_path/ HEAD --output=\$$toplevel/../$(repo_name)-$${version}-sub-\$$sha1.tar'" ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 52) eval $${cmd} ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 53) ) ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 54) for tar in `ls $(repo_name)-$${version}-sub-*.tar` ; do \
3646a9db (kx 2023-05-15 10:33:19 +0300 55) tar --concatenate --file $(repo_name)-$${version}.tar $${tar} ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 56) done ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 57) rm -f $(repo_name)-$${version}-sub-*.tar ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 58) xz $(repo_name)-$${version}.tar ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 59) tar xJf $(pkg_name)-$$version.$(suffix) ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 60) ( cd $(pkg_name)-$$version ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 61) find . -type f \( -name ".gitignore" -o -name ".gitmodules" -o -name ".dummy" \) -exec rm -f {} \; ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 62) for dir in `find . -type d -name ".github" -print` ; do \
3646a9db (kx 2023-05-15 10:33:19 +0300 63) rm -rf $${dir} ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 64) done ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 65) ) ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 66) tar cJf $(pkg_name)-$$version.$(suffix) $(pkg_name)-$$version ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 67) rm -rf $(pkg_name)-$$version ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 68) fi ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 69) done
3646a9db (kx 2023-05-15 10:33:19 +0300 70)
3646a9db (kx 2023-05-15 10:33:19 +0300 71) $(sha1s): %.$(suffix).sha1sum : %.$(suffix)
3646a9db (kx 2023-05-15 10:33:19 +0300 72) @for tarball in $< ; do \
3646a9db (kx 2023-05-15 10:33:19 +0300 73) echo -e "\n======= Calculation the '$$tarball' sha1sum =======" ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 74) sha1sum --binary $$tarball > $$tarball.sha1sum ; \
3646a9db (kx 2023-05-15 10:33:19 +0300 75) done
3646a9db (kx 2023-05-15 10:33:19 +0300 76)
3646a9db (kx 2023-05-15 10:33:19 +0300 77) repository_clean: $(sha1s)
3646a9db (kx 2023-05-15 10:33:19 +0300 78) @echo -e "\n======= Remove cloned $(repo_name).git repository =======\n"
3646a9db (kx 2023-05-15 10:33:19 +0300 79) @rm -rf $(git_repo) $(repo_name)
3646a9db (kx 2023-05-15 10:33:19 +0300 80)
3646a9db (kx 2023-05-15 10:33:19 +0300 81) downloads_clean:
3646a9db (kx 2023-05-15 10:33:19 +0300 82) @rm -rf $(tarballs) $(sha1s)
3646a9db (kx 2023-05-15 10:33:19 +0300 83) @rm -rf $(git_repo) $(repo_name)