From 64c8e0c87e02e3a05631d67c9d3072ca87234711 Mon Sep 17 00:00:00 2001 From: Mike Burns Date: Thu, 20 Feb 2014 15:49:36 +0100 Subject: Start bringing in the Makefile.am from gitsh It introduces the `Makefile.am` from gitsh, and abstracts it a bit. This `Makefile.am`, or most of it, could be dropped into gitsh again. How to use it is documented in `DEVELOPERS.md`. The whole release process is more consistent and simple: `make release` to build a tarball, Homebrew, Arch, Debian, HTML (from manpages), and tag it, pushed to the various repos, and with cleanup. The `release` target is composed of smaller targets that stack well. --- DEVELOPERS.md | 70 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 25 deletions(-) (limited to 'DEVELOPERS.md') diff --git a/DEVELOPERS.md b/DEVELOPERS.md index 4d2b684..5a92da8 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -1,40 +1,60 @@ Developers ========== -GNU autoconf & automake ------------------------ +Making a release +---------------- -This project uses GNU autoconf and automake for installation and -building. To regenerate everything from first principles (`configure.ac` -and `**/Makefile.am`), run the command: +1. Bump the version in `configure.ac`, in `AC_INIT`. + +2. Update the build system. This depends on GNU autoconf and GNU automake. ./autogen.sh -Debian ------- +3. Build the packages: + +This all depends on a `gh-pages` branch: + + git branch gh-pages origin/gh-pages + +On any system you can build the tarball, Homebrew package, Arch +PKGBUILD, and tag: + + make release_build_tarball release_build_homebrew release_build_arch \ + release_build_tag + +You need mdocml to tranform the manpages into HTML: + + make release_build_man_html + +Only on Debian systems can you build the Debian package: + + make release_build_deb + +If you are on a Debian system with mdocml, here is a shortcut: + + make release_build + +From here you can push these: + + make release_push_tarball release_push_homebrew release_push_arch \ + release_push_tag release_push_man_html + make release_push_deb -First, everything must be set up just right: +Or, all at once: - mkdir -p ~/debian/rcm && \ - cp -a rcm ~/debian/rcm/rcm-0.0.2 && \ - cd ~/debian/rcm && \ - rm -f rcm_0.0.2.orig.tar.gz && \ - rm -f rcm-0.0.2/tags && \ - tar --exclude=*swp --exclude-backups --exclude-vcs --exclude=debian --exclude=config.status --exclude=config.log -zcf rcm_0.0.2.orig.tar.gz rcm-0.0.2 + make release_push -Given that, now you can generate the Debian package. This requires the -Debian packaging tools, especially debuild: +You can clean individual steps: - cd ~/debian/rcm/rcm-0.0.2 && \ - debuild -us -uc + make release_clean_tarball release_clean_homebrew release_clean_arch \ + release_clean_deb release_clean_tag release_clean_man_html -HTML documentation ------------------- +Or, again, everything at once: -The HTML documentation is generated using the mdocml suite. Use the -`upload-docs` make target to rebuild the HTML docs and upload them to -GitHub Pages. The `build-docs` target will just build them. + make release_clean - make upload-docs +If you are on a Debian system, have mdocml installed, have an absurd +amount of trust in the system, and know how to debug it intimately, give +everything a go: -More information on mdocml can be found on http://mdocml.bsd.lv/ . + make release -- cgit v1.2.3