more stuff in the makefile
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								4dfa653823
							
						
					
				
			
			
				commit
				
					
						96e58af1da
					
				
			
		
					 2 changed files with 70 additions and 133 deletions
				
			
		
							
								
								
									
										73
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										73
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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) $@
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										130
									
								
								build-helper
									
										
									
									
									
								
							
							
						
						
									
										130
									
								
								build-helper
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
    ;;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue