[BACK]Return to build.sh CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / external / bsd / acpica / dist / generate / release

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/external/bsd/acpica/dist/generate/release/build.sh between version 1.1.1.1.10.1 and 1.1.1.1.10.2

version 1.1.1.1.10.1, 2013/12/27 18:45:57 version 1.1.1.1.10.2, 2014/08/20 00:03:53
Line 0 
Line 1 
   #!/bin/bash
   
   #******************************************************************************
   #
   # ACPICA package generation script for Cygwin/Windows execution
   #
   # Requires cygwin be installed - http://www.cygwin.com
   # and its /bin be *first* in your path.
   #
   # Windows packages require pkzip25 (free, and is available from numerous
   # sources - search for "pkzip25" or "pkzip25.exe")
   #
   # Execute this script from the acpica/generate/release directory.
   #
   # Constructed packages are placed in the acpica/generate/release/current
   # directory.
   #
   # Line Terminators: Windows source packages leave the CR/LF terminator.
   # Unix packages convert the CR/LF terminators to LF only.
   #
   # Usage:
   #
   #   build <package_type> <target_type>
   #
   #   where:
   #       <package_type> is one of:
   #           source  - Build an ACPICA source package (core and all tools)
   #           test    - Build an ACPICA test suite package
   #           binary  - Build an ACPICA binary tools package
   #
   #       <target_type> is one of:
   #           win     - Generate Windows package (Intel license, CRLF line terminators)
   #           unix    - Generate Unix package (Intel license, LF line terminators)
   #           unix2   - Generate Unix package (dual license, LF line terminators)
   #
   #******************************************************************************
   
   # Configuration
   
   ZIP_UTILITY="/cygdrive/c/windows/pkzip25.exe"
   ACPISRC="libraries/acpisrc.exe"
   DOS2UNIX="dos2unix"
   UNIX2DOS="unix2dos"
   
   # Filenames and paths
   
   TARGET_DIR="generate/release/current"
   TEMP_DIR=acpitemp
   TEST_PREFIX=acpitests
   SOURCE_PREFIX=acpica
   BINARY_PREFIX=iasl
   PACKAGE_SUFFIX=`date +%Y%m%d`
   
   NPARAM=$#
   
   
   #******************************************************************************
   #
   # Miscellaneous utility functions
   #
   #******************************************************************************
   
   usage()
   {
           echo "$1"
           echo
           echo "Low-level build script for ACPICA release packages"
           echo "Usage:"
           echo "    $0 source <win | unix | unix2>"
           echo "    $0 test   <win | unix>"
           echo "    $0 binary <win>"
   }
   
   banner()
   {
           echo
           echo "$1"
           echo
   }
   
   check_zip_utility_exists()
   {
           #
           # Need pkzip (or similar) to build the windows packages
           #
           if [ ! -e "$ZIP_UTILITY" ]; then
                   echo "ZIP_UTILITY ($ZIP_UTILITY) does not exist!"
                   exit 1
           fi
   }
   
   convert_to_unix_line_terminators()
   {
           #
           # Convert all CR/LF pairs to Unix format (LF only)
           #
           cd $TEMP_DIR
           echo "Starting CR/LF to LF (UNIX) full source conversion"
           find . -name "*" | xargs $DOS2UNIX -q
           echo "Completed CR/LF to LF (UNIX) full source conversion"
           cd ..
   }
   
   convert_to_dos_line_terminators()
   {
           #
           # Convert all lone LF terminators to CR/LF
           # Note: Checks shell scripts only (*.sh)
           #
           cd $TEMP_DIR
           echo "Starting LF to CR/LF (DOS) script conversion"
           find . -name "*.sh" | xargs $UNIX2DOS -q
           echo "Completed LF to CR/LF (DOS) script conversion"
           cd ..
   }
   
   insert_dual_license_headers()
   {
           #
           # Need acpisrc utility to insert the headers
           #
           if [ ! -e "$ACPISRC" ]; then
                   echo "acpisrc ($ACPISRC) does not exist!"
                   exit 1
           fi
   
           #
           # Insert the dual license into *.c and *.h files
           #
           echo "Inserting dual-license into all source files"
           $ACPISRC -h -y $TEMP_DIR
   }
   
   build_unix_package()
   {
           convert_to_unix_line_terminators
   
           #
           # Build release package
           #
           rm -r -f $PACKAGE_FILENAME
           mv $TEMP_DIR $PACKAGE_FILENAME
           tar czf $PACKAGE_FILENAME.tar.gz $PACKAGE_FILENAME
   
           #
           # Move the completed package
           #
           mv $PACKAGE_FILENAME.tar.gz $TARGET_DIR
           mv $PACKAGE_FILENAME $TEMP_DIR
   }
   
   build_windows_package()
   {
           convert_to_dos_line_terminators
   
           #
           # Build release package
           #
           cd $TEMP_DIR
           rm -r -f ../$TARGET_DIR/$PACKAGE_FILENAME
           $ZIP_UTILITY -silent -add -max -dir -sort=name ../$TARGET_DIR/$PACKAGE_FILENAME
           cd ..
   }
   
   
   #******************************************************************************
   #
   # generate_source_package
   #
   # Generates the ACPICA source code packages (core and all tools)
   #
   # Arguments:
   #   %1  - Target type (win or unix or unix2)
   #
   #******************************************************************************
   
   generate_source_package ()
   {
           #
           # Parameter evaluation
           #
           if [ $1 == win ]; then
                   PACKAGE_NAME=Windows
                   PACKAGE_TYPE=Win
                   LICENSE=Intel
                   check_zip_utility_exists
   
           elif [ $1 == unix ]; then
                   PACKAGE_NAME="Unix (Intel License)"
                   PACKAGE_TYPE=Unix
                   LICENSE=Intel
   
           elif [ $1 == unix2 ]; then
                   PACKAGE_NAME="Unix (Dual License)"
                   PACKAGE_TYPE=Unix
                   LICENSE=Dual
   
           else
                   usage "Invalid argument ($1)"
                   exit 1
           fi
   
           PACKAGE_FILENAME=$SOURCE_PREFIX-$1-$PACKAGE_SUFFIX
           banner "ACPICA - Generating $PACKAGE_NAME source code package ($PACKAGE_FILENAME)"
   
           #
           # Make directories common to all source packages
           #
           mkdir $TEMP_DIR
           mkdir $TEMP_DIR/libraries
           mkdir $TEMP_DIR/generate
           mkdir $TEMP_DIR/generate/lint
           mkdir $TEMP_DIR/generate/release
           mkdir $TEMP_DIR/generate/unix
           mkdir $TEMP_DIR/generate/unix/acpibin
           mkdir $TEMP_DIR/generate/unix/acpidump
           mkdir $TEMP_DIR/generate/unix/acpiexec
           mkdir $TEMP_DIR/generate/unix/acpihelp
           mkdir $TEMP_DIR/generate/unix/acpinames
           mkdir $TEMP_DIR/generate/unix/acpisrc
           mkdir $TEMP_DIR/generate/unix/acpixtract
           mkdir $TEMP_DIR/generate/unix/iasl
           mkdir $TEMP_DIR/tests
           mkdir $TEMP_DIR/tests/misc
           mkdir $TEMP_DIR/tests/templates
           mkdir -p $TEMP_DIR/source/os_specific/service_layers
   
           #
           # Copy ACPICA subsystem source code
           #
           cp -r documents/changes.txt             $TEMP_DIR/changes.txt
           cp -r source/common                     $TEMP_DIR/source/common
           cp -r source/components                 $TEMP_DIR/source/
           cp -r source/include                    $TEMP_DIR/source/include
           cp -r generate/release/*.sh             $TEMP_DIR/generate/release
   
           #
           # Copy iASL compiler and tools source
           #
           cp -r source/compiler                   $TEMP_DIR/source/compiler
           cp -r source/tools                      $TEMP_DIR/source/tools
   
           #
           # Copy iASL/ACPICA miscellaneous tests (not full test suites)
           #
           cp -r tests/misc/*.asl                  $TEMP_DIR/tests/misc
           cp -r tests/templates/Makefile          $TEMP_DIR/tests/templates
           cp -r tests/templates/templates.sh      $TEMP_DIR/tests/templates
   
           #
           # Copy all OS-specific interfaces
           #
           cp source/os_specific/service_layers/*.c $TEMP_DIR/source/os_specific/service_layers
   
           #
           # Copy generic UNIX makefiles
           #
       cp Makefile                             $TEMP_DIR
           cp generate/unix/readme.txt             $TEMP_DIR/generate/unix/readme.txt
           cp generate/unix/Makefile*              $TEMP_DIR/generate/unix
           cp generate/unix/acpibin/Makefile       $TEMP_DIR/generate/unix/acpibin
           cp generate/unix/acpidump/Makefile      $TEMP_DIR/generate/unix/acpidump
           cp generate/unix/acpiexec/Makefile      $TEMP_DIR/generate/unix/acpiexec
           cp generate/unix/acpihelp/Makefile      $TEMP_DIR/generate/unix/acpihelp
           cp generate/unix/acpinames/Makefile     $TEMP_DIR/generate/unix/acpinames
           cp generate/unix/acpisrc/Makefile       $TEMP_DIR/generate/unix/acpisrc
           cp generate/unix/acpixtract/Makefile    $TEMP_DIR/generate/unix/acpixtract
           cp generate/unix/iasl/Makefile          $TEMP_DIR/generate/unix/iasl
   
           #
           # Copy Lint directory
           #
           cp -r generate/lint $TEMP_DIR/generate
           rm -f $TEMP_DIR/generate/lint/co*
           rm -f $TEMP_DIR/generate/lint/env*
           rm -f $TEMP_DIR/generate/lint/lib*
           rm -f $TEMP_DIR/generate/lint/LintOut.txt
   
           if [ $PACKAGE_TYPE == Unix ]; then
                   #
                   # Unix/Linux-specific activities
                   #
                   # For Unix2 case, insert the dual license header into all source files
                   #
                   if [ $LICENSE == Dual ]; then
                           insert_dual_license_headers
                   fi
   
                   build_unix_package
   
           else
                   #
                   # Windows-specific activities
                   #
   
                   # Copy project files for MS Visual Studio 2008 (VC++ 9.0)
   
                   mkdir $TEMP_DIR/generate/msvc9
                   cp -r generate/msvc9/*.sln $TEMP_DIR/generate/msvc9/
                   cp -r generate/msvc9/*.vcproj $TEMP_DIR/generate/msvc9/
   
                   build_windows_package
           fi
   
           banner "ACPICA - Completed $PACKAGE_NAME source code package ($PACKAGE_FILENAME)"
   }
   
   
   #******************************************************************************
   #
   # generate_test_package
   #
   # Generates the ACPICA test suite packages
   #
   # Arguments:
   #   %1  - Target type (win or unix)
   #
   #******************************************************************************
   
   generate_test_package()
   {
           #
           # Parameter evaluation
           #
           if [ $1 == win ]; then
                   PACKAGE_NAME=Windows
                   PACKAGE_TYPE=Win
                   check_zip_utility_exists
   
           elif [ $1 == unix ]; then
                   PACKAGE_NAME="Unix"
                   PACKAGE_TYPE=Unix
   
           else
                   usage "Invalid argument ($1)"
                   exit 1
           fi
   
           PACKAGE_FILENAME=$TEST_PREFIX-$1-$PACKAGE_SUFFIX
           banner "ACPICA - Generating $PACKAGE_NAME test suite package ($PACKAGE_FILENAME)"
   
           #
           # Copy the ASL Test source
           #
           mkdir $TEMP_DIR
           cp -r tests $TEMP_DIR/tests
   
           #
           # Delete extraneous files
           #
           cd $TEMP_DIR
           find . -name "tmp" | xargs rm -r -f
           find . -name "aml" | xargs rm -r -f
           find . -name "CVS" | xargs rm -r -f
           cd ..
   
           if [ $PACKAGE_TYPE == Unix ]; then
                   #
                   # Unix/Linux-specific activities
                   #
                   build_unix_package
   
           else
                   #
                   # Windows-specific activities
                   #
                   build_windows_package
           fi
   
           banner "ACPICA - Completed $PACKAGE_NAME test suite package ($PACKAGE_FILENAME)"
   }
   
   
   #******************************************************************************
   #
   # generate_binary_package
   #
   # Generates the ACPICA binary package (Currently Windows only)
   #
   # Arguments:
   #   %1  - Target type (win)
   #
   #******************************************************************************
   
   generate_binary_package()
   {
           #
           # Parameter evaluation
           #
           if [ $1 == win ]; then
                   PACKAGE_NAME=Windows
                   PACKAGE_TYPE=Win
                   check_zip_utility_exists
   
           else
                   usage "Invalid argument ($1)"
                   exit 1
           fi
   
           PACKAGE_FILENAME=$BINARY_PREFIX-$1-$PACKAGE_SUFFIX
           banner "ACPICA - Generating $PACKAGE_NAME binary tools package ($PACKAGE_FILENAME)"
   
           #
           # Copy executables and documentation
           #
           mkdir $TEMP_DIR
           cp -r documents/changes.txt     $TEMP_DIR/changes.txt
           cp documents/aslcompiler.pdf    $TEMP_DIR
           cp libraries/acpibin.exe        $TEMP_DIR
           cp libraries/acpidump.exe       $TEMP_DIR
           cp libraries/acpiexec.exe       $TEMP_DIR
           cp libraries/acpihelp.exe       $TEMP_DIR
           cp libraries/acpinames.exe      $TEMP_DIR
           cp libraries/acpisrc.exe        $TEMP_DIR
           cp libraries/acpixtract.exe     $TEMP_DIR
           cp libraries/iasl.exe           $TEMP_DIR
           cp tests/misc/badcode.asl       $TEMP_DIR
   
           build_windows_package
           banner "ACPICA - Completed $PACKAGE_NAME binary tools package ($PACKAGE_FILENAME)"
   }
   
   
   #******************************************************************************
   #
   # main
   #
   # Arguments:
   #       $1 (package_type) is one of:
   #           source  - Build an ACPICA source package (core and all tools)
   #           test    - Build an ACPICA test suite package
   #           binary  - Build an ACPICA binary tools package
   #
   #       $2 (target_type) is one of:
   #           win     - Generate Windows package (Intel license, CRLF line terminators)
   #           unix    - Generate Unix package (Intel license, LF line terminators)
   #           unix2   - Generate Unix package (dual license, LF line terminators)
   #
   #******************************************************************************
   
   set -e          # Abort on any error
   
   if [ $NPARAM -ne 2 ]; then
           usage "Wrong argument count ($NPARAM)"
           exit 1
   fi
   
   #
   # cd from acpica/generate/release to acpica
   #
   cd ../..
   
   #
   # Ensure that the temporary directory is created fresh
   #
   rm -rf $TEMP_DIR
   
   #
   # Parameter evaluation
   #
   if [ $1 == source ]; then
           generate_source_package $2
   
   elif [ $1 == test ]; then
           generate_test_package $2
   
   elif [ $1 == binary ]; then
           generate_binary_package $2
   
   else
           usage "Invalid argument ($1)"
           exit 1
   fi
   
   #
   # Remove temporary directory
   #
   rm -rf $TEMP_DIR

Legend:
Removed from v.1.1.1.1.10.1  
changed lines
  Added in v.1.1.1.1.10.2

CVSweb <webmaster@jp.NetBSD.org>