configure 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/sh
  2. DEFAULT_ARCH="x86_64"
  3. event() {
  4. printf "$1... "
  5. }
  6. if [ "$QEMU" = "" ]; then
  7. event "checking default qemu"
  8. QEMU="qemu-system-$DEFAULT_ARCH"
  9. if $QEMU --version > /dev/null 2>&1; then
  10. QEMU="qemu-system-\$(ARCH)"
  11. break
  12. fi
  13. else
  14. event "checking given qemu"
  15. for item in $QEMU; do
  16. if $item --version > /dev/null 2>&1; then
  17. QEMU="$item"
  18. break
  19. fi
  20. done
  21. QEMU=""
  22. fi
  23. if [ "$QEMU" = "" ]; then
  24. echo "failed"
  25. exit 1
  26. fi
  27. echo "$QEMU"
  28. check_gdb_arch() {
  29. local item="$1"
  30. if $item --init-eval-command 'set arch' \
  31. --init-eval-command 'q' 2>&1 \
  32. | grep "$DEFAULT_ARCH" >/dev/null 2>&1; then
  33. return 0
  34. else
  35. return 1
  36. fi
  37. }
  38. if [ "$GDB" = "" ]; then
  39. event "checking default gdb"
  40. if check_gdb_arch "$DEFAULT_ARCH-elf-gdb"; then
  41. GDB="\$(ARCH)-elf-gdb"
  42. break
  43. fi
  44. else
  45. event 'checking given gdb'
  46. for item in $GDB; do
  47. if check_gdb_arch "$GDB"; then
  48. GDB="$item"
  49. break
  50. fi
  51. done
  52. GDB=""
  53. fi
  54. if [ "$GDB" = "" ]; then
  55. echo "failed"
  56. exit 1
  57. fi
  58. echo "$GDB"
  59. event "checking util-linux fdisk"
  60. if [ "$FDISK" = "" ]; then
  61. if ! which fdisk > /dev/null 2>&1; then
  62. echo "no"
  63. exit 1
  64. fi
  65. FDISK=`which fdisk`
  66. fi
  67. if ! $FDISK -v 2>&1 | grep util-linux > /dev/null 2>&1 ; then
  68. echo "no, fdisk is not from util-linux"
  69. exit 1
  70. else
  71. echo "$FDISK"
  72. fi
  73. event "checking mkfs tool"
  74. if ! which mkfs.fat > /dev/null 2>&1; then
  75. echo "no"
  76. exit 1
  77. else
  78. echo `which mkfs.fat`
  79. fi
  80. cp Makefile.src Makefile
  81. sed -i '' -e "s|##DEFAULT_ARCH##|$DEFAULT_ARCH|" Makefile > /dev/null 2>&1
  82. sed -i '' -e "s|##GDB##|$GDB|" Makefile > /dev/null 2>&1
  83. sed -i '' -e "s|##QEMU##|$QEMU|" Makefile > /dev/null 2>&1
  84. sed -i '' -e "s|##FDISK##|$FDISK|" Makefile > /dev/null 2>&1
  85. exit 0