1 1.1 christos #!/bin/bash 2 1.1 christos 3 1.1 christos #****************************************************************************** 4 1.1 christos # 5 1.1 christos # ACPICA release generation script for Cygwin/Windows execution 6 1.1 christos # 7 1.1 christos # front end for build.sh 8 1.1 christos # 9 1.1 christos # Copies any existing packages to the archive directory. 10 1.1 christos # 11 1.1 christos # Generates 3 types of package: 12 1.1 christos # 1) Standard ACPICA source, everything except test suites 13 1.1 christos # 2) ACPICA test suites (very large) 14 1.1 christos # 3) Windows binary tools (Windows does not include generation tools) 15 1.1 christos # 16 1.1 christos # Note: "unix" generation builds the source with the standard Intel license 17 1.1 christos # in each file header. "unix2" builds the source with the dual license instead. 18 1.1 christos # this has been requested by some OS vendors, notably FreeBSD. 19 1.1 christos # 20 1.1 christos #****************************************************************************** 21 1.1 christos 22 1.1 christos # Configuration 23 1.1 christos 24 1.1 christos NPARAM=$# 25 1.1 christos BUILD_TESTS=1 26 1.1 christos 27 1.1 christos # Filenames and paths 28 1.1 christos 29 1.1 christos ARCHIVE_DIR=archive 30 1.1 christos RELEASE_DIR=current 31 1.1 christos 32 1.1 christos 33 1.1 christos #****************************************************************************** 34 1.1 christos # 35 1.1 christos # Miscellaneous utility functions 36 1.1 christos # 37 1.1 christos #****************************************************************************** 38 1.1 christos 39 1.1 christos usage() 40 1.1 christos { 41 1.1 christos echo "$1" 42 1.1 christos echo 43 1.1 christos echo "Master script to create ACPICA release packages" 44 1.1 christos echo "Usage:" 45 1.1 christos echo " $0 [notest]" 46 1.1 christos } 47 1.1 christos 48 1.1 christos move_all_files_to_archive() 49 1.1 christos { 50 1.1 christos cd $RELEASE_DIR 51 1.1 christos 52 1.1 christos for file in * 53 1.1 christos do 54 1.1 christos if [ -d $file ]; then 55 1.1 christos rm -r -f ../$ARCHIVE_DIR/$file 56 1.1 christos mv -f $file ../$ARCHIVE_DIR 57 1.1 christos echo "Moved directory $file to $ARCHIVE_DIR directory" 58 1.1 christos else 59 1.1 christos cp $file ../$ARCHIVE_DIR 60 1.1 christos echo "Moved $file ($(ls -al $file | awk '{print $5}') bytes) to $ARCHIVE_DIR directory" 61 1.1 christos rm $file 62 1.1 christos fi 63 1.1 christos done 64 1.1 christos 65 1.1 christos cd .. 66 1.1 christos } 67 1.1 christos 68 1.1 christos 69 1.1 christos #****************************************************************************** 70 1.1 christos # 71 1.1 christos # main 72 1.1 christos # 73 1.1 christos # Arguments: 74 1.1 christos # $1 (optional) notest - do not generate the ACPICA test suite packages 75 1.1 christos # 76 1.1 christos #****************************************************************************** 77 1.1 christos 78 1.1 christos set -e # Abort on any error 79 1.1 christos 80 1.1 christos # 81 1.1 christos # Parameter evaluation 82 1.1 christos # 83 1.1 christos if [ $NPARAM -gt 1 ]; then 84 1.1 christos usage "Wrong argument count ($NPARAM)" 85 1.1 christos exit 1 86 1.1.1.2 christos 87 1.1 christos elif [ $NPARAM -eq 1 ]; then 88 1.1 christos if [ $1 == notest ]; then 89 1.1 christos BUILD_TESTS=0 90 1.1 christos else 91 1.1 christos usage "Invalid argument ($1)" 92 1.1 christos exit 1 93 1.1 christos fi 94 1.1 christos fi 95 1.1 christos 96 1.1 christos # 97 1.1 christos # Move and preserve any previous versions of the various release packages 98 1.1 christos # 99 1.1 christos if [ -e $RELEASE_DIR ]; then 100 1.1 christos 101 1.1 christos # Create archive directory if necessary 102 1.1 christos 103 1.1 christos mkdir -p $ARCHIVE_DIR 104 1.1 christos 105 1.1 christos # 106 1.1 christos # Save any older versions of the release packages 107 1.1 christos # 108 1.1 christos if [ "$(ls -A $RELEASE_DIR)" ]; then 109 1.1 christos echo "Moving previous packages to $ARCHIVE_DIR directory" 110 1.1 christos 111 1.1 christos move_all_files_to_archive 112 1.1 christos echo "Completed move of previous packages to $ARCHIVE_DIR directory" 113 1.1 christos fi 114 1.1 christos 115 1.1 christos else 116 1.1 christos # Just create the release directory 117 1.1 christos mkdir -p $RELEASE_DIR 118 1.1 christos fi 119 1.1 christos 120 1.1 christos # ACPICA source code (core subsystem and all tools/utilities) 121 1.1 christos 122 1.1 christos bash build.sh source win 123 1.1 christos bash build.sh source unix 124 1.1 christos bash build.sh source unix2 125 1.1 christos 126 1.1 christos # Optionally build the test suite packages (built by default) 127 1.1 christos 128 1.1 christos if [ $BUILD_TESTS -eq 1 ]; then 129 1.1 christos 130 1.1 christos # ACPICA test suites (A unix2 build has not been requested by users) 131 1.1 christos 132 1.1 christos bash build.sh test win 133 1.1 christos bash build.sh test unix 134 1.1.1.2 christos 135 1.1 christos else 136 1.1 christos echo "**** Test suites not built because the notest option was used" 137 1.1 christos fi 138 1.1 christos 139 1.1 christos # ACPICA binary tools (Windows only) 140 1.1 christos 141 1.1 christos bash build.sh binary win 142 1.1 christos 143 1.1 christos echo 144 1.1 christos echo "ACPICA - Summary of generated packages:" 145 1.1 christos echo 146 1.1 christos ls $RELEASE_DIR -g -G -t 147