Forráskód Böngészése

chore: add configure script

greatbridf 2 éve
szülő
commit
fc23e8cba2
3 módosított fájl, 73 hozzáadás és 6 törlés
  1. 2 0
      .gitignore
  2. 6 6
      Makefile.src
  3. 65 0
      configure

+ 2 - 0
.gitignore

@@ -9,3 +9,5 @@ bx_enh_dbg.ini
 .cache/
 
 compile_commands.json
+
+Makefile

+ 6 - 6
Makefile → Makefile.src

@@ -1,10 +1,10 @@
 # disable kvm to debug triple faults
-GDB_BIN=gdb
-QEMU_BIN=qemu-system-i386
-QEMU_ACCELERATION_FLAG=-enable-kvm
-QEMU_DEBUG_FLAG=-d cpu_reset,int
-QEMU_ARGS=-drive file=build/boot.img,format=raw -no-reboot -no-shutdown $(QEMU_ACCELERATION_FLAG) #$(QEMU_DEBUG_FLAG)
-CROSS_COMPILE=#--toolchain cross-compile.cmake
+QEMU_BIN=##PLACEHOLDER_1##
+GDB_BIN=##PLACEHOLDER_2##
+QEMU_ACCELERATION_FLAG=##PLACEHOLDER_3##
+QEMU_DEBUG_FLAG=#-d cpu_reset,int
+QEMU_ARGS=-drive file=build/boot.img,format=raw -no-reboot -no-shutdown $(QEMU_ACCELERATION_FLAG) $(QEMU_DEBUG_FLAG)
+CROSS_COMPILE=##PLACEHOLDER_4##
 .PHONY: run
 run: build
 	$(QEMU_BIN) $(QEMU_ARGS) -display curses -S -s

+ 65 - 0
configure

@@ -0,0 +1,65 @@
+#!/bin/sh
+QEMU_EXECUTABLES="qemu-system-i386 qemu-system-x86_64"
+GDB_EXECUTABLES="gdb x86_64-elf-gdb"
+
+event() {
+    printf "$1... "
+}
+
+event "finding qemu"
+for item in $QEMU_EXECUTABLES; do
+    if $item --version > /dev/null 2>&1; then
+        QEMU="$item"
+        break
+    fi
+done
+if [ "$QEMU" = "" ]; then
+    echo "failed"
+    exit 1
+fi
+echo "$QEMU"
+
+event "finding gdb"
+for item in $GDB_EXECUTABLES; do
+    if $item --version > /dev/null 2>&1; then
+        GDB="$item"
+        break
+    fi
+done
+if [ "$GDB" = "" ]; then
+    echo "failed"
+    exit 1
+fi
+echo "$GDB"
+
+event "checking os type"
+OS=`uname`
+case "$OS" in
+    "Linux")
+        echo "Linux"
+        QEMU_ACCEL='-enable-kvm'
+        ;;
+    "Darwin")
+        echo "macOS"
+        QEMU_ACCEL='-accel hvf'
+        ;;
+    *)
+        echo "unknown"
+        exit 1
+        ;;
+esac
+
+event "checking cross compiling"
+if [ "$CROSS_COMPILE" != "" ]; then
+    echo "yes"
+    CROSS_COMPILE_FLAG='--toolchain cross-compile.cmake'
+else
+    echo "no"
+    CROSS_COMPILE_FLAG=
+fi
+
+cp Makefile.src Makefile
+sed -i '' "s/##PLACEHOLDER_1##/$QEMU/" Makefile
+sed -i '' "s/##PLACEHOLDER_2##/$GDB/" Makefile
+sed -i '' "s/##PLACEHOLDER_3##/$QEMU_ACCEL/" Makefile
+sed -i '' "s/##PLACEHOLDER_4##/$CROSS_COMPILE_FLAG/" Makefile