10d02842fSSascha Wildner#!/bin/bash
20d02842fSSascha Wildner
30d02842fSSascha Wildner#******************************************************************************
40d02842fSSascha Wildner#
50d02842fSSascha Wildner# ACPICA package generation script for Cygwin/Windows execution
60d02842fSSascha Wildner#
70d02842fSSascha Wildner# Requires cygwin be installed - http://www.cygwin.com
80d02842fSSascha Wildner# and its /bin be *first* in your path.
90d02842fSSascha Wildner#
100d02842fSSascha Wildner# Windows packages require pkzip25 (free, and is available from numerous
110d02842fSSascha Wildner# sources - search for "pkzip25" or "pkzip25.exe")
120d02842fSSascha Wildner#
130d02842fSSascha Wildner# Execute this script from the acpica/generate/release directory.
140d02842fSSascha Wildner#
150d02842fSSascha Wildner# Constructed packages are placed in the acpica/generate/release/current
160d02842fSSascha Wildner# directory.
170d02842fSSascha Wildner#
180d02842fSSascha Wildner# Line Terminators: Windows source packages leave the CR/LF terminator.
190d02842fSSascha Wildner# Unix packages convert the CR/LF terminators to LF only.
200d02842fSSascha Wildner#
210d02842fSSascha Wildner# Usage:
220d02842fSSascha Wildner#
230d02842fSSascha Wildner#   build <package_type> <target_type>
240d02842fSSascha Wildner#
250d02842fSSascha Wildner#   where:
260d02842fSSascha Wildner#       <package_type> is one of:
270d02842fSSascha Wildner#           source  - Build an ACPICA source package (core and all tools)
280d02842fSSascha Wildner#           test    - Build an ACPICA test suite package
290d02842fSSascha Wildner#           binary  - Build an ACPICA binary tools package
300d02842fSSascha Wildner#
310d02842fSSascha Wildner#       <target_type> is one of:
320d02842fSSascha Wildner#           win     - Generate Windows package (Intel license, CRLF line terminators)
330d02842fSSascha Wildner#           unix    - Generate Unix package (Intel license, LF line terminators)
340d02842fSSascha Wildner#           unix2   - Generate Unix package (dual license, LF line terminators)
350d02842fSSascha Wildner#
360d02842fSSascha Wildner#******************************************************************************
370d02842fSSascha Wildner
380d02842fSSascha Wildner# Configuration
390d02842fSSascha Wildner
400d02842fSSascha WildnerZIP_UTILITY="/cygdrive/c/windows/pkzip25.exe"
410d02842fSSascha WildnerACPISRC="libraries/acpisrc.exe"
420d02842fSSascha WildnerDOS2UNIX="dos2unix"
430d02842fSSascha WildnerUNIX2DOS="unix2dos"
440d02842fSSascha Wildner
450d02842fSSascha Wildner# Filenames and paths
460d02842fSSascha Wildner
470d02842fSSascha WildnerTARGET_DIR="generate/release/current"
480d02842fSSascha WildnerTEMP_DIR=acpitemp
490d02842fSSascha WildnerTEST_PREFIX=acpitests
500d02842fSSascha WildnerSOURCE_PREFIX=acpica
510d02842fSSascha WildnerBINARY_PREFIX=iasl
520d02842fSSascha WildnerPACKAGE_SUFFIX=`date +%Y%m%d`
530d02842fSSascha Wildner
540d02842fSSascha WildnerNPARAM=$#
550d02842fSSascha Wildner
560d02842fSSascha Wildner
570d02842fSSascha Wildner#******************************************************************************
580d02842fSSascha Wildner#
590d02842fSSascha Wildner# Miscellaneous utility functions
600d02842fSSascha Wildner#
610d02842fSSascha Wildner#******************************************************************************
620d02842fSSascha Wildner
630d02842fSSascha Wildnerusage()
640d02842fSSascha Wildner{
650d02842fSSascha Wildner	echo "$1"
660d02842fSSascha Wildner	echo
670d02842fSSascha Wildner	echo "Low-level build script for ACPICA release packages"
680d02842fSSascha Wildner	echo "Usage:"
690d02842fSSascha Wildner	echo "    $0 source <win | unix | unix2>"
700d02842fSSascha Wildner	echo "    $0 test   <win | unix>"
710d02842fSSascha Wildner	echo "    $0 binary <win>"
720d02842fSSascha Wildner}
730d02842fSSascha Wildner
740d02842fSSascha Wildnerbanner()
750d02842fSSascha Wildner{
760d02842fSSascha Wildner	echo
770d02842fSSascha Wildner	echo "$1"
780d02842fSSascha Wildner	echo
790d02842fSSascha Wildner}
800d02842fSSascha Wildner
810d02842fSSascha Wildnercheck_zip_utility_exists()
820d02842fSSascha Wildner{
830d02842fSSascha Wildner	#
840d02842fSSascha Wildner	# Need pkzip (or similar) to build the windows packages
850d02842fSSascha Wildner	#
860d02842fSSascha Wildner	if [ ! -e "$ZIP_UTILITY" ]; then
870d02842fSSascha Wildner		echo "ZIP_UTILITY ($ZIP_UTILITY) does not exist!"
880d02842fSSascha Wildner		exit 1
890d02842fSSascha Wildner	fi
900d02842fSSascha Wildner}
910d02842fSSascha Wildner
920d02842fSSascha Wildnerconvert_to_unix_line_terminators()
930d02842fSSascha Wildner{
940d02842fSSascha Wildner	#
950d02842fSSascha Wildner	# Convert all CR/LF pairs to Unix format (LF only)
960d02842fSSascha Wildner	#
970d02842fSSascha Wildner	cd $TEMP_DIR
980d02842fSSascha Wildner	echo "Starting CR/LF to LF (UNIX) full source conversion"
990d02842fSSascha Wildner	find . -name "*" | xargs $DOS2UNIX -q
1000d02842fSSascha Wildner	echo "Completed CR/LF to LF (UNIX) full source conversion"
1010d02842fSSascha Wildner	cd ..
1020d02842fSSascha Wildner}
1030d02842fSSascha Wildner
1040d02842fSSascha Wildnerconvert_to_dos_line_terminators()
1050d02842fSSascha Wildner{
1060d02842fSSascha Wildner	#
1070d02842fSSascha Wildner	# Convert all lone LF terminators to CR/LF
1080d02842fSSascha Wildner	# Note: Checks shell scripts only (*.sh)
1090d02842fSSascha Wildner	#
1100d02842fSSascha Wildner	cd $TEMP_DIR
1110d02842fSSascha Wildner	echo "Starting LF to CR/LF (DOS) script conversion"
1120d02842fSSascha Wildner	find . -name "*.sh" | xargs $UNIX2DOS -q
1130d02842fSSascha Wildner	echo "Completed LF to CR/LF (DOS) script conversion"
1140d02842fSSascha Wildner	cd ..
1150d02842fSSascha Wildner}
1160d02842fSSascha Wildner
1170d02842fSSascha Wildnerinsert_dual_license_headers()
1180d02842fSSascha Wildner{
1190d02842fSSascha Wildner	#
1200d02842fSSascha Wildner	# Need acpisrc utility to insert the headers
1210d02842fSSascha Wildner	#
1220d02842fSSascha Wildner	if [ ! -e "$ACPISRC" ]; then
1230d02842fSSascha Wildner		echo "acpisrc ($ACPISRC) does not exist!"
1240d02842fSSascha Wildner		exit 1
1250d02842fSSascha Wildner	fi
1260d02842fSSascha Wildner
1270d02842fSSascha Wildner	#
1280d02842fSSascha Wildner	# Insert the dual license into *.c and *.h files
1290d02842fSSascha Wildner	#
1300d02842fSSascha Wildner	echo "Inserting dual-license into all source files"
1310d02842fSSascha Wildner	$ACPISRC -h -y $TEMP_DIR
1320d02842fSSascha Wildner}
1330d02842fSSascha Wildner
1340d02842fSSascha Wildnerbuild_unix_package()
1350d02842fSSascha Wildner{
1360d02842fSSascha Wildner	convert_to_unix_line_terminators
1370d02842fSSascha Wildner
1380d02842fSSascha Wildner	#
1390d02842fSSascha Wildner	# Build release package
1400d02842fSSascha Wildner	#
1410d02842fSSascha Wildner	rm -r -f $PACKAGE_FILENAME
1420d02842fSSascha Wildner	mv $TEMP_DIR $PACKAGE_FILENAME
1430d02842fSSascha Wildner	tar czf $PACKAGE_FILENAME.tar.gz $PACKAGE_FILENAME
1440d02842fSSascha Wildner
1450d02842fSSascha Wildner	#
1460d02842fSSascha Wildner	# Move the completed package
1470d02842fSSascha Wildner	#
1480d02842fSSascha Wildner	mv $PACKAGE_FILENAME.tar.gz $TARGET_DIR
1490d02842fSSascha Wildner	mv $PACKAGE_FILENAME $TEMP_DIR
1500d02842fSSascha Wildner}
1510d02842fSSascha Wildner
1520d02842fSSascha Wildnerbuild_windows_package()
1530d02842fSSascha Wildner{
1540d02842fSSascha Wildner	convert_to_dos_line_terminators
1550d02842fSSascha Wildner
1560d02842fSSascha Wildner	#
1570d02842fSSascha Wildner	# Build release package
1580d02842fSSascha Wildner	#
1590d02842fSSascha Wildner	cd $TEMP_DIR
1600d02842fSSascha Wildner	rm -r -f ../$TARGET_DIR/$PACKAGE_FILENAME
1610d02842fSSascha Wildner	$ZIP_UTILITY -silent -add -max -dir -sort=name ../$TARGET_DIR/$PACKAGE_FILENAME
1620d02842fSSascha Wildner	cd ..
1630d02842fSSascha Wildner}
1640d02842fSSascha Wildner
1650d02842fSSascha Wildner
1660d02842fSSascha Wildner#******************************************************************************
1670d02842fSSascha Wildner#
1680d02842fSSascha Wildner# generate_source_package
1690d02842fSSascha Wildner#
1700d02842fSSascha Wildner# Generates the ACPICA source code packages (core and all tools)
1710d02842fSSascha Wildner#
1720d02842fSSascha Wildner# Arguments:
1730d02842fSSascha Wildner#   %1  - Target type (win or unix or unix2)
1740d02842fSSascha Wildner#
1750d02842fSSascha Wildner#******************************************************************************
1760d02842fSSascha Wildner
1770d02842fSSascha Wildnergenerate_source_package ()
1780d02842fSSascha Wildner{
1790d02842fSSascha Wildner	#
1800d02842fSSascha Wildner	# Parameter evaluation
1810d02842fSSascha Wildner	#
1820d02842fSSascha Wildner	if [ $1 == win ]; then
1830d02842fSSascha Wildner		PACKAGE_NAME=Windows
1840d02842fSSascha Wildner		PACKAGE_TYPE=Win
1850d02842fSSascha Wildner		LICENSE=Intel
1860d02842fSSascha Wildner		check_zip_utility_exists
1870d02842fSSascha Wildner
1880d02842fSSascha Wildner	elif [ $1 == unix ]; then
1890d02842fSSascha Wildner		PACKAGE_NAME="Unix (Intel License)"
1900d02842fSSascha Wildner		PACKAGE_TYPE=Unix
1910d02842fSSascha Wildner		LICENSE=Intel
1920d02842fSSascha Wildner
1930d02842fSSascha Wildner	elif [ $1 == unix2 ]; then
1940d02842fSSascha Wildner		PACKAGE_NAME="Unix (Dual License)"
1950d02842fSSascha Wildner		PACKAGE_TYPE=Unix
1960d02842fSSascha Wildner		LICENSE=Dual
1970d02842fSSascha Wildner
1980d02842fSSascha Wildner	else
1990d02842fSSascha Wildner		usage "Invalid argument ($1)"
2000d02842fSSascha Wildner		exit 1
2010d02842fSSascha Wildner	fi
2020d02842fSSascha Wildner
2030d02842fSSascha Wildner	PACKAGE_FILENAME=$SOURCE_PREFIX-$1-$PACKAGE_SUFFIX
2040d02842fSSascha Wildner	banner "ACPICA - Generating $PACKAGE_NAME source code package ($PACKAGE_FILENAME)"
2050d02842fSSascha Wildner
2060d02842fSSascha Wildner	#
2070d02842fSSascha Wildner	# Make directories common to all source packages
2080d02842fSSascha Wildner	#
2090d02842fSSascha Wildner	mkdir $TEMP_DIR
2100d02842fSSascha Wildner	mkdir $TEMP_DIR/libraries
2110d02842fSSascha Wildner	mkdir $TEMP_DIR/generate
2120d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/lint
2130d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/release
2140d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix
2150d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpibin
2160d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpidump
21720294b7eSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpiexamples
2180d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpiexec
2190d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpihelp
2200d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpisrc
2210d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/acpixtract
2220d02842fSSascha Wildner	mkdir $TEMP_DIR/generate/unix/iasl
2230d02842fSSascha Wildner	mkdir $TEMP_DIR/tests
2240d02842fSSascha Wildner	mkdir $TEMP_DIR/tests/misc
2250d02842fSSascha Wildner	mkdir $TEMP_DIR/tests/templates
2260d02842fSSascha Wildner	mkdir -p $TEMP_DIR/source/os_specific/service_layers
2270d02842fSSascha Wildner
2280d02842fSSascha Wildner	#
2290d02842fSSascha Wildner	# Copy ACPICA subsystem source code
2300d02842fSSascha Wildner	#
2310d02842fSSascha Wildner	cp -r documents/changes.txt             $TEMP_DIR/changes.txt
2320d02842fSSascha Wildner	cp -r source/common                     $TEMP_DIR/source/common
2330d02842fSSascha Wildner	cp -r source/components                 $TEMP_DIR/source/
2340d02842fSSascha Wildner	cp -r source/include                    $TEMP_DIR/source/include
2350d02842fSSascha Wildner	cp -r generate/release/*.sh             $TEMP_DIR/generate/release
2360d02842fSSascha Wildner
2370d02842fSSascha Wildner	#
2380d02842fSSascha Wildner	# Copy iASL compiler and tools source
2390d02842fSSascha Wildner	#
2400d02842fSSascha Wildner	cp -r source/compiler                   $TEMP_DIR/source/compiler
2410d02842fSSascha Wildner	cp -r source/tools                      $TEMP_DIR/source/tools
2420d02842fSSascha Wildner
2430d02842fSSascha Wildner	#
2440d02842fSSascha Wildner	# Copy iASL/ACPICA miscellaneous tests (not full test suites)
2450d02842fSSascha Wildner	#
2460d02842fSSascha Wildner	cp -r tests/misc/*.asl                  $TEMP_DIR/tests/misc
2470d02842fSSascha Wildner	cp -r tests/templates/Makefile          $TEMP_DIR/tests/templates
2480d02842fSSascha Wildner	cp -r tests/templates/templates.sh      $TEMP_DIR/tests/templates
2490d02842fSSascha Wildner
2500d02842fSSascha Wildner	#
2510d02842fSSascha Wildner	# Copy all OS-specific interfaces
2520d02842fSSascha Wildner	#
2530d02842fSSascha Wildner	cp source/os_specific/service_layers/*.c $TEMP_DIR/source/os_specific/service_layers
2540d02842fSSascha Wildner
2550d02842fSSascha Wildner	#
2560d02842fSSascha Wildner	# Copy generic UNIX makefiles
2570d02842fSSascha Wildner	#
2580d02842fSSascha Wildner    cp Makefile                             $TEMP_DIR
2590d02842fSSascha Wildner	cp generate/unix/readme.txt             $TEMP_DIR/generate/unix/readme.txt
2600d02842fSSascha Wildner	cp generate/unix/Makefile*              $TEMP_DIR/generate/unix
2610d02842fSSascha Wildner	cp generate/unix/acpibin/Makefile       $TEMP_DIR/generate/unix/acpibin
2620d02842fSSascha Wildner	cp generate/unix/acpidump/Makefile      $TEMP_DIR/generate/unix/acpidump
26320294b7eSSascha Wildner	cp generate/unix/acpiexamples/Makefile  $TEMP_DIR/generate/unix/acpiexamples
2640d02842fSSascha Wildner	cp generate/unix/acpiexec/Makefile      $TEMP_DIR/generate/unix/acpiexec
2650d02842fSSascha Wildner	cp generate/unix/acpihelp/Makefile      $TEMP_DIR/generate/unix/acpihelp
2660d02842fSSascha Wildner	cp generate/unix/acpisrc/Makefile       $TEMP_DIR/generate/unix/acpisrc
2670d02842fSSascha Wildner	cp generate/unix/acpixtract/Makefile    $TEMP_DIR/generate/unix/acpixtract
2680d02842fSSascha Wildner	cp generate/unix/iasl/Makefile          $TEMP_DIR/generate/unix/iasl
2690d02842fSSascha Wildner
2700d02842fSSascha Wildner	#
2710d02842fSSascha Wildner	# Copy Lint directory
2720d02842fSSascha Wildner	#
2730d02842fSSascha Wildner	cp -r generate/lint $TEMP_DIR/generate
2740d02842fSSascha Wildner	rm -f $TEMP_DIR/generate/lint/co*
2750d02842fSSascha Wildner	rm -f $TEMP_DIR/generate/lint/env*
2760d02842fSSascha Wildner	rm -f $TEMP_DIR/generate/lint/lib*
2770d02842fSSascha Wildner	rm -f $TEMP_DIR/generate/lint/LintOut.txt
2780d02842fSSascha Wildner
2790d02842fSSascha Wildner	if [ $PACKAGE_TYPE == Unix ]; then
2800d02842fSSascha Wildner		#
2810d02842fSSascha Wildner		# Unix/Linux-specific activities
2820d02842fSSascha Wildner		#
2830d02842fSSascha Wildner		# For Unix2 case, insert the dual license header into all source files
2840d02842fSSascha Wildner		#
2850d02842fSSascha Wildner		if [ $LICENSE == Dual ]; then
2860d02842fSSascha Wildner			insert_dual_license_headers
2870d02842fSSascha Wildner		fi
2880d02842fSSascha Wildner
2890d02842fSSascha Wildner		build_unix_package
2900d02842fSSascha Wildner
2910d02842fSSascha Wildner	else
2920d02842fSSascha Wildner		#
2930d02842fSSascha Wildner		# Windows-specific activities
2940d02842fSSascha Wildner		#
2950d02842fSSascha Wildner
296*d0dff17aSSascha Wildner		# Copy project files for MS Visual Studio 2017
2970d02842fSSascha Wildner
298*d0dff17aSSascha Wildner		mkdir $TEMP_DIR/generate/msvc2017
299*d0dff17aSSascha Wildner		cp -r generate/msvc2017/*.sln $TEMP_DIR/generate/msvc2017/
300*d0dff17aSSascha Wildner		cp -r generate/msvc2017/*.dsp $TEMP_DIR/generate/msvc2017/
301*d0dff17aSSascha Wildner		cp -r generate/msvc2017/*.dsw $TEMP_DIR/generate/msvc2017/
302*d0dff17aSSascha Wildner		cp -r generate/msvc2017/*.vcxproj $TEMP_DIR/generate/msvc2017/
3030d02842fSSascha Wildner
3040d02842fSSascha Wildner		build_windows_package
3050d02842fSSascha Wildner	fi
3060d02842fSSascha Wildner
3070d02842fSSascha Wildner	banner "ACPICA - Completed $PACKAGE_NAME source code package ($PACKAGE_FILENAME)"
3080d02842fSSascha Wildner}
3090d02842fSSascha Wildner
3100d02842fSSascha Wildner
3110d02842fSSascha Wildner#******************************************************************************
3120d02842fSSascha Wildner#
3130d02842fSSascha Wildner# generate_test_package
3140d02842fSSascha Wildner#
3150d02842fSSascha Wildner# Generates the ACPICA test suite packages
3160d02842fSSascha Wildner#
3170d02842fSSascha Wildner# Arguments:
3180d02842fSSascha Wildner#   %1  - Target type (win or unix)
3190d02842fSSascha Wildner#
3200d02842fSSascha Wildner#******************************************************************************
3210d02842fSSascha Wildner
3220d02842fSSascha Wildnergenerate_test_package()
3230d02842fSSascha Wildner{
3240d02842fSSascha Wildner	#
3250d02842fSSascha Wildner	# Parameter evaluation
3260d02842fSSascha Wildner	#
3270d02842fSSascha Wildner	if [ $1 == win ]; then
3280d02842fSSascha Wildner		PACKAGE_NAME=Windows
3290d02842fSSascha Wildner		PACKAGE_TYPE=Win
3300d02842fSSascha Wildner		check_zip_utility_exists
3310d02842fSSascha Wildner
3320d02842fSSascha Wildner	elif [ $1 == unix ]; then
3330d02842fSSascha Wildner		PACKAGE_NAME="Unix"
3340d02842fSSascha Wildner		PACKAGE_TYPE=Unix
3350d02842fSSascha Wildner
3360d02842fSSascha Wildner	else
3370d02842fSSascha Wildner		usage "Invalid argument ($1)"
3380d02842fSSascha Wildner		exit 1
3390d02842fSSascha Wildner	fi
3400d02842fSSascha Wildner
3410d02842fSSascha Wildner	PACKAGE_FILENAME=$TEST_PREFIX-$1-$PACKAGE_SUFFIX
3420d02842fSSascha Wildner	banner "ACPICA - Generating $PACKAGE_NAME test suite package ($PACKAGE_FILENAME)"
3430d02842fSSascha Wildner
3440d02842fSSascha Wildner	#
3450d02842fSSascha Wildner	# Copy the ASL Test source
3460d02842fSSascha Wildner	#
3470d02842fSSascha Wildner	mkdir $TEMP_DIR
3480d02842fSSascha Wildner	cp -r tests $TEMP_DIR/tests
3490d02842fSSascha Wildner
3500d02842fSSascha Wildner	#
3510d02842fSSascha Wildner	# Delete extraneous files
3520d02842fSSascha Wildner	#
3530d02842fSSascha Wildner	cd $TEMP_DIR
3540d02842fSSascha Wildner	find . -name "tmp" | xargs rm -r -f
3550d02842fSSascha Wildner	find . -name "aml" | xargs rm -r -f
3560d02842fSSascha Wildner	find . -name "CVS" | xargs rm -r -f
3570d02842fSSascha Wildner	cd ..
3580d02842fSSascha Wildner
3590d02842fSSascha Wildner	if [ $PACKAGE_TYPE == Unix ]; then
3600d02842fSSascha Wildner		#
3610d02842fSSascha Wildner		# Unix/Linux-specific activities
3620d02842fSSascha Wildner		#
3630d02842fSSascha Wildner		build_unix_package
3640d02842fSSascha Wildner
3650d02842fSSascha Wildner	else
3660d02842fSSascha Wildner		#
3670d02842fSSascha Wildner		# Windows-specific activities
3680d02842fSSascha Wildner		#
3690d02842fSSascha Wildner		build_windows_package
3700d02842fSSascha Wildner	fi
3710d02842fSSascha Wildner
3720d02842fSSascha Wildner	banner "ACPICA - Completed $PACKAGE_NAME test suite package ($PACKAGE_FILENAME)"
3730d02842fSSascha Wildner}
3740d02842fSSascha Wildner
3750d02842fSSascha Wildner
3760d02842fSSascha Wildner#******************************************************************************
3770d02842fSSascha Wildner#
3780d02842fSSascha Wildner# generate_binary_package
3790d02842fSSascha Wildner#
3800d02842fSSascha Wildner# Generates the ACPICA binary package (Currently Windows only)
3810d02842fSSascha Wildner#
3820d02842fSSascha Wildner# Arguments:
3830d02842fSSascha Wildner#   %1  - Target type (win)
3840d02842fSSascha Wildner#
3850d02842fSSascha Wildner#******************************************************************************
3860d02842fSSascha Wildner
3870d02842fSSascha Wildnergenerate_binary_package()
3880d02842fSSascha Wildner{
3890d02842fSSascha Wildner	#
3900d02842fSSascha Wildner	# Parameter evaluation
3910d02842fSSascha Wildner	#
3920d02842fSSascha Wildner	if [ $1 == win ]; then
3930d02842fSSascha Wildner		PACKAGE_NAME=Windows
3940d02842fSSascha Wildner		PACKAGE_TYPE=Win
3950d02842fSSascha Wildner		check_zip_utility_exists
3960d02842fSSascha Wildner
3970d02842fSSascha Wildner	else
3980d02842fSSascha Wildner		usage "Invalid argument ($1)"
3990d02842fSSascha Wildner		exit 1
4000d02842fSSascha Wildner	fi
4010d02842fSSascha Wildner
4020d02842fSSascha Wildner	PACKAGE_FILENAME=$BINARY_PREFIX-$1-$PACKAGE_SUFFIX
4030d02842fSSascha Wildner	banner "ACPICA - Generating $PACKAGE_NAME binary tools package ($PACKAGE_FILENAME)"
4040d02842fSSascha Wildner
4050d02842fSSascha Wildner	#
4060d02842fSSascha Wildner	# Copy executables and documentation
4070d02842fSSascha Wildner	#
4080d02842fSSascha Wildner	mkdir $TEMP_DIR
4090d02842fSSascha Wildner	cp -r documents/changes.txt     $TEMP_DIR/changes.txt
4100d02842fSSascha Wildner	cp libraries/acpibin.exe        $TEMP_DIR
4110d02842fSSascha Wildner	cp libraries/acpidump.exe       $TEMP_DIR
4120d02842fSSascha Wildner	cp libraries/acpiexec.exe       $TEMP_DIR
4130d02842fSSascha Wildner	cp libraries/acpihelp.exe       $TEMP_DIR
4140d02842fSSascha Wildner	cp libraries/acpisrc.exe        $TEMP_DIR
4150d02842fSSascha Wildner	cp libraries/acpixtract.exe     $TEMP_DIR
4160d02842fSSascha Wildner	cp libraries/iasl.exe           $TEMP_DIR
4170d02842fSSascha Wildner	cp tests/misc/badcode.asl       $TEMP_DIR
4180d02842fSSascha Wildner
4190d02842fSSascha Wildner	build_windows_package
4200d02842fSSascha Wildner	banner "ACPICA - Completed $PACKAGE_NAME binary tools package ($PACKAGE_FILENAME)"
4210d02842fSSascha Wildner}
4220d02842fSSascha Wildner
4230d02842fSSascha Wildner
4240d02842fSSascha Wildner#******************************************************************************
4250d02842fSSascha Wildner#
4260d02842fSSascha Wildner# main
4270d02842fSSascha Wildner#
4280d02842fSSascha Wildner# Arguments:
4290d02842fSSascha Wildner#       $1 (package_type) is one of:
4300d02842fSSascha Wildner#           source  - Build an ACPICA source package (core and all tools)
4310d02842fSSascha Wildner#           test    - Build an ACPICA test suite package
4320d02842fSSascha Wildner#           binary  - Build an ACPICA binary tools package
4330d02842fSSascha Wildner#
4340d02842fSSascha Wildner#       $2 (target_type) is one of:
4350d02842fSSascha Wildner#           win     - Generate Windows package (Intel license, CRLF line terminators)
4360d02842fSSascha Wildner#           unix    - Generate Unix package (Intel license, LF line terminators)
4370d02842fSSascha Wildner#           unix2   - Generate Unix package (dual license, LF line terminators)
4380d02842fSSascha Wildner#
4390d02842fSSascha Wildner#******************************************************************************
4400d02842fSSascha Wildner
4410d02842fSSascha Wildnerset -e		# Abort on any error
4420d02842fSSascha Wildner
4430d02842fSSascha Wildnerif [ $NPARAM -ne 2 ]; then
4440d02842fSSascha Wildner	usage "Wrong argument count ($NPARAM)"
4450d02842fSSascha Wildner	exit 1
4460d02842fSSascha Wildnerfi
4470d02842fSSascha Wildner
4480d02842fSSascha Wildner#
4490d02842fSSascha Wildner# cd from acpica/generate/release to acpica
4500d02842fSSascha Wildner#
4510d02842fSSascha Wildnercd ../..
4520d02842fSSascha Wildner
4530d02842fSSascha Wildner#
4540d02842fSSascha Wildner# Ensure that the temporary directory is created fresh
4550d02842fSSascha Wildner#
4560d02842fSSascha Wildnerrm -rf $TEMP_DIR
4570d02842fSSascha Wildner
4580d02842fSSascha Wildner#
4590d02842fSSascha Wildner# Parameter evaluation
4600d02842fSSascha Wildner#
4610d02842fSSascha Wildnerif [ $1 == source ]; then
4620d02842fSSascha Wildner	generate_source_package $2
4630d02842fSSascha Wildner
4640d02842fSSascha Wildnerelif [ $1 == test ]; then
4650d02842fSSascha Wildner	generate_test_package $2
4660d02842fSSascha Wildner
4670d02842fSSascha Wildnerelif [ $1 == binary ]; then
4680d02842fSSascha Wildner	generate_binary_package $2
4690d02842fSSascha Wildner
4700d02842fSSascha Wildnerelse
4710d02842fSSascha Wildner	usage "Invalid argument ($1)"
4720d02842fSSascha Wildner	exit 1
4730d02842fSSascha Wildnerfi
4740d02842fSSascha Wildner
4750d02842fSSascha Wildner#
4760d02842fSSascha Wildner# Remove temporary directory
4770d02842fSSascha Wildner#
4780d02842fSSascha Wildnerrm -rf $TEMP_DIR
479