Home | History | Annotate | Line # | Download | only in release
release.sh revision 1.1.1.2
      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