configure 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/sh
  2. QEMU_EXECUTABLES="qemu-system-i386 qemu-system-x86_64"
  3. GDB_EXECUTABLES="gdb x86_64-elf-gdb"
  4. event() {
  5. printf "$1... "
  6. }
  7. event "finding qemu"
  8. for item in $QEMU_EXECUTABLES; do
  9. if $item --version > /dev/null 2>&1; then
  10. QEMU="$item"
  11. break
  12. fi
  13. done
  14. if [ "$QEMU" = "" ]; then
  15. echo "failed"
  16. exit 1
  17. fi
  18. echo "$QEMU"
  19. event "finding gdb"
  20. for item in $GDB_EXECUTABLES; do
  21. if $item --version > /dev/null 2>&1; then
  22. GDB="$item"
  23. break
  24. fi
  25. done
  26. if [ "$GDB" = "" ]; then
  27. echo "failed"
  28. exit 1
  29. fi
  30. echo "$GDB"
  31. event "checking os type"
  32. OS=`uname`
  33. case "$OS" in
  34. "Linux")
  35. echo "Linux"
  36. ;;
  37. "Darwin")
  38. echo "macOS"
  39. ;;
  40. *)
  41. echo "unknown"
  42. exit 1
  43. ;;
  44. esac
  45. event "setting hardware acceleration type"
  46. case "$OS" in
  47. "Linux")
  48. echo "kvm"
  49. QEMU_ACCEL='-enable-kvm'
  50. ;;
  51. "Darwin")
  52. if [ "$QEMU" = "qemu-system-x86_64" ]; then
  53. echo "hvf"
  54. QEMU_ACCEL='-accel hvf'
  55. else
  56. echo "tcg"
  57. QEMU_ACCEL='-accel tcg'
  58. fi
  59. ;;
  60. esac
  61. event "checking cross compiling"
  62. if [ "$CROSS_COMPILE" != "" ]; then
  63. echo "yes"
  64. CROSS_COMPILE_FLAG='--toolchain cross-compile.cmake'
  65. else
  66. echo "no"
  67. CROSS_COMPILE_FLAG=
  68. fi
  69. cp Makefile.src Makefile
  70. sed -i '' -e "s/##PLACEHOLDER_1##/$QEMU/" Makefile > /dev/null 2>&1
  71. sed -i '' -e "s/##PLACEHOLDER_2##/$GDB/" Makefile > /dev/null 2>&1
  72. sed -i '' -e "s/##PLACEHOLDER_3##/$QEMU_ACCEL/" Makefile > /dev/null 2>&1
  73. sed -i '' -e "s/##PLACEHOLDER_4##/$CROSS_COMPILE_FLAG/" Makefile > /dev/null 2>&1
  74. exit 0