diff --git a/build-distrib.sh b/devel_tools/make-distrib.sh similarity index 72% rename from build-distrib.sh rename to devel_tools/make-distrib.sh index fd9e5a77b97a837b88a11da69cd06006134d4266..840704c4706bebe4fdb10d36949a037cd605f9be 100755 --- a/build-distrib.sh +++ b/devel_tools/make-distrib.sh @@ -1,4 +1,4 @@ -#! /usr/bin/bash +#!/usr/bin/env bash ########################################################################## # # # This file is part of Frama-C. # @@ -21,21 +21,28 @@ # # ########################################################################## -if [[ $# > 1 ]] ; then - echo "usage: $0 [ configuration_file ]" - exit 1 -elif [[ $# = 1 ]] ; then - source $1 +set -euxo pipefail + +if [ ! -f configure ] ; then + echo "No 'configure' file, you should first run 'autoconf'" + exit 2 fi -VERSION=${VERSION:-$(cat VERSION)} -CODENAME=${CODENAME:-$(cat VERSION_CODENAME)} +EXTERNAL_PLUGINS=$(find src/plugins -type d -name ".git" | sed "s/.git//") + +FRAMAC="frama-c.tar" +git archive HEAD -o $FRAMAC --prefix "frama-c/" -FRAMAC=frama-c-$VERSION-$CODENAME +ACC=$FRAMAC -FPATH=$FRAMAC/ +for plugin in $EXTERNAL_PLUGINS ; do + TAR="$(basename $plugin).tar" + git -C $plugin archive HEAD -o $TAR --prefix "frama-c/$plugin/" + ACC="$ACC $plugin$TAR" +done -git archive --format=tar --prefix $FPATH HEAD > $FRAMAC.tar +tar --concatenate --file=$ACC +tar rf $FRAMAC configure --transform 's,^,frama-c/,' +gzip -9 < $FRAMAC > $FRAMAC.gz -TRANSFO="s,^,$FPATH," -tar rf $FRAMAC.tar configure --transform $TRANSFO +rm -f $ACC