more stuff in the makefile

Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
Nico Schottelius 2013-06-03 22:29:49 +02:00
parent 4dfa653823
commit 96e58af1da
2 changed files with 70 additions and 133 deletions

View file

@ -18,35 +18,78 @@
#
#
DIST=dist-tag dist-branch-merge dist-pypi dist-archlinux-makepkg
RELEASE=web release-man pub
RELEASE+=release-blog release-ml
RELEASE+=dist-freecode dist-manual dist-archlinux-aur-upload
MANDIR=docs/man
MAN1DSTDIR=$(MANDIR)/man1
MAN7DSTDIR=$(MANDIR)/man7
MANREF=$(MAN7DSTDIR)/cdist-reference.text
MANREFSH=$(MANDIR)/cdist-reference.text.sh
CHECKS=check-version check-date
DIST=dist-tag dist-branch-merge
RELEASE=release-web release-man release-pypi release-archlinux-makepkg
RELEASE+=release-blog release-ml
RELEASE+=release-freecode release-archlinux-aur-upload
helper=./build-helper
version=`git describe`
versionchangelog=`$(helper) changelog-version`
versionfile=cdist/version.py
archlinuxtar=cdist-${versionchangelog}-1.src.tar.gz
$(versionfile):
echo $(version) > $@
version:
$(DIST): dist-check
$(RELEASE): $(DIST)
$(RELEASE): $(DIST) $(CHECKS)
man: mangen mantype manbuild
man: $(MANREF) mantype manbuild
$(MANREF): $(MANREFSH)
$(MANREFSH)
################################################################################
# generic code
#
################################################################################
# dist code
#
dist-check: man
dist: $(DIST)
echo "Run \"make release\" to release to the public"
release: $(RELEASE)
dist-pypi: man version
python3 setup.py sdist upload
dist-archlinux: dist-pypi
dist-check: clean man
dist-archlinux-makepkg: PKGBUILD
$(archlinuxtar): PKGBUILD dist-pypi
makepkg -c --source
################################################################################
# release code
#
release: pub $(RELEASE)
echo "Don't forget...: linkedin"
release-archlinux: $(archlinuxtar)
burp -c system $^
release-blog: blog
release-ml: release-blog
release-pub: man
release-web: web-doc
PKGBUILD: PKGBUILD.in
./PKGBUILD.in
################################################################################
# generic call
%:
./build-helper $@
$(helper) $@

View file

@ -18,14 +18,9 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Push a directory to a target, both sides have the same name (i.e. explorers)
# or
# Pull a directory from a target, both sides have the same name (i.e. explorers)
# This file contains the heavy lifting found usually in the Makefile
#
# exit on any error
#set -e
basedir=${0%/*}
version=$(cd "$basedir" && git describe)
@ -51,13 +46,6 @@ SPEECHESDIR=docs/speeches
cd "$basedir"
case "$1" in
man)
set -e
"$0" mangen
"$0" mantype
"$0" manbuild
;;
manbuild)
trap abort INT
abort() {
@ -86,13 +74,7 @@ case "$1" in
done
;;
mangen)
${MANDIR}/cdist-reference.text.sh
;;
man-pub)
$0 man
release-man)
version=$($0 changelog-version)
rm -rf "${WEBMAN}"
@ -102,36 +84,6 @@ case "$1" in
cd ${WEBMAN} && git add . && git commit -m "Cdist Manpage update: $version"
;;
dist)
set -e
# Do the checks
$0 dist-check
# Git changes - everything depends on this
$0 dist-tag
$0 dist-branch-merge
# Pypi first - is the base for others
$0 dist-pypi
# Archlinux depends on successful pypi ;-)
$0 dist-archlinux
# Update website (includes documentation)
$0 web
# Update manpages on website
$0 man-pub
# update git repos
$0 pub
$0 dist-blog
$0 dist-freecode
$0 dist-ml
$0 dist-manual
;;
changelog-changes)
awk -F: 'BEGIN { start=0 } { if ($0 ~ /^[[:digit:]]/) { if(start == 0) {start = 1 } else { exit } } else { if(start==1) {print $0 }} }' "$basedir/docs/changelog"
;;
@ -141,12 +93,7 @@ case "$1" in
grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//'
;;
dist-check)
set -e
echo "Verifying documentation building works ..."
$0 clean
$0 man
check-version)
changelog_version=$($0 changelog-version)
echo "Target version from changelog: $changelog_version"
@ -154,7 +101,9 @@ case "$1" in
echo "Version $changelog_version already exists, aborting."
exit 1
fi
;;
check-date)
# verify date in changelog
date_today="$(date +%Y-%m-%d)"
date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //')
@ -164,7 +113,6 @@ case "$1" in
echo "Changelog: $date_changelog"
exit 1
fi
;;
blog)
@ -186,8 +134,7 @@ For more information visit the [[cdist homepage|software/cdist]].
eof
;;
dist-blog)
$0 blog
release-blog)
version=$($0 changelog-version)
file=cdist-${version}-released.mdwn
cd "$WEBBLOG"
@ -196,8 +143,7 @@ eof
git push
;;
dist-ml)
$0 blog
release-ml)
version=$($0 changelog-version)
to_a=cdist
to_d=l.schottelius.org
@ -233,16 +179,6 @@ eof
;;
dist-manual)
cat << notes
To be done manually...
- linkedin entry
notes
;;
dist-tag)
version=$($0 changelog-version)
# add tag
@ -267,23 +203,7 @@ notes
fi
;;
dist-archlinux)
$0 dist-archlinux-makepkg
$0 dist-archlinux-aur-upload
;;
dist-archlinux-makepkg)
./PKGBUILD.in
makepkg -c --source
;;
dist-archlinux-aur-upload)
version=$($0 changelog-version)
tar=cdist-${version}-1.src.tar.gz
burp -c system "$tar"
;;
dist-freecode)
release-freecode)
version=$($0 changelog-version)
api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc)
@ -316,13 +236,7 @@ eof
;;
dist-pypi)
$0 man
$0 version
python3 setup.py sdist upload
;;
speeches)
dist-speeches)
cd "$SPEECHESDIR"
for speech in *tex; do
pdflatex "$speech"
@ -339,16 +253,15 @@ eof
cd "${WEBDIR}" && make pub
;;
web)
release-web)
set -e
"$0" web-doc
# Fix ikiwiki, which does not like symlinks for pseudo security
ssh tee.schottelius.org \
"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man &&
rm -f latest && ln -sf "$version" latest"
;;
p|pu|pub)
pub)
for remote in "" github sf; do
echo "Pushing to $remote"
git push --mirror $remote
@ -376,11 +289,6 @@ eof
rm -rf pkg/ src/
;;
very-clean)
$0 clean
$0 clean-dist
;;
test)
shift # skip t
export PYTHONPATH="$(pwd -P)"
@ -392,22 +300,8 @@ eof
fi
;;
version)
echo "VERSION=\"$version\"" > cdist/version.py
;;
*)
echo ''
echo 'Welcome to cdist!'
echo ''
echo 'Here are the possible targets:'
echo ''
echo ' clean: Remove build stuff'
echo ' man: Build manpages (requires Asciidoc)'
echo ' test: Run tests'
echo ''
echo ''
echo "Unknown target, \"$1\"" >&2
echo "Unknown target $@ - aborting"
exit 1
;;