diff --git a/.gitignore b/.gitignore index 00d10cb2a657ca4fafb24476d0538db47dccd2c0..ec6ba5b77012672e72bbff2b6cfdb633d30b8e1b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ scripts/kconfiglib/kconfiglib.pyc src/platform/Kconfig src/include/nx_configure.h platform.mk +.idea/ \ No newline at end of file diff --git a/envsetup.py b/envsetup.py new file mode 100644 index 0000000000000000000000000000000000000000..64298b87a50d742e96b58437bd5d116a9fecc8f2 --- /dev/null +++ b/envsetup.py @@ -0,0 +1,101 @@ +## +# Copyright (c) 2018-2022, BookOS Development Team +# SPDX-License-Identifier: Apache-2.0 +# +# Contains: python scripts for setting up nxos build environment +# +# Change Logs: +# Date Author Notes +# 2022-1-26 Jvlong Init +# 2022-1-27 Jvlong Fix up +## + +# usage: +# python3 envsetup.py [arch-platform] +# example: python3 envsetup.py # x86-i386 +# example: python3 envsetup.py riscv64-qemu_riscv64 # riscv64-qemu_riscv64 + +# import libs +import os +import shutil +import sys + +# cross-platform functions +platform = sys.platform + + +def export(name, value): + if platform == "win32": + os.system(rf"setx {name} {value}") + elif platform == "linux": + os.system(rf"export {name}={value}") + elif platform == "darwin": + os.system(rf"export {name}={value}") + + +def add_into_path(thing_you_want_to_add): + if platform == "win32": + os.system(rf'setx PATH "%PATH%;{thing_you_want_to_add}"') + elif platform == "linux": + os.system(rf"export PATH={thing_you_want_to_add}:$PATH") + elif platform == "darwin": + os.system(rf"export PATH={thing_you_want_to_add}:$PATH") + + +working_dir = os.getcwd() + +# supported target list +supported_target = ["x86-i386", "riscv64-qemu_riscv64"] + +def_target = "unknown" + +if __name__ == '__main__': + try: + for target in supported_target: + if target == sys.argv[1]: + def_target = target + except IndexError: + print("Set default target as x86-i386") + def_target = "x86-i386" # default target is x86-i386 + +print("Set environment for NXOS.") +NXOS_NAME = "NXOS" +NXOS_ROOT_DIR = working_dir + +if platform == "win32": + NXOS_SRC_DIR = rf"{NXOS_ROOT_DIR}\src" +elif platform == "linux": + NXOS_SRC_DIR = rf"{NXOS_ROOT_DIR}/src" +elif platform == "darwin": + NXOS_SRC_DIR = rf"{NXOS_ROOT_DIR}/src" + +export("NXOS_NAME", NXOS_NAME) +export("NXOS_ROOT_DIR", NXOS_ROOT_DIR) +export("NXOS_SRC_DIR", NXOS_SRC_DIR) + +if def_target == "x86-i386": + if platform == "win32": + NXOS_EXEC_PATH = rf"{working_dir}\tools\gcc\x86_64-elf-gcc\bin" + elif platform == "linux": + NXOS_EXEC_PATH = rf"{working_dir}/tools/gcc/x86_64-elf-gcc/bin" + elif platform == "darwin": + NXOS_EXEC_PATH = rf"{working_dir}/tools/gcc/x86_64-elf-gcc/bin" +elif def_target == "riscv64-qemu_riscv64": + if platform == "win32": + NXOS_EXEC_PATH = rf"{working_dir}\tools\gcc\riscv64-unknown-elf-gcc\bin" + elif platform == "linux": + NXOS_EXEC_PATH = rf"{working_dir}/tools/gcc/riscv64-unknown-elf-gcc/bin" + elif platform == "darwin": + NXOS_EXEC_PATH = rf"{working_dir}/tools/gcc/riscv64-unknown-elf-gcc/bin" + +else: + print(rf"unknown target: {def_target}") + +add_into_path(NXOS_EXEC_PATH) + +print(rf"[ROOT DIR ] {NXOS_ROOT_DIR}") +print(rf"[SRC DIR ] {NXOS_SRC_DIR}") +print(rf"[EXEC PATH] {NXOS_EXEC_PATH}") +print(rf"[PLATFORM ] {def_target}") + +shutil.copy(rf"configs/platform-{def_target}.mk", "platform.mk") diff --git a/nxos.bat b/nxos.bat deleted file mode 100644 index 4e18cc71223bd989be7e21635d47fa2b953d167a..0000000000000000000000000000000000000000 --- a/nxos.bat +++ /dev/null @@ -1,49 +0,0 @@ -:: -:: Copyright (c) 2018-2022, BookOS Development Team -:: SPDX-License-Identifier: Apache-2.0 -:: -:: Contains: windows bat scripts for nxos environment -:: -:: Change Logs: -:: Date Author Notes -:: 2022-1-24 JasonHu Init -:: - -:: usage: -:: nxos.bat [arch-platform] -:: example: nxos.bat # x86-i386 -:: example: nxos.bat riscv64-qemu_riscv64 # riscv64-qemu_riscv64% - -@echo off - -set def_target=%1 - -if "%def_target%" == "" ( - :: set default targe as x86-i386 - set def_target=x86-i386 -) - -echo Set environment for NXOS. -set NXOS_NAME=NXOS -set NXOS_ROOT_DIR=%cd% -set NXOS_SRC_DIR=%cd%/src - -if "%def_target%" == "x86-i386" ( - set NXOS_EXEC_PATH=%NXOS_ROOT_DIR%\tools\gcc\x86_64-elf-gcc\bin -) else if "%def_target%" == "riscv64-qemu_riscv64" ( - set NXOS_EXEC_PATH=%NXOS_ROOT_DIR%\tools\gcc\riscv-none-embed-gcc\bin -) else ( - echo unknown target! %def_target% - goto end -) - -set PATH=%NXOS_EXEC_PATH%;%PATH%; - -echo [ROOT DIR ] %NXOS_ROOT_DIR% -echo [SRC DIR ] %NXOS_SRC_DIR% -echo [EXEC PATH] %NXOS_EXEC_PATH% -cp configs/platform-%def_target%.mk platform.mk -echo [PLAFORM ] %def_target% - -:end -@echo on diff --git a/nxos.sh b/nxos.sh deleted file mode 100644 index ec70fa74f3f048718faa13635efad668c96484ea..0000000000000000000000000000000000000000 --- a/nxos.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -## -# Copyright (c) 2018-2022, BookOS Development Team -# SPDX-License-Identifier: Apache-2.0 -# -# Contains: shell scripts for nxos environment -# -# Change Logs: -# Date Author Notes -# 2022-1-24 JasonHu Init -## - -# usage: -# source nxos.sh [arch-platform] -# example: source nxos.sh # x86-i386 -# example: source nxos.sh riscv64-qemu_riscv64 # riscv64-qemu_riscv64 - -# supported targe list -supported_target="x86-i386 riscv64-qemu_riscv64" - -def_target="unknown" - -# find target in target list -if [ -z $1 ] -then - def_target="x86-i386" # default target is x86-i386 -else - for target in $supported_target - do - if [ $target = $1 ] - then - def_target=$target - break - fi - done -fi - -echo "Set environment for NXOS." -export NXOS_NAME="NXOS" -export NXOS_ROOT_DIR=$(pwd) -export NXOS_SRC_DIR=$NXOS_ROOT_DIR/src - -# set env -case $def_target in - "x86-i386") - export NXOS_EXEC_PATH=$NXOS_ROOT_DIR/tools/gcc/x86_64-elf-gcc/bin - ;; - "riscv64-qemu_riscv64") - export NXOS_EXEC_PATH=$NXOS_ROOT_DIR/tools/gcc/riscv64-unknown-elf-gcc/bin - ;; - *) echo "unknown target! " $def_target - return 1 -esac - -# export NXOS_EXEC_PATH -export PATH=$NXOS_EXEC_PATH:$PATH - -echo "[ROOT DIR ]" $NXOS_ROOT_DIR -echo "[SRC DIR ]" $NXOS_SRC_DIR -echo "[EXEC PATH]" $NXOS_EXEC_PATH -cp configs/platform-$def_target.mk platform.mk -echo "[PLAFORM ]" $def_target \ No newline at end of file