projects-dir.mk: Add install-prereq-build

Add a target to pull in all prerequisites needed for building via the
package manager.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-04-12 13:30:53 +00:00
commit f5ab24d344
2 changed files with 67 additions and 11 deletions

View file

@ -51,15 +51,15 @@ endif
# ------------ commands
MOD_SCRIPT_DIR = ./jw-build/scripts
PGIT = CLONE_PROJECTS="$(PROJECTS)" /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pgit.sh /opt/jw-build/bin/pgit.sh) pgit.sh-not-found)
BUILD_PY = python $(MOD_SCRIPT_DIR)/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_ARGS)
PURGE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/purge-stale-projects.sh /opt/jw-build/bin/purge-stale-projects.sh) purge-not-found)
RELEASE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/build-release.sh /opt/jw-build/bin/build-release.sh) release-not-found)
BROWSER ?= firefox
GIT_SRV_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/git-srv-admin.sh
CVS_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/cvs-admin.sh
MOD_SCRIPT_DIR = ./jw-build/scripts
PGIT = CLONE_PROJECTS="$(PROJECTS)" /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pgit.sh /opt/jw-build/bin/pgit.sh) pgit.sh-not-found)
BUILD_PY = python $(MOD_SCRIPT_DIR)/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_ARGS)
PURGE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/purge-stale-projects.sh /opt/jw-build/bin/purge-stale-projects.sh) purge-not-found)
RELEASE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/build-release.sh /opt/jw-build/bin/build-release.sh) release-not-found)
PKG_MANAGER_SH ?= /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pkg-manager.sh /opt/jw-build/bin/pkg-manager.sh) pkg-manager-not-found)
BROWSER ?= firefox
GIT_SRV_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/git-srv-admin.sh
CVS_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/cvs-admin.sh
# ------------ targets
all: pull.done
@ -76,11 +76,14 @@ clean-dirs:
ls */dirs-all.done 2>/dev/null | sed 's%/.*%%' | xargs -r $(BUILD_PY) clean
echo-prereq-build:
@make pull.done >/dev/null 2>&1
@make --no-print-directory pull.done >/dev/null 2>&1
@python $(MOD_SCRIPT_DIR)/projects.py $(PROJECTS_PY_EXTRA_ARGS) required-pkg $(BUILD_PROJECTS)
install-prereq-build:
make --no-print-directory echo-prereq-build 2>/dev/null | xargs -r $(PKG_MANAGER_SH) install
echo-prereq-release:
@make pull.done >/dev/null 2>&1
@make --no-print-directory pull.done >/dev/null 2>&1
@python $(MOD_SCRIPT_DIR)/projects.py $(PROJECTS_PY_EXTRA_ARGS) required-pkg --flavour release $(BUILD_PROJECTS)
doc-project doc-module:

53
scripts/pkg-manager.sh Normal file
View file

@ -0,0 +1,53 @@
#!/bin/sh
log()
{
echo $@ >&2
}
err()
{
echo $@ >&2
}
fatal()
{
err "Giving up: $@"
exit 1
}
usage()
{
cat<<-EOT
$myname cmd args
EOT
}
run()
{
log "Running ==== $@"
eval sudo "$@"
}
cmd_install()
{
case $ID in
opensuse|suse)
eval run zypper in "$@"
;;
debian)
eval run apt-get install "$@"
;;
*)
fatal "Tried to install to unsupported platform \"$ID\""
;;
esac
}
# -- here we go
myname=`basename $0`
. /etc/os-release
cmd="$1"
shift
eval cmd_$cmd "$@"