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 ## Für die Einrichtung unter Debian sind folgende Pakete nötig
```bash ```bash
apt-get install \ apt-get install \
git subversion cvs automake build-essential ccache cmake patch bison flex \ git subversion mercurial cvs automake build-essential ccache cmake patch bison \
texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma gperf \ flex texinfo autopoint libtool libtool-bin python curl gawk gzip bzip2 lzma \
gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \ gperf gettext help2man bc libglib2.0-dev libncurses5-dev libncursesw5-dev \
liblzo2-dev uuid-dev libssl-dev libltdl-dev libcurl4-openssl-dev intltool zip 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 \ if [ "$($(PKG)_VERSION)" == "git" ]; then \
$(call MESSAGE,"Downloading") ; \ $(call MESSAGE,"Downloading") ; \
$(GET_GIT_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \ $(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 \ elif [ "$($(PKG)_VERSION)" == "svn" ]; then \
$(call MESSAGE,"Downloading") ; \ $(call MESSAGE,"Downloading") ; \
$(GET_SVN_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \ $(GET_SVN_SOURCE) $($(PKG)_SITE)/$($(PKG)_SOURCE) $(DL_DIR)/$($(PKG)_SOURCE); \
@ -40,20 +43,34 @@ define EXTRACT # (directory)
@$(call MESSAGE,"Extracting") @$(call MESSAGE,"Extracting")
$(foreach hook,$($(PKG)_PRE_EXTRACT_HOOKS),$(call $(hook))$(sep)) $(foreach hook,$($(PKG)_PRE_EXTRACT_HOOKS),$(call $(hook))$(sep))
$(Q)( \ $(Q)( \
case $($(PKG)_SOURCE) in \ case $($(PKG)_VERSION).$($(PKG)_SOURCE) in \
*.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz) \ *.tar | *.tar.bz2 | *.tbz | *.tar.gz | *.tgz | *.tar.xz | *.txz) \
tar -xf ${DL_DIR}/$($(PKG)_SOURCE) -C $(1); \ tar -xf ${DL_DIR}/$($(PKG)_SOURCE) -C $(1); \
;; \ ;; \
*.zip) \ *.zip) \
unzip -o -q ${DL_DIR}/$($(PKG)_SOURCE) -d $(1); \ unzip -o -q ${DL_DIR}/$($(PKG)_SOURCE) -d $(1); \
;; \ ;; \
*.git | *.svn) \ *.git | git.*) \
cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \ cp -a -t $(1) $(DL_DIR)/$($(PKG)_SOURCE); \
if test $($(PKG)_CHECKOUT); then \ if test $($(PKG)_CHECKOUT); then \
$(call MESSAGE,"git checkout $($(PKG)_CHECKOUT)"); \ $(call MESSAGE,"git checkout $($(PKG)_CHECKOUT)"); \
$(CD) $(1)/$($(PKG)_DIR); git checkout $($(PKG)_CHECKOUT); \ $(CD) $(1)/$($(PKG)_DIR); git checkout $($(PKG)_CHECKOUT); \
fi; \ 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)"); \ $(call MESSAGE,"Cannot extract $($(PKG)_SOURCE)"); \
false ;; \ 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_ARCHIVE = support/scripts/get-git-archive.sh
GET_GIT_SOURCE = support/scripts/get-git-source.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 GET_SVN_SOURCE = support/scripts/get-svn-source.sh
UPDATE-RC.D = support/scripts/update-rc.d -r $(TARGET_DIR) UPDATE-RC.D = support/scripts/update-rc.d -r $(TARGET_DIR)
REMOVE-RC.D = support/scripts/update-rc.d -f -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