Introducing LunaBuild to the build flow (#36)
authorLunaixsky <lunaixsky@qq.com>
Thu, 27 Jun 2024 15:11:18 +0000 (16:11 +0100)
committerGitHub <noreply@github.com>
Thu, 27 Jun 2024 15:11:18 +0000 (16:11 +0100)
commit1025235c72c31f7fa7b648c0e32ddcaa68a8f66a
tree063e47c03b226c107ba0c9a9928e2938bce40642
parentd1b1c8d9119229dbeed06cd252917e54a1cb77f6
Introducing LunaBuild to the build flow (#36)

* add LunaBuild for better control of source file selections

* remove out-dated template based method
* add LBuild files that follow LunaBuild methodology

* integrate LunaBuild into the building flow

* add documentation on general usage of LunaBuild
* fix `make run` does not work properly

* implement and integrate LConfig language

* implement LConfig language for modularised kernel build experience
* integrate LConfig into build flow
* clean up out-dated files

* Add interactive shell to do configuration

* file clean up

* General clean up

* move grub image stuff to scripts/grub
* remove the code format rule file - we don't need these fancy shit!

* refine the config shell experience

* allow accessing node using posix-path
* able to identify whether the configuration is aborted or exit normally

* fix up the dependencies in makefile, rebuild when needed

* make sure the configuration shell only pop up when:
  1) LConfigs changed
  2) config.h disappeared
* add proper implementation on header files change detection
* add missing doc string on some config nodes
81 files changed:
lunaix-os/.clang-format [deleted file]
lunaix-os/.gitignore
lunaix-os/.prettierignore [deleted file]
lunaix-os/.vscode/c_cpp_properties.json
lunaix-os/LBuild [new file with mode: 0644]
lunaix-os/LConfig [new file with mode: 0644]
lunaix-os/arch/LBuild [new file with mode: 0644]
lunaix-os/arch/LConfig [new file with mode: 0644]
lunaix-os/arch/i386/LBuild [new file with mode: 0644]
lunaix-os/arch/i386/LConfig [new file with mode: 0644]
lunaix-os/arch/i386/hal/LBuild [new file with mode: 0644]
lunaix-os/arch/i386/klib/fast_crc.c
lunaix-os/config-grub.sh [deleted file]
lunaix-os/config.h [deleted file]
lunaix-os/flags.h [deleted file]
lunaix-os/hal/LBuild [new file with mode: 0644]
lunaix-os/hal/acpi/LBuild [new file with mode: 0644]
lunaix-os/hal/ahci/LBuild [new file with mode: 0644]
lunaix-os/hal/bus/LBuild [new file with mode: 0644]
lunaix-os/hal/bus/pci.c [moved from lunaix-os/hal/pci.c with 100% similarity]
lunaix-os/hal/char/LBuild [new file with mode: 0644]
lunaix-os/hal/char/uart/LBuild [new file with mode: 0644]
lunaix-os/hal/gfxa/LBuild [new file with mode: 0644]
lunaix-os/hal/gfxa/vga/LBuild [new file with mode: 0644]
lunaix-os/hal/rtc/LBuild [new file with mode: 0644]
lunaix-os/hal/term/LBuild [new file with mode: 0644]
lunaix-os/hal/timer/LBuild [new file with mode: 0644]
lunaix-os/includes/lunaix/mm/pmm.h
lunaix-os/includes/lunaix/spike.h
lunaix-os/includes/sdbg/gdbstub.h
lunaix-os/kernel.mk
lunaix-os/kernel/LBuild [new file with mode: 0644]
lunaix-os/kernel/LConfig [new file with mode: 0644]
lunaix-os/kernel/block/LBuild [new file with mode: 0644]
lunaix-os/kernel/debug/LBuild [new file with mode: 0644]
lunaix-os/kernel/debug/gdbstub.c
lunaix-os/kernel/device/LBuild [new file with mode: 0644]
lunaix-os/kernel/ds/LBuild [new file with mode: 0644]
lunaix-os/kernel/exe/LBuild [new file with mode: 0644]
lunaix-os/kernel/exe/elf32/LBuild [new file with mode: 0644]
lunaix-os/kernel/fs/LBuild [new file with mode: 0644]
lunaix-os/kernel/fs/fs_export.c
lunaix-os/kernel/fs/iso9660/LBuild [new file with mode: 0644]
lunaix-os/kernel/fs/ramfs/LBuild [new file with mode: 0644]
lunaix-os/kernel/fs/twifs/LBuild [new file with mode: 0644]
lunaix-os/kernel/mm/LBuild [new file with mode: 0644]
lunaix-os/kernel/mm/LConfig [new file with mode: 0644]
lunaix-os/kernel/mm/pmalloc_simple.c
lunaix-os/kernel/process/LBuild [new file with mode: 0644]
lunaix-os/ksrc.excludes [deleted file]
lunaix-os/libs/LBuild [new file with mode: 0644]
lunaix-os/libs/klibc/string/strlen.c
lunaix-os/makefile
lunaix-os/scripts/build-tools/README.lbuild.md [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/__init__.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/config_io.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/lbuild_bridge.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/render_ishell.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lbuild/__init__.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lbuild/api.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lbuild/common.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lbuild/contract.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/__init__.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/api.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/builtins.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/common.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/lcnodes.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/types.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/utils.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lib/__init__.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lib/sandbox.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lib/utils.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/luna_build.py [new file with mode: 0755]
lunaix-os/scripts/expand.py [deleted file]
lunaix-os/scripts/grub/GRUB_TEMPLATE [moved from lunaix-os/GRUB_TEMPLATE with 100% similarity]
lunaix-os/scripts/grub/config-grub.sh [new file with mode: 0755]
lunaix-os/scripts/templates/i386/config.json [deleted file]
lunaix-os/scripts/templates/i386/i386_intrhnds.S.j2 [deleted file]
lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 [deleted file]
lunaix-os/scripts/templates/i386/mappings [deleted file]
lunaix-os/scripts/templates/i386/mempart.h.j2 [deleted file]