Пример сборки без использования CMake
Ниже приведен пример скрипта для сборки простейшего примера. Этот пример содержит единственную прикладную программу Hello, которая не предоставляет службы.
Приведенный скрипт предназначен только для демонстрации используемых команд сборки.
build.sh
#!/bin/sh
# В переменной SDK нужно указать путь к директории установки KasperskyOS Community Edition.
SDK=/opt/KasperskyOS-Community-Edition-<version>
TOOLCHAIN=$SDK/toolchain
SYSROOT=$SDK/sysroot-aarch64-kos
PATH=$TOOLCHAIN/bin:$PATH
# Создание файла Hello.edl.h из Hello.edl
# (Программа Hello не реализует служб, поэтому cdl- и idl-файлы отсутствуют.)
nk-gen-c -I $SYSROOT/include Hello.edl
# Компиляция и сборка программы Hello
aarch64-kos-gcc -o hello hello.c
# Создание модуля безопасности Kaspersky Security Module (ksm.module)
makekss --target=aarch64-kos \
--module=-lksm_kss \
--with-nkflags="-I $SDK/examples/common -I $SYSROOT/include" \
security.psl
# Создание кода инициализирующей программы Einit
einit -I $SYSROOT/include -I . init.yaml -o einit.c
# Компиляция и сборка программы Einit
aarch64-kos-gcc -I . -o einit einit.c
# Создание загружаемого образа решения (kos-qemu-image)
makeimg --target=aarch64-kos \
--sys-root=$SYSROOT \
--with-toolchain=$TOOLCHAIN \
--ldscript=$SDK/libexec/aarch64-kos/kos-qemu.ld \
--img-src=$SDK/libexec/aarch64-kos/kos-qemu \
--img-dst=kos-qemu-image \
Hello ksm.module
# Запуск решения под QEMU
qemu-system-aarch64 -m 1024 -serial stdio -kernel kos-qemu-image