Пример сборки без использования CMake

21 мая 2024

ID cmake_no_cmake_build_example

Ниже приведен пример скрипта для сборки простейшего примера. Этот пример содержит единственную прикладную программу 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

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!