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