Browse Source

- buildsystem-helpers: add hg support

master
vanhofen 2 years ago
parent
commit
1d042e849b
  1. 6
      README.md
  2. 22
      make/buildsystem-helpers.mk
  3. 23
      support/scripts/get-hg-source.sh

6
README.md

@ -3,9 +3,9 @@
## Für die Einrichtung unter Debian sind folgende Pakete nötig
```bash
apt-get install \
git subversion cvs automake build-essential ccache cmake patch bison flex \
texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma gperf \
gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \
git subversion mercurial cvs automake build-essential ccache cmake patch bison \
flex texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma \
gperf gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \
liblzo2-dev uuid-dev libssl-dev libltdl-dev libcurl4-openssl-dev intltool zip
```

22
make/buildsystem-helpers.mk

@ -22,6 +22,9 @@ define DOWNLOAD
if [ "$($(PKG)_VERSION)" == "git" ]; then \
$(call MESSAGE,"Downloading") ; \
$(GET_GIT_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \
elif [ "$($(PKG)_VERSION)" == "hg" ]; then \
$(call MESSAGE,"Downloading") ; \
$(GET_HG_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \
elif [ "$($(PKG)_VERSION)" == "svn" ]; then \
$(call MESSAGE,"Downloading") ; \
$(GET_SVN_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \
@ -40,20 +43,34 @@ define EXTRACT # (directory)
@$(call MESSAGE,"Extracting")
$(foreach hook,$($(PKG)_PRE_EXTRACT_HOOKS),$(call $(hook))$(sep))
$(Q)( \
case $($(PKG)_SOURCE) in \
case $($(PKG)_VERSION).$($(PKG)_SOURCE) in \
*.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz) \
tar -xf ${DL_DIR}/$($(PKG)_SOURCE) -C $(1); \
;; \
*.zip) \
unzip -o -q ${DL_DIR}/$($(PKG)_SOURCE) -d $(1); \
;; \
*.git | *.svn) \
*.git | git.*) \
cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \
if test $($(PKG)_CHECKOUT); then \
$(call MESSAGE,"git checkout $($(PKG)_CHECKOUT)"); \
$(CD) $(1)/$($(PKG)_DIR); git checkout $($(PKG)_CHECKOUT); \
fi; \
;; \
*.hg | hg.*) \
cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \
if test $($(PKG)_CHECKOUT); then \
$(call MESSAGE,"hg checkout $($(PKG)_CHECKOUT)"); \
$(CD) $(1)/$($(PKG)_DIR); hg checkout $($(PKG)_CHECKOUT); \
fi; \
;; \
*.svn | svn.*) \
cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \
if test $($(PKG)_CHECKOUT); then \
$(call MESSAGE,"svn checkout $($(PKG)_CHECKOUT)"); \
$(CD) $(1)/$($(PKG)_DIR); svn checkout $($(PKG)_CHECKOUT); \
fi; \
;; \
*) \
$(call MESSAGE,"Cannot extract $($(PKG)_SOURCE)"); \
false ;; \
@ -159,6 +176,7 @@ SED = $(shell which sed || type -p sed || echo sed) -i -e
GET_GIT_ARCHIVE = support/scripts/get-git-archive.sh
GET_GIT_SOURCE = support/scripts/get-git-source.sh
GET_HG_SOURCE = support/scripts/get-hg-source.sh
GET_SVN_SOURCE = support/scripts/get-svn-source.sh
UPDATE-RC.D = support/scripts/update-rc.d -r $(TARGET_DIR)
REMOVE-RC.D = support/scripts/update-rc.d -f -r $(TARGET_DIR)

23
support/scripts/get-hg-source.sh

@ -0,0 +1,23 @@
#!/bin/bash
#
# clone or pull an existing hg repository
#
# (C) 2019 vanhofen
# License: WTFPLv2
#
# parameters:
# * hg URL
# * destination directory
#
HG_URL="$1"
DEST="$2"
# exit on error
set -e
if [ -d $DEST ]; then
cd $DEST
hg pull || true
else
hg clone $HG_URL $DEST
fi
Loading…
Cancel
Save