Build_IFWI.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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
  12. echo " /yL [option] : Enable SPI lock"
  13. echo " Platform Types: MNW2"
  14. echo " Build Targets: Release, Debug"
  15. echo
  16. echo " See Stitch/Stitch_Config.txt for additional stitching settings."
  17. echo
  18. echo
  19. exit 0
  20. }
  21. set -e
  22. ## Assign initial values
  23. exitCode=0
  24. Build_Flags=
  25. Stitch_Flags=
  26. Arch=X64
  27. PLATFORM_PACKAGE=Vlv2TbltDevicePkg
  28. ## Check whether WORKSPACE is set or not
  29. if [[ -z "$WORKSPACE" ]]; then
  30. echo "Please export WORKSPACE before running Build_IFWI.sh"
  31. echo "See the details in Readme.md"
  32. exit 1
  33. fi
  34. ## Create $WORKSPACE/Conf if necessary
  35. if [ ! -d $WORKSPACE/Conf ]; then
  36. mkdir $WORKSPACE/Conf
  37. fi
  38. ## Parse Optional arguments
  39. if [ "$1" == "/?" ]; then
  40. Usage
  41. fi
  42. for (( i=1; i<=$#; ))
  43. do
  44. if [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/Q" ]; then
  45. Build_Flags="$Build_Flags /q"
  46. shift
  47. elif [ "$(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')" == "/C" ]; then
  51. Build_Flags="$Build_Flags /c"
  52. shift
  53. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/ECP" ]; then
  54. Build_Flags="$Build_Flags /ecp"
  55. shift
  56. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/X64" ]; then
  57. Arch=X64
  58. Build_Flags="$Build_Flags /x64"
  59. shift
  60. elif [ "$(echo $1 | tr 'a-z' 'A-Z')" == "/IA32" ]; then
  61. Arch=IA32
  62. Build_Flags="$Build_Flags /IA32"
  63. shift
  64. elif [ "$1" == "/nG" ]; then
  65. Stitch_Flags="$Stitch_Flags /nG"
  66. shift
  67. elif [ "$1" == "/nM" ]; then
  68. Stitch_Flags="$Stitch_Flags /nM"
  69. shift
  70. elif [ "$1" == "/nB" ]; then
  71. Stitch_Flags="$Stitch_Flags /nB"
  72. shift
  73. elif [ "$1" == "/nV" ]; then
  74. Stitch_Flags="$Stitch_Flags /nV"
  75. shift
  76. elif [ "$1" == "/yL" ]; then
  77. Build_Flags="$Build_Flags /yL"
  78. shift
  79. else
  80. break
  81. fi
  82. done
  83. ## Require 2 input parameters
  84. if [ "$2" == "" ]; then
  85. Usage
  86. fi
  87. ## Assign required arguments
  88. Platform_Type=$1
  89. Build_Target=$2
  90. if [ "$3" == "" ]; then
  91. IFWI_Suffix=
  92. else
  93. IFWI_Suffix="/S $3"
  94. fi
  95. ## Build BIOS
  96. echo "======================================================================"
  97. echo "Build_IFWI: Calling BIOS build Script..."
  98. . bld_vlv.sh $Build_Flags $Platform_Type $Build_Target
  99. echo
  100. echo Finished Building BIOS.
  101. ## Start Integration process
  102. echo ======================================================================
  103. echo Skip "Build_IFWI: Calling IFWI Stitching Script..."
  104. echo
  105. echo Build_IFWI is finished.
  106. echo The final IFWI file is located in Stitch
  107. echo ======================================================================