| #!/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 |