Przeglądaj źródła

chore: add configure mutil arch support

Heinz 8 miesięcy temu
rodzic
commit
61b031b0a2
1 zmienionych plików z 32 dodań i 6 usunięć
  1. 32 6
      configure

+ 32 - 6
configure

@@ -1,11 +1,35 @@
 #!/bin/sh
 #!/bin/sh
-QEMU_EXECUTABLES="qemu-system-x86_64"
-GDB_EXECUTABLES="gdb x86_64-elf-gdb"
-
 event() {
 event() {
     printf "$1... "
     printf "$1... "
 }
 }
 
 
+ARCH=${ARCH:-x86_64}
+
+# Define toolchain and QEMU/GDB settings for per architecture
+event "target architecture"
+echo "$ARCH"
+case "$ARCH" in
+    x86_64)
+        QEMU_EXECUTABLES="qemu-system-x86_64"
+        GDB_EXECUTABLES="gdb x86_64-elf-gdb"
+        : "${CROSS_COMPILE:=}"
+        ;;
+    riscv64)
+        QEMU_EXECUTABLES="qemu-system-riscv64"
+        GDB_EXECUTABLES="gdb riscv64-unknown-elf-gdb"
+        : "${CROSS_COMPILE:=riscv64-unknown-elf-}"
+        ;;
+    aarch64)
+        QEMU_EXECUTABLES="qemu-system-aarch64"
+        GDB_EXECUTABLES="gdb aarch64-none-elf-gdb"
+        : "${CROSS_COMPILE:=aarch64-none-elf-}"
+        ;;
+    *)
+        echo "Unsupported ARCH: $ARCH"
+        exit 1
+        ;;
+esac
+
 # $1: OS NAME
 # $1: OS NAME
 # $2: CROSS COMPILE FLAG
 # $2: CROSS COMPILE FLAG
 # $3: FDISK_BIN
 # $3: FDISK_BIN
@@ -46,7 +70,7 @@ check_gdb_arch() {
     local item="$1"
     local item="$1"
     if $item --init-eval-command 'set arch' \
     if $item --init-eval-command 'set arch' \
              --init-eval-command 'q' 2>&1 \
              --init-eval-command 'q' 2>&1 \
-             | grep 'x86-64' >/dev/null 2>&1; then
+             | grep "$ARCH" >/dev/null 2>&1; then
         return 0
         return 0
     else
     else
         return 1
         return 1
@@ -102,12 +126,12 @@ case "$OS" in
 esac
 esac
 
 
 event "checking util-linux fdisk"
 event "checking util-linux fdisk"
-if [ "$FDISK_BIN" = "" -a "$CROSS_COMPILE" = "" ]; then
+if [ -z "$FDISK_BIN" ]; then
     if ! which fdisk > /dev/null 2>&1; then
     if ! which fdisk > /dev/null 2>&1; then
         echo "no"
         echo "no"
         exit 1
         exit 1
     fi
     fi
-    FDISK_BIN=`which fdisk`
+    FDISK_BIN=$(which fdisk)
 fi
 fi
 
 
 if ! $FDISK_BIN -v 2>&1 | grep util-linux > /dev/null 2>&1 ; then
 if ! $FDISK_BIN -v 2>&1 | grep util-linux > /dev/null 2>&1 ; then
@@ -141,4 +165,6 @@ sed -i '' -e "s|##PLACEHOLDER_2##|$GDB|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_3##|$QEMU_ACCEL|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_3##|$QEMU_ACCEL|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_4##|$CROSS_COMPILE_FLAG|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_4##|$CROSS_COMPILE_FLAG|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_5##|$FDISK_BIN|" Makefile > /dev/null 2>&1
 sed -i '' -e "s|##PLACEHOLDER_5##|$FDISK_BIN|" Makefile > /dev/null 2>&1
+
+echo "Configuration successful for architecture: $ARCH"
 exit 0
 exit 0