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