diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src-release | 318 | ||||
-rwxr-xr-x | src-release.sh | 352 |
3 files changed, 357 insertions, 318 deletions
@@ -1,3 +1,8 @@ +2014-08-27 Will Newton <will.newton@linaro.org> + + * src-release.sh: New file. + * src-release: Remove file. + 2014-07-27 Joel Sherrill <joel.sherrill@oarcorp.com> GDB not supported for or1k*-*-rtems* diff --git a/src-release b/src-release deleted file mode 100644 index b28597c..0000000 --- a/src-release +++ /dev/null @@ -1,318 +0,0 @@ -# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# - -# This Makefile contains release scripts for gdb, binutils, and other -# packages which live in src. It used to be part of the top level Makefile, -# but that turned out to be very messy and hard to maintain. - -# This stuff really ought to be cleaned up and turned into something other -# than a Makefile. As it is it's heavily recursive. - -# This is the name of this script (!). Needed due to horrible recursion. -SELF = src-release - -SHELL = /bin/sh - -BZIPPROG = bzip2 -MD5PROG = md5sum - -# (Default to avoid splitting info files by setting the threshold high.) -MAKEINFOFLAGS = --split-size=5000000 - -# pwd command to use. Allow user to override default by setting PWDCMD in -# the environment to account for automounters. The make variable must not -# be called PWDCMD, otherwise the value set here is passed to make -# subprocesses and overrides the setting from the user's environment. -PWD = $${PWDCMD-pwd} - -# -# Support for building net releases - -# Files in devo used in any net release. -DEVO_SUPPORT= README Makefile.in configure configure.ac \ - config.guess config.sub config move-if-change \ - COPYING COPYING.LIB install-sh config-ml.in symlink-tree \ - mkinstalldirs ltmain.sh missing ylwrap \ - libtool.m4 ltsugar.m4 ltversion.m4 ltoptions.m4 \ - Makefile.def Makefile.tpl src-release config.rpath \ - ChangeLog MAINTAINERS README-maintainer-mode \ - lt~obsolete.m4 ltgcc.m4 depcomp mkdep compile \ - COPYING3 COPYING3.LIB - -# Files in devo/etc used in any net release. -ETC_SUPPORT= Makefile.in configure configure.in standards.texi \ - make-stds.texi standards.info* configure.texi configure.info* \ - ChangeLog configbuild.* configdev.* fdl.texi texi2pod.pl gnu-oids.texi - - -# When you use `make setup-dirs' or `make taz' you should always redefine -# this macro. -SUPPORT_FILES = list-of-support-files-for-tool-in-question - -# NOTE: No double quotes in the below. It is used within shell script -# as VER="$(VER)" -VER = ` if grep 'AM_INIT_AUTOMAKE.*BFD_VERSION' $(TOOL)/configure.in >/dev/null 2>&1; then \ - bfd/configure --version | sed -n -e '1s,.* ,,p'; \ - elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \ - sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ - elif test -f $(TOOL)/common/create-version.sh; then \ - $(TOOL)/common/create-version.sh $(TOOL) \ - 'dummy-host' 'dummy-target' \ - VER.tmp; \ - cat VER.tmp | grep 'version\[\]' | sed 's/.*"\([^"]*\)".*/\1/' | sed 's/-cvs$$//'; \ - rm -f VER.tmp; \ - elif test -f $(TOOL)/version.in; then \ - head -1 $(TOOL)/version.in; \ - elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \ - sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \ - else \ - echo VERSION; \ - fi` -PACKAGE = $(TOOL) - -.PHONY: taz -taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f $(SELF) do-proto-toplev \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-md5sum \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-bz2 \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: gdb-tar -gdb-tar: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f $(SELF) do-proto-toplev \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-md5sum \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-djunpack \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: gdb-taz -gdb-taz: gdb-tar $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - $(MAKE) -f $(SELF) gdb-tar \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - $(MAKE) -f $(SELF) do-bz2 \ - TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SUPPORT_FILES)" - -.PHONY: do-proto-toplev -do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex - echo "==> Making $(PACKAGE)-$(VER)/" - # Take out texinfo from a few places. - sed -e '/^all\.normal: /s/\all-texinfo //' \ - -e '/^ install-texinfo /d' \ - <Makefile.in >tmp - mv -f tmp Makefile.in - # - ./configure i686-pc-linux-gnu - $(MAKE) configure-host configure-target \ - ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ - CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)" - # Make links, and run "make diststuff" or "make info" when needed. - rm -rf proto-toplev ; mkdir proto-toplev - set -e ; dirs="$(DEVO_SUPPORT) $(SUPPORT_FILES) $(TOOL)" ; \ - for d in $$dirs ; do \ - if [ -d $$d ]; then \ - if [ ! -f $$d/Makefile ] ; then true ; \ - elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \ - (cd $$d ; $(MAKE) MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \ - diststuff ) || exit 1 ; \ - elif grep '^info:' $$d/Makefile >/dev/null ; then \ - (cd $$d ; $(MAKE) MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \ - info ) || exit 1 ; \ - fi ; \ - if [ -d $$d/proto-$$d.dir ]; then \ - ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \ - else \ - ln -s ../$$d proto-toplev/$$d ; \ - fi ; \ - else \ - if (echo x$$d | grep / >/dev/null); then \ - mkdir -p proto-toplev/`dirname $$d` ; \ - x=`dirname $$d` ; \ - ln -s ../`echo $$x/ | sed -e 's,[^/]*/,../,g'`$$d proto-toplev/$$d ; \ - else \ - ln -s ../$$d proto-toplev/$$d ; \ - fi ; \ - fi ; \ - done - cd etc && $(MAKE) MAKEINFOFLAGS="$(MAKEINFOFLAGS)" info - $(MAKE) distclean - # Kludge for pr gdb/857. intl/Makefile.in lacks a couple - # of files in the distclean rule. Zack W is planning to make - # the gcc version of intl/ the master version and then push - # that version to src soon. See: - # http://sources.redhat.com/ml/binutils/2003-07/msg00032.html - # After the src version of intl/ is upgraded, we can look at - # moving this logic into intl/Makefile.in distclean rule - # if it is still needed. -- chastain 2003-09-12 - rm -f intl/config.cache - rm -f intl/config.status - rm -f intl/config.h - rm -f intl/stamp-h - # - mkdir proto-toplev/etc - (cd proto-toplev/etc; \ - for i in $(ETC_SUPPORT); do \ - ln -s ../../etc/$$i . ; \ - done) - # - # Take out texinfo from configurable dirs - rm proto-toplev/configure.ac - sed -e '/^host_tools=/s/texinfo //' \ - <configure.ac >proto-toplev/configure.ac - # - mkdir proto-toplev/texinfo - ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/ - if test -r texinfo/util/tex3patch ; then \ - mkdir proto-toplev/texinfo/util && \ - ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \ - else true; fi - chmod -R og=u . || chmod og=u `find . -print` - # - # Create .gmo files from .po files. - for f in `find . -name '*.po' -type f -print`; do \ - msgfmt -o `echo $$f | sed -e 's/\.po$$/.gmo/'` $$f ; \ - done - # - -rm -f $(PACKAGE)-$(VER) - ln -s proto-toplev $(PACKAGE)-$(VER) - -CVS_NAMES= \( -name CVS -o -name '.cvsignore' \) - -.PHONY: do-tar -do-tar: - echo "==> Making $(PACKAGE)-$(VER).tar" - -rm -f $(PACKAGE)-$(VER).tar - find $(PACKAGE)-$(VER) -follow $(CVS_NAMES) -prune \ - -o -type f -print \ - | tar cTfh - $(PACKAGE)-$(VER).tar - -.PHONY: do-bz2 -do-bz2: - echo "==> Bzipping $(PACKAGE)-$(VER).tar.bz2" - -rm -f $(PACKAGE)-$(VER).tar.bz2 - $(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar - -.PHONY: do-md5sum -do-md5sum: - echo "==> Adding md5 checksum to top-level directory" - cd proto-toplev && find * -follow $(CVS_NAMES) -prune \ - -o -type f -print \ - | xargs $(MD5PROG) > ../md5.new - -rm -f proto-toplev/md5.sum - mv md5.new proto-toplev/md5.sum - -.PHONY: do-djunpack -do-djunpack: - echo "==> Adding updated djunpack.bat to top-level directory" - echo - 's /gdb-[0-9\.]*/$(PACKAGE)-'"$(VER)"'/' - sed < djunpack.bat > djunpack.new \ - -e 's/gdb-[0-9][0-9\.]*/$(PACKAGE)-'"$(VER)"'/' - -rm -f proto-toplev/djunpack.bat - mv djunpack.new proto-toplev/djunpack.bat - -TEXINFO_SUPPORT= texinfo/texinfo.tex -DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT) - -.PHONY: gas.tar.bz2 -GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep -gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas - $(MAKE) -f $(SELF) taz TOOL=gas \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GAS_SUPPORT_DIRS)" - -# The FSF "binutils" release includes gprof and ld. -.PHONY: binutils.tar.bz2 -BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld elfcpp gold gprof intl setup.com makefile.vms cpu -binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils - $(MAKE) -f $(SELF) taz TOOL=binutils \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)" - -.PHONY: gas+binutils.tar.bz2 -GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof -gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas - $(MAKE) -f $(SELF) taz TOOL=gas \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GASB_SUPPORT_DIRS)" - -GNATS_SUPPORT_DIRS=include libiberty send-pr -gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats - $(MAKE) -f $(SELF) taz TOOL=gnats \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)" - -.PHONY: gdb.tar.bz2 -GDB_SUPPORT_DIRS= bfd include libiberty opcodes readline sim intl libdecnumber cpu -gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f $(SELF) gdb-taz TOOL=gdb \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" -.PHONY: gdb.tar -gdb.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f $(SELF) gdb-tar TOOL=gdb \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" - -# Corresponding to the CVS "sim" module. -.PHONY: sim.tar.bz2 -SIM_SUPPORT_DIRS= bfd opcodes libiberty include intl gdb/version.in makefile.vms -sim.tar.bz2: $(DIST_SUPPORT) $(SIM_SUPPORT_DIRS) sim - $(MAKE) -f $(SELF) taz TOOL=sim \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(SIM_SUPPORT_DIRS)" - -.PHONY: insight.tar.bz2 -INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl libgui -insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f $(SELF) gdb-taz TOOL=gdb PACKAGE=insight \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" -.PHONY: insight.tar -insight.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb - $(MAKE) -f $(SELF) gdb-tar TOOL=gdb PACKAGE=insight \ - MD5PROG="$(MD5PROG)" \ - SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" - -.NOEXPORT: -MAKEOVERRIDES= diff --git a/src-release.sh b/src-release.sh new file mode 100755 index 0000000..bb50895 --- /dev/null +++ b/src-release.sh @@ -0,0 +1,352 @@ +#!/usr/bin/env bash +# Copyright (C) 1990-2014 Free Software Foundation +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# This script creates release packages for gdb, binutils, and other +# packages which live in src. It used to be implemented as the src-release +# Makefile and prior to that was part of the top level Makefile, but that +# turned out to be very messy and hard to maintain. + +set -e + +BZIPPROG=bzip2 +GZIPPROG=gzip +XZPROG=xz +MD5PROG=md5sum +MAKE=make +CC=gcc +CXX=g++ + +# Default to avoid splitting info files by setting the threshold high. +MAKEINFOFLAGS=--split-size=5000000 + +# +# Support for building net releases + +# Files in devo used in any net release. +DEVO_SUPPORT="README Makefile.in configure configure.ac \ + config.guess config.sub config move-if-change \ + COPYING COPYING.LIB install-sh config-ml.in symlink-tree \ + mkinstalldirs ltmain.sh missing ylwrap \ + libtool.m4 ltsugar.m4 ltversion.m4 ltoptions.m4 \ + Makefile.def Makefile.tpl src-release config.rpath \ + ChangeLog MAINTAINERS README-maintainer-mode \ + lt~obsolete.m4 ltgcc.m4 depcomp mkdep compile \ + COPYING3 COPYING3.LIB" + +# Files in devo/etc used in any net release. +ETC_SUPPORT="Makefile.in configure configure.in standards.texi \ + make-stds.texi standards.info* configure.texi configure.info* \ + ChangeLog configbuild.* configdev.* fdl.texi texi2pod.pl gnu-oids.texi" + +# Get the version number of a given tool +getver() +{ + tool=$1 + if grep 'AC_INIT.*BFD_VERSION' $tool/configure.ac >/dev/null 2>&1; then + bfd/configure --version | sed -n -e '1s,.* ,,p' + elif test -f $tool/common/create-version.sh; then + $tool/common/create-version.sh $tool 'dummy-host' 'dummy-target' VER.tmp + cat VER.tmp | grep 'version\[\]' | sed 's/.*"\([^"]*\)".*/\1/' | sed 's/-cvs$//' + rm -f VER.tmp + elif test -f $tool/version.in; then + head -1 $tool/version.in + else + echo VERSION + fi +} + +# Setup build directory for building release tarball +do_proto_toplev() +{ + package=$1 + ver=$2 + tool=$3 + support_files=$4 + echo "==> Making $package-$ver/" + # Take out texinfo from a few places. + sed -e '/^all\.normal: /s/\all-texinfo //' \ + -e '/^ install-texinfo /d' \ + <Makefile.in >tmp + mv -f tmp Makefile.in + # + ./configure i686-pc-linux-gnu + $MAKE configure-host configure-target \ + ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ + CC_FOR_TARGET="$CC" CXX_FOR_TARGET="$CXX" + # Make links, and run "make diststuff" or "make info" when needed. + rm -rf proto-toplev + mkdir proto-toplev + dirs="$DEVO_SUPPORT $support_files $tool" + for d in $dirs ; do + if [ -d $d ]; then + if [ ! -f $d/Makefile ] ; then + true + elif grep '^diststuff:' $d/Makefile >/dev/null ; then + (cd $d ; $MAKE MAKEINFOFLAGS="$MAKEINFOFLAGS" diststuff) \ + || exit 1 + elif grep '^info:' $d/Makefile >/dev/null ; then + (cd $d ; $MAKE MAKEINFOFLAGS="$MAKEINFOFLAGS" info) \ + || exit 1 + fi + if [ -d $d/proto-$d.dir ]; then + ln -s ../$d/proto-$d.dir proto-toplev/$d + else + ln -s ../$d proto-toplev/$d + fi + else + if (echo x$d | grep / >/dev/null); then + mkdir -p proto-toplev/`dirname $d` + x=`dirname $d` + ln -s ../`echo $x/ | sed -e 's,[^/]*/,../,g'`$d proto-toplev/$d + else + ln -s ../$d proto-toplev/$d + fi + fi + done + (cd etc; $MAKE MAKEINFOFLAGS="$MAKEINFOFLAGS" info) + $MAKE distclean + mkdir proto-toplev/etc + (cd proto-toplev/etc; + for i in $ETC_SUPPORT; do + ln -s ../../etc/$i . + done) + # + # Take out texinfo from configurable dirs + rm proto-toplev/configure.ac + sed -e '/^host_tools=/s/texinfo //' \ + <configure.ac >proto-toplev/configure.ac + # + mkdir proto-toplev/texinfo + ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/ + if test -r texinfo/util/tex3patch ; then + mkdir proto-toplev/texinfo/util && \ + ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util + else + true + fi + chmod -R og=u . || chmod og=u `find . -print` + # + # Create .gmo files from .po files. + for f in `find . -name '*.po' -type f -print`; do + msgfmt -o `echo $f | sed -e 's/\.po$/.gmo/'` $f + done + # + rm -f $package-$ver + ln -s proto-toplev $package-$ver +} + +CVS_NAMES='-name CVS -o -name .cvsignore' + +# Add an md5sum to the built tarball +do_md5sum() +{ + echo "==> Adding md5 checksum to top-level directory" + (cd proto-toplev && find * -follow \( $CVS_NAMES \) -prune \ + -o -type f -print \ + | xargs $MD5PROG > ../md5.new) + rm -f proto-toplev/md5.sum + mv md5.new proto-toplev/md5.sum +} + +# Build the release tarball +do_tar() +{ + package=$1 + ver=$2 + echo "==> Making $package-$ver.tar" + rm -f $package-$ver.tar + find $package-$ver -follow \( $CVS_NAMES \) -prune \ + -o -type f -print \ + | tar cTfh - $package-$ver.tar +} + +# Compress the output with bzip2 +do_bz2() +{ + package=$1 + ver=$2 + echo "==> Bzipping $package-$ver.tar.bz2" + rm -f $package-$ver.tar.bz2 + $BZIPPROG -k -v -9 $package-$ver.tar +} + +# Compress the output with gzip +do_gz() +{ + package=$1 + ver=$2 + echo "==> Gzipping $package-$ver.tar.gz" + rm -f $package-$ver.tar.gz + $GZIPPROG -k -v -9 $package-$ver.tar +} + +# Compress the output with xz +do_xz() +{ + package=$1 + ver=$2 + echo "==> Xzipping $package-$ver.tar.xz" + rm -f $package-$ver.tar.xz + $XZPROG -k -v -9 $package-$ver.tar +} + +# Compress the output with all selected compresion methods +do_compress() +{ + package=$1 + ver=$2 + compressors=$3 + for comp in $compressors; do + case $comp in + bz2) + do_bz2 $package $ver;; + gz) + do_gz $package $ver;; + xz) + do_xz $package $ver;; + *) + echo "Unknown compression method: $comp" && exit 1;; + esac + done +} + +# Add djunpack.bat the tarball +do_djunpack() +{ + package=$1 + ver=$2 + echo "==> Adding updated djunpack.bat to top-level directory" + echo - 's /gdb-[0-9\.]*/$package-'"$ver"'/' + sed < djunpack.bat > djunpack.new \ + -e 's/gdb-[0-9][0-9\.]*/$package-'"$ver"'/' + rm -f proto-toplev/djunpack.bat + mv djunpack.new proto-toplev/djunpack.bat +} + +# Create a release package, tar it and compress it +tar_compress() +{ + package=$1 + tool=$2 + support_files=$3 + compressors=$4 + ver=$(getver $tool) + do_proto_toplev $package $ver $tool "$support_files" + do_md5sum + do_tar $package $ver + do_compress $package $ver "$compressors" +} + +# Create a gdb release package, tar it and compress it +gdb_tar_compress() +{ + package=$1 + tool=$2 + support_files=$3 + compressors=$4 + ver=$(getver $tool) + do_proto_toplev $package $ver $tool "$support_files" + do_md5sum + do_djunpack $package $ver + do_tar $package $ver + do_compress $package $ver "$compressors" +} + +# The FSF "binutils" release includes gprof and ld. +BINUTILS_SUPPORT_DIRS="bfd gas include libiberty opcodes ld elfcpp gold gprof intl setup.com makefile.vms cpu" +binutils_release() +{ + compressors=$1 + package=binutils + tool=binutils + tar_compress $package $tool "$BINUTILS_SUPPORT_DIRS" "$compressors" +} + +GAS_SUPPORT_DIRS="bfd include libiberty opcodes intl setup.com makefile.vms" +gas_release() +{ + compressors=$1 + package=gas + tool=gas + tar_compress $package $tool "$GAS_SUPPORT_DIRS" "$compressors" +} + +GDB_SUPPORT_DIRS="bfd include libiberty opcodes readline sim intl libdecnumber cpu" +gdb_release() +{ + compressors=$1 + package=gdb + tool=gdb + gdb_tar_compress $package $tool "$GDB_SUPPORT_DIRS" "$compressors" +} + +# Corresponding to the CVS "sim" module. +SIM_SUPPORT_DIRS="bfd opcodes libiberty include intl gdb/version.in makefile.vms" +sim_release() +{ + compressors=$1 + package=sim + tool=sim + tar_compress $package $tool "$SIM_SUPPORT_DIRS" "$compressors" +} + +usage() +{ + echo "src-release.sh <options> <release>" + echo "options:" + echo " -b: Compress with bzip2" + echo " -g: Compress with gzip" + echo " -x: Compress with xz" + exit 1 +} + +build_release() +{ + release=$1 + compressors=$2 + case $release in + binutils) + binutils_release "$compressors";; + gas) + gas_release "$compressors";; + gdb) + gdb_release "$compressors";; + sim) + sim_release "$compressors";; + *) + echo "Unknown release name: $release" && usage;; + esac +} + +compressors="" + +while getopts ":gbx" opt; do + case $opt in + b) + compressors="$compressors bz2";; + g) + compressors="$compressors gz";; + x) + compressors="$compressors xz";; + \?) + echo "Invalid option: -$OPTARG" && usage;; + esac +done +shift $((OPTIND -1)) +release=$1 + +build_release $release "$compressors" |