diff options
Diffstat (limited to 'misc/release')
-rwxr-xr-x | misc/release | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/misc/release b/misc/release new file mode 100755 index 0000000..9b8cffa --- /dev/null +++ b/misc/release @@ -0,0 +1,96 @@ +#!/bin/bash -xe +# +# Generate a NASM release +# +# Usage: release version [destination] +# + +version="$1" +if [ -z "$1" ]; then + echo "Usage: $0 version [destination]" 1>&2 + exit 1 +fi + +WHERE="$2" +if [ -z "$WHERE" ]; then + WHERE=/var/tmp +fi + +if [ -n "$GIT_DIR" ]; then + HERE="$GIT_DIR" +else + HERE=`pwd` +fi + +if [ x`cat version` != x"${version}" ]; then + echo "${version}" > version + git update-index version + git commit -m "Version ${version}" -- version +fi +git tag -m "NASM version ${version}" -f "nasm-${version}" + +cd "$WHERE" +rm -rf nasm-release.* +work=nasm-release.$$ +mkdir $work +cd $work +unset GIT_DIR +git clone -s -l "$HERE" nasm +rm -rf nasm/.git nasm/.gitignore + +# Create files which are in the release but automatically generated +cd nasm +./autogen.sh +./configure --prefix=/usr/local +make perlreq spec +make alldeps +make distclean +cd .. + +# Clean up any previous attempt +rm -f ../nasm-"$version".tar.gz ../nasm-"$version"-xdoc.tar.gz +rm -f ../nasm-"$version".tar.bz2 ../nasm-"$version"-xdoc.tar.bz2 +rm -f ../nasm-"$version".zip ../nasm-"$version"-xdoc.zip + +# Create tarfile (Unix convention: file includes prefix) +mv nasm nasm-"$version" +tar cvvf nasm-"$version".tar nasm-"$version" +bzip2 -9k nasm-"$version".tar +gzip -9 nasm-"$version".tar +mv nasm-"$version".tar.gz nasm-"$version".tar.bz2 .. + +# Create zipfile (DOS convention: no prefix, convert file endings) +cd nasm-"$version" +zip -9Dlr ../../nasm-"$version".zip * -x \*.jpg -x \*.zip -x \*.ico # Text files +zip -9Dgr ../../nasm-"$version".zip * -i \*.jpg -i \*.zip -i \*.ico # Binary files +cd .. + +# Record what we have already generated +find nasm-"$version" -not -type d -print > main + +# Create documentation +cd nasm-"$version" +./configure --prefix=/usr/local +make doc +# Remove intermediate files. +make cleaner +cd .. + +# Remove non-documentation +cat main | xargs rm -f + +# Create doc tarfile +tar cvvf nasm-"$version"-xdoc.tar nasm-"$version"/doc +bzip2 -9k nasm-"$version"-xdoc.tar +gzip -9 nasm-"$version"-xdoc.tar +mv nasm-"$version"-xdoc.tar.gz nasm-"$version"-xdoc.tar.bz2 .. + +# Create doc zipfile (DOS convention: no prefix, convert file endings) +# (Note: generating Win .hlp files requires additional tools) +cd nasm-"$version" +zip -9Dlr ../../nasm-"$version"-xdoc.zip doc -x \*.pdf -x \*.info\* +zip -9Dgr ../../nasm-"$version"-xdoc.zip doc -i \*.pdf -i \*.info\* + +# Clean up +cd ../.. +rm -rf "$work" |