freebsd-dev/generate/release/release.sh
2012-02-16 00:24:10 +00:00

147 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
#******************************************************************************
#
# ACPICA release generation script for Cygwin/Windows execution
#
# front end for build.sh
#
# Copies any existing packages to the archive directory.
#
# Generates 3 types of package:
# 1) Standard ACPICA source, everything except test suites
# 2) ACPICA test suites (very large)
# 3) Windows binary tools (Windows does not include generation tools)
#
# Note: "unix" generation builds the source with the standard Intel license
# in each file header. "unix2" builds the source with the dual license instead.
# this has been requested by some OS vendors, notably FreeBSD.
#
#******************************************************************************
# Configuration
NPARAM=$#
BUILD_TESTS=1
# Filenames and paths
ARCHIVE_DIR=archive
RELEASE_DIR=current
#******************************************************************************
#
# Miscellaneous utility functions
#
#******************************************************************************
usage()
{
echo "$1"
echo
echo "Master script to create ACPICA release packages"
echo "Usage:"
echo " $0 [notest]"
}
move_all_files_to_archive()
{
cd $RELEASE_DIR
for file in *
do
if [ -d $file ]; then
rm -r -f ../$ARCHIVE_DIR/$file
mv -f $file ../$ARCHIVE_DIR
echo "Moved directory $file to $ARCHIVE_DIR directory"
else
cp $file ../$ARCHIVE_DIR
echo "Moved $file ($(ls -al $file | awk '{print $5}') bytes) to $ARCHIVE_DIR directory"
rm $file
fi
done
cd ..
}
#******************************************************************************
#
# main
#
# Arguments:
# $1 (optional) notest - do not generate the ACPICA test suite packages
#
#******************************************************************************
set -e # Abort on any error
#
# Parameter evaluation
#
if [ $NPARAM -gt 1 ]; then
usage "Wrong argument count ($NPARAM)"
exit 1
elif [ $NPARAM -eq 1 ]; then
if [ $1 == notest ]; then
BUILD_TESTS=0
else
usage "Invalid argument ($1)"
exit 1
fi
fi
#
# Move and preserve any previous versions of the various release packages
#
if [ -e $RELEASE_DIR ]; then
# Create archive directory if necessary
mkdir -p $ARCHIVE_DIR
#
# Save any older versions of the release packages
#
if [ "$(ls -A $RELEASE_DIR)" ]; then
echo "Moving previous packages to $ARCHIVE_DIR directory"
move_all_files_to_archive
echo "Completed move of previous packages to $ARCHIVE_DIR directory"
fi
else
# Just create the release directory
mkdir -p $RELEASE_DIR
fi
# ACPICA source code (core subsystem and all tools/utilities)
bash build.sh source win
bash build.sh source unix
bash build.sh source unix2
# Optionally build the test suite packages (built by default)
if [ $BUILD_TESTS -eq 1 ]; then
# ACPICA test suites (A unix2 build has not been requested by users)
bash build.sh test win
bash build.sh test unix
else
echo "**** Test suites not built because the notest option was used"
fi
# ACPICA binary tools (Windows only)
bash build.sh binary win
echo
echo "ACPICA - Summary of generated packages:"
echo
ls $RELEASE_DIR -g -G -t