Build_IFWI.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/usr/bin/env bash
  2. ##**********************************************************************
  3. ## Function define
  4. ##**********************************************************************
  5. function Usage ( ) {
  6. echo
  7. echo "Script to build BIOS firmware and stitch the entire IFWI."
  8. echo
  9. echo "Usage: Build_IFWI.sh [options] PlatformType BuildTarget"
  10. echo
  11. echo " /c CleanAll"
  12. echo " /l Generate build log file"
  13. echo " /y Generate build report file"
  14. echo " /m Enable multi-processor build"
  15. echo " /IA32 Set Arch to IA32 (default: X64)"
  16. echo " /X64 Set Arch to X64 (default: X64)"
  17. echo
  18. echo " Platform Types: MNW2"
  19. echo " Build Targets: Debug, Release (default: Debug)"
  20. echo
  21. echo "Examples:"
  22. echo " Build_IFWI.sh MNW2 debug : X64 Debug build for MinnowMax"
  23. echo " Build_IFWI.sh /IA32 MNW2 release : IA32 Release build for MinnowMax"
  24. echo
  25. exit 0
  26. }
  27. set -e
  28. ## Assign initial values
  29. exitCode=0
  30. Build_Flags=
  31. ## Check whether WORKSPACE is set or not
  32. if [[ -z "$WORKSPACE" ]]; then
  33. echo "Please export WORKSPACE before running Build_IFWI.sh"
  34. echo "See the details in Readme.md"
  35. exit 1
  36. fi
  37. ## Create $WORKSPACE/Conf if necessary
  38. if [ ! -d $WORKSPACE/Conf ]; then
  39. mkdir $WORKSPACE/Conf
  40. fi
  41. ## Parse Optional arguments
  42. if [ "$1" == "/?" ]; then
  43. Usage
  44. fi
  45. for (( i=1; i<=$#; ))
  46. do
  47. if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/L" ]; then
  48. Build_Flags="$Build_Flags /l"
  49. shift
  50. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Y" ]; then
  51. Build_Flags="$Build_Flags /y"
  52. shift
  53. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/M" ]; then
  54. Build_Flags="$Build_Flags /m"
  55. shift
  56. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/C" ]; then
  57. Build_Flags="$Build_Flags /c"
  58. shift
  59. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then
  60. Build_Flags="$Build_Flags /x64"
  61. shift
  62. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/IA32" ]; then
  63. Build_Flags="$Build_Flags /IA32"
  64. shift
  65. else
  66. break
  67. fi
  68. done
  69. ## Require 2 input parameters
  70. if [ "$2" == "" ]; then
  71. Usage
  72. fi
  73. ## Assign required arguments
  74. Platform_Type=$1
  75. Build_Target=$2
  76. ## Build BIOS
  77. echo "======================================================================"
  78. echo "Build_IFWI: Calling BIOS build Script..."
  79. . bld_vlv.sh $Build_Flags $Platform_Type $Build_Target
  80. echo
  81. echo Finished Building BIOS.
  82. ## Start Integration process
  83. echo ======================================================================
  84. echo Skip "Build_IFWI: Calling IFWI Stitching Script..."
  85. echo
  86. echo Build_IFWI is finished.
  87. echo The final IFWI file is located in Stitch
  88. echo ======================================================================