a05fcf242f0a2c18960ba217a2e2aa3f59dca16c
[ctsim.git] / make-upstream.sh
1 #!/bin/bash 
2 #
3 # Creates upstream packages
4 # Programmer: Kevin Rosenberg
5
6 set -e # abort on error
7
8 usage () {
9     progname="`basename \"$0\"`"
10
11     cat >&2 <<EOF
12 Usage: $progname [options]
13 Creates upstream archives
14 Options:
15   -t   Tag CVS tree with current version numbers
16   -h   Print this brief help
17 EOF
18 }
19
20 # Command line
21 while [ $# != 0 ]; do
22     value="`echo x\"$1\" | sed -e 's/^x-.//'`"
23     case "$1" in
24         -h)  usage; exit 0           ;;
25         -t)  opt_tag=1               ;;
26          *)  usage; exit 0           ;;
27     esac
28     shift
29 done
30
31 DEBPKG=ctsim
32 PKG=ctsim
33 TOPDIR=`pwd`
34
35 VERSION=`sed -n -e "s/${DEBPKG} (\(.*\)-[0-9.]).*/\1/p" < debian/changelog  |head -1`
36
37 PACKAGE_DIR=/usr/local/src/Packages/${DEBPKG}
38 DISTDIR=${PKG}-${VERSION}
39 DEBDIR=${DEBPKG}-${VERSION}
40
41 if [ ! -z ${opt_tag} ]; then
42     UPSTREAM_TAG=upstream_version_`echo ${VERSION} | tr . _`
43     echo "(Re-)tagging with Upstream tag '${UPSTREAM_TAG}'"
44     cvs -q rtag -d $UPSTREAM_TAG $PKG > /dev/null
45     cvs -q tag -F $UPSTREAM_TAG > /dev/null
46 fi
47
48 if [ ! -f docs/${PKG}.htb -o ! -f docs/html/${PKG}_contents.html -o ! -f docs/${PKG}.pdf ]; then
49   echo "Making documentation"
50   ../make-doc.sh
51 fi
52
53 # Prepare for archive
54 cd ..
55 rm -f ${PKG}_${VERSION}.tar.gz ${DEBPKG}_${VERSION}.orig.tar.gz
56 rm -rf ${DISTDIR} ${DEBDIR} ${DISTDIR}.zip
57 cp -a ${TOPDIR} ${DISTDIR}
58
59 echo "Cleaning distribution directory ${DISTDIR}"
60 cd ${DISTDIR}
61 rm -f upload.sh make-debian.sh make-upstream.sh cvsbp-prepare.sh make-doc.sh 
62 rm -f `find . -type f -name .cvsignore`
63 rm -rf `find . -type d -name CVS`
64 rm -f `find . -type f -name '*~' -or -name '.#*'  -or -name '#*#' -or -name ".*~"`
65 rm -f `find doc -type f -name \*.tex -or -name \*.aux -or \
66   -name \*.log -or -name \*.out -or -name \*.dvi`
67 rm -rf images doc stamp-h.in build-stamp configure-stamp autom4te.cache
68 cd ..
69
70 echo "Creating upstream archives"
71 rm -rf ${DISTDIR}/debian
72 GZIP=-9 tar czf ${DISTDIR}.tar.gz ${DISTDIR}
73
74 rm -rf ${DISTDIR}
75 if [ "${DISTDIR}" != "${DEBDIR}" ]; then 
76   cp -a ${DISTDIR} ${DEBDIR}
77 else
78   cp -a ${DISTDIR} ${DEBDIR}-copy
79 fi
80
81 unix2dos `find ${DISTDIR} -type f -and -name '*.c' -or -name '*.h' -or \
82   -name '*.cpp' -or -name '*.sh' -or -name '*.in' -or \
83   -name 'Makefile*' -or -name ChangeLog -or -name COPYRIGHT -or -name TODO -or \
84   -name README -or -name INSTALL -or -name NEWS -or -name '*.tex' -or \
85   -name '*.hhc' -or -name '*.hhk' -or -name '*.hpj' -or -name '*.ini' -or \
86   -name COPYING* -or -name catalog` 
87 zip -rq ${DISTDIR}.zip ${DISTDIR}
88 rm -r {$DISTDIR}
89
90 if [ "${DISTDIR}" == "${DEBDIR}" ]; then 
91   mv ${DEBDIR}-copy ${DEBDIR}
92 fi
93 GZIP=-9 tar czf ${DEBPKG}_${VERSION}.orig.tar.gz ${DEBDIR}
94
95 cp -a ${TOPDIR}/debian ${DEBDIR}
96 rm -f ${DEBDIR}/debian/.cvsignore 
97 rm -rf ${DEBDIR}/debian/CVS
98
99 rm -rf ${DEBDIR}
100
101 echo "Moving upstream archives to ${PACKAGE_DIR}"
102 mkdir -p /usr/local/src/Packages/${DEBPKG}
103 rm -f ${PACKAGE_DIR}/${DISTDIR}.zip ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz
104 mv ${DISTDIR}.zip ${DEBPKG}_${VERSION}.orig.tar.gz ${DISTDIR}.tar.gz ${PACKAGE_DIR}
105
106 cd ${TOPDIR}
107 exit 0