|
From: <hp...@us...> - 2002-05-06 00:27:18
|
Update of /cvsroot/nasm/nasm/misc
In directory usw-pr-cvs1:/tmp/cvs-serv17017/misc
Added Files:
makedist.sh release
Log Message:
Move the "makedist.sh" script to "misc"; label it with an "obsolete"
warning, and create new "release" script
--- NEW FILE: makedist.sh ---
#!/bin/sh
# * THIS SCRIPT IS OBSOLETE DO NOT USE *
MAJORVER=`grep NASM_MAJOR_VER nasm.h | head -1 | cut -f3 -d' '`
MINORVER=`grep NASM_MINOR_VER nasm.h | head -1 | cut -f3 -d' '`
VERSION=`grep NASM_VER nasm.h | head -1 | cut -f3 -d' ' | sed s/\"//g`
DOSVERSION="${MAJORVER}${MINORVER}"
NASM_TAR_GZ=dist/nasm-${VERSION}.tar.gz
NASM_ZIP=dist/nasm${DOSVERSION}s.zip
NASM_DOS_ZIP=dist/nasm${DOSVERSION}.zip
NASM_DOC_ZIP=dist/nasm${DOSVERSION}d.zip
if [ -d dist ]; then rm -rf dist; fi
if [ -d nasm-${VERSION} ]; then rm -rf nasm-${VERSION}; fi
if [ ! -d dist ]; then mkdir dist; fi
if [ -f dist/nasm.tar.gz ]; then rm dist/nasm.tar.gz; fi
mkdir nasm-${VERSION}
(cd nasm-${VERSION}; ln -s ../* .;
rm -f nasm-${VERSION} dist Checklist GNUmakefile)
find nasm-${VERSION}/ -follow -name GNUmakefile > tar-exclude
find nasm-${VERSION}/ -follow -name RCS >> tar-exclude
find nasm-${VERSION}/ -follow -name '*.exe' >> tar-exclude
find nasm-${VERSION}/ -follow -name '*.uu' >> tar-exclude
find nasm-${VERSION}/ -follow -name '*,v' >> tar-exclude
for i in nasm-${VERSION}/doc/{nasmdoc.hpj,nasmdoc.rtf,nasmdoc.texi,Readme};
do echo $i; done >> tar-exclude
tar chvfX dist/nasm-${VERSION}.tar tar-exclude nasm-${VERSION}
rm -f tar-exclude
tar tf dist/nasm-${VERSION}.tar | (echo nasm.doc; sed \
-e 's:^nasm-[^/]*/::' \
-e 's:/$::' \
-e '/install-sh/d' \
-e '/makedist\.sh/d' \
-e '/exasm\.zip/d' \
-e '/config/d' \
-e '/doc\/.*\.html/d' \
-e '/doc\/Readme/d' \
-e '/doc\/nasmdoc\.ps/d' \
-e '/doc\/nasmdoc\.txt/d' \
-e '/doc\/nasmdoc\.rtf/d' \
-e '/doc\/nasmdoc\.hpj/d' \
-e '/doc\/nasmdoc\.texi/d' \
-e '/doc\/nasmdoc\.hlp/d' \
-e '/doc\/nasm\.info/d' \
) | sort > zipfiles
sed \
-e '/^[^\/]*\.\(c\|h\|pl\|bas\|dat\)$/d' \
-e '/^doc\(\/.*\)\?/d' \
-e '/standard\.mac/d' \
-e '/Makefile/d' \
-e '/rdoff/d' \
< zipfiles > zipfiles.dos
gzip -9 dist/nasm-${VERSION}.tar
rm -rf nasm-${VERSION}
ln -s doc/nasmdoc.src nasm.doc
zip -l -k ${NASM_ZIP} `cat zipfiles`
zip -k ${NASM_ZIP} *.exe misc/exasm.zip
zip -l -k ${NASM_DOS_ZIP} `cat zipfiles.dos`
zip -k ${NASM_DOS_ZIP} *.exe misc/exasm.zip
rm -f nasm.doc
(cd doc; zip -l -k ../${NASM_DOC_ZIP} \
Readme \
nasmdoc.src rdsrc.pl \
nasmdoc.txt \
nasmdoc.ps \
*.html
zip -k ../${NASM_DOC_ZIP} \
nasmdoc.hlp \
nasm.info)
rm -f zipfiles zipfiles.dos
echo Distributions complete.
--- NEW FILE: release ---
#!/bin/bash -xe
#
# Generate a NASM release
#
# Usage: release {test|real} [branch]
#
# *** WARNING WARNING WARNING ***
# Make sure to execute this in an empty directory
#
if [ -z "$SFUSER" ]; then
if [ -f "$HOME/.sfuser" ]; then
sfuser=`cat "$HOME/.sfuser"`
else
sfuser=`whoami`
fi
fi
if [ -z "$1" ]; then
echo "Usage: $0 {test|real}" 1>&2
exit 1
fi
if [ "$1" eq "real" ]; then
real=true
else
real=false
fi
work=`pwd`/nasm-release.$$
mkdir "$work"
cd "$work"
if $real; then
# Need to tag the tree, use real account
CVS="cvs -z3 -d ${SFUSER}@cvs.nasm.sourceforge.net:/cvsroot/nasm"
else
# Don't need to tag the tree, can use anonymous
echo ':pserver:ano...@cv...:/cvsroot/nasm A' > "$work"/cvspass
export CVS_PASSFILE="$work"/cvspass
CVS="cvs -z3 -d :pserver:ano...@cv...:/cvsroot/nasm"
fi
if [ -n "$2" ]; then
branchopt="-r $2"
fi
rm -rf nasm*
$CVS co $branchopt nasm
version=`cat nasm/version`
v1=`echo $version | cut -d. -f1`
v2=`echo $version | cut -d. -f2`
v3=`echo $version | cut -d. -f3`
# Tag the tree as a release
if $real; then
cd nasm && $CVS tag -F -a nasm-`echo $version | sed -e 's/\./_/g'`
fi
# Extract file names which have the -kb flag set, meaning they
# are binary files
bins="$work"/binaries
rm -f "$bins"
cd nasm
find . -type d -name CVS -print | (
while read dir; do
xdir=`echo "$dir" | sed -e 's|^\./||' -e 's|/CVS$||'`
egrep '^/[^/]*/[^/]*/[^/]*/[^/]*-kb[^/]*/' < $dir/Entries | \
cut -d/ -f2 | sed -e "s|^|$xdir/|" >> "$bins"
done
)
cd ..
# We did "co" instead of "export" -- remove CVS directories
find nasm -type d -name CVS -print | xargs rm -rf
# Create files which are in the release but automatically generated
cd nasm
autoconf
./configure --prefix=/usr/local
make dist
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@"$bins" * # Text files
zip -9Dgr ../../nasm-${version}.zip -i@"$bins" * # 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
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
zip -9Dgr ../../nasm-${version}-xdoc.zip doc -i \*.pdf
# Clean up
cd ..
rm -rf "$work"
|