BuildSystem: using sysroot doesn't need root privileges anymore!
Sysroot is now created with fakeroot. This allows root access to be only needed for disk image creation, since it uses loopback devices.
This commit is contained in:
parent
ca34ece8ef
commit
f6c312a6b3
|
@ -2,4 +2,4 @@
|
||||||
.idea/
|
.idea/
|
||||||
build/
|
build/
|
||||||
base/
|
base/
|
||||||
|
script/fakeroot-context
|
||||||
|
|
|
@ -10,17 +10,15 @@ set(BAN_SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(ban-headers
|
add_custom_target(ban-headers
|
||||||
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
||||||
DEPENDS sysroot
|
DEPENDS sysroot
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(ban ${BAN_SOURCES})
|
add_library(ban ${BAN_SOURCES})
|
||||||
add_dependencies(ban headers libc-install)
|
add_dependencies(ban headers libc-install)
|
||||||
|
|
||||||
add_custom_target(ban-install
|
add_custom_target(ban-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/libban.a ${BANAN_LIB}/
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/libban.a ${BANAN_LIB}/
|
||||||
DEPENDS ban
|
DEPENDS ban
|
||||||
BYPRODUCTS ${BANAN_LIB}/libban.a
|
BYPRODUCTS ${BANAN_LIB}/libban.a
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -10,7 +10,6 @@ add_compile_definitions(__enable_sse=0)
|
||||||
project(banan-os CXX C ASM)
|
project(banan-os CXX C ASM)
|
||||||
|
|
||||||
set(BANAN_BASE_SYSROOT ${CMAKE_SOURCE_DIR}/base-sysroot.tar.gz)
|
set(BANAN_BASE_SYSROOT ${CMAKE_SOURCE_DIR}/base-sysroot.tar.gz)
|
||||||
set(BANAN_SYSROOT ${CMAKE_BINARY_DIR}/sysroot)
|
|
||||||
set(BANAN_INCLUDE ${BANAN_SYSROOT}/usr/include)
|
set(BANAN_INCLUDE ${BANAN_SYSROOT}/usr/include)
|
||||||
set(BANAN_LIB ${BANAN_SYSROOT}/usr/lib)
|
set(BANAN_LIB ${BANAN_SYSROOT}/usr/lib)
|
||||||
set(BANAN_BIN ${BANAN_SYSROOT}/usr/bin)
|
set(BANAN_BIN ${BANAN_SYSROOT}/usr/bin)
|
||||||
|
@ -24,8 +23,7 @@ add_subdirectory(userspace)
|
||||||
|
|
||||||
add_custom_target(sysroot
|
add_custom_target(sysroot
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT}
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT}
|
||||||
COMMAND cd ${BANAN_SYSROOT} && sudo tar xf ${BANAN_BASE_SYSROOT}
|
COMMAND cd ${BANAN_SYSROOT} && tar xf ${BANAN_BASE_SYSROOT}
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(headers
|
add_custom_target(headers
|
||||||
|
@ -36,6 +34,7 @@ add_custom_target(headers
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(install-sysroot
|
add_custom_target(install-sysroot
|
||||||
|
COMMAND cd ${BANAN_SYSROOT} && tar cf ${BANAN_SYSROOT_TAR} *
|
||||||
DEPENDS kernel-install
|
DEPENDS kernel-install
|
||||||
DEPENDS ban-install
|
DEPENDS ban-install
|
||||||
DEPENDS libc-install
|
DEPENDS libc-install
|
||||||
|
|
|
@ -3,9 +3,8 @@ cmake_minimum_required(VERSION 3.26)
|
||||||
project(LibELF CXX)
|
project(LibELF CXX)
|
||||||
|
|
||||||
add_custom_target(libelf-headers
|
add_custom_target(libelf-headers
|
||||||
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
||||||
DEPENDS sysroot
|
DEPENDS sysroot
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(libelf-install
|
add_custom_target(libelf-install
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# banan-os
|
# banan-os
|
||||||
|
|
||||||
This is my hobby operating system written in C++. Currently supports only x86_64 architecture. We have a ext2 filesystem, basic ramfs, IDE disk drivers in ATA PIO mode, ATA AHCI drivers, userspace processes, executable loading from ELF format, linear VBE graphics and multithreaded processing on single core.
|
This is my hobby operating system written in C++. Currently supports only x86\_64 architecture. We have a ext2 filesystem, basic ramfs, IDE disk drivers in ATA PIO mode, ATA AHCI drivers, userspace processes, executable loading from ELF format, linear VBE graphics and multithreaded processing on single core.
|
||||||
|
|
||||||
![screenshot from qemu running banan-os](assets/banan-os.png)
|
![screenshot from qemu running banan-os](assets/banan-os.png)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ To build the toolchain for this os. You can run the following command.
|
||||||
./script/build.sh toolchain
|
./script/build.sh toolchain
|
||||||
```
|
```
|
||||||
|
|
||||||
To build the os itself you can run one of the following commands. You will need root access since the sysroot has "proper" permissions.
|
To build the os itself you can run one of the following commands. You will need root access for disk image creation/modification.
|
||||||
```sh
|
```sh
|
||||||
./script/build.sh qemu
|
./script/build.sh qemu
|
||||||
./script/build.sh qemu-nographic
|
./script/build.sh qemu-nographic
|
||||||
|
@ -39,8 +39,6 @@ If you have corrupted your disk image or want to create new one, you can either
|
||||||
./script/build.sh image-full
|
./script/build.sh image-full
|
||||||
```
|
```
|
||||||
|
|
||||||
> ***NOTE*** ```ninja clean``` has to be ran with root permissions, since it deletes from the banan-so sysroot.
|
|
||||||
|
|
||||||
If you feel like ```./script/build.sh``` is too verbose, there exists a symlink _bos_ in this projects root directory. All build commands can be used with ```./bos args...``` instead.
|
If you feel like ```./script/build.sh``` is too verbose, there exists a symlink _bos_ in this projects root directory. All build commands can be used with ```./bos args...``` instead.
|
||||||
|
|
||||||
I have also created shell completion script for zsh. You can either copy the file in _script/shell-completion/zsh/\_bos_ to _/usr/share/zsh/site-functions/_ or add the _script/shell-completion/zsh_ to your fpath in _.zshrc_.
|
I have also created shell completion script for zsh. You can either copy the file in _script/shell-completion/zsh/\_bos_ to _/usr/share/zsh/site-functions/_ or add the _script/shell-completion/zsh_ to your fpath in _.zshrc_.
|
||||||
|
|
|
@ -165,16 +165,14 @@ endif()
|
||||||
target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
|
target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
|
||||||
|
|
||||||
add_custom_target(kernel-headers
|
add_custom_target(kernel-headers
|
||||||
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
||||||
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/
|
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/
|
||||||
DEPENDS sysroot
|
DEPENDS sysroot
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(kernel-install
|
add_custom_target(kernel-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/kernel ${BANAN_BOOT}/banan-os.kernel
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/kernel ${BANAN_BOOT}/banan-os.kernel
|
||||||
DEPENDS kernel
|
DEPENDS kernel
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=crtbegin.o OUTPUT_VARIABLE CRTBEGIN OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=crtbegin.o OUTPUT_VARIABLE CRTBEGIN OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
|
@ -26,9 +26,8 @@ set(LIBC_SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(libc-headers
|
add_custom_target(libc-headers
|
||||||
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
|
||||||
DEPENDS sysroot
|
DEPENDS sysroot
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(crtx
|
add_custom_target(crtx
|
||||||
|
@ -38,11 +37,10 @@ add_custom_target(crtx
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(crtx-install
|
add_custom_target(crtx-install
|
||||||
COMMAND sudo cp crt0.o ${BANAN_LIB}/
|
COMMAND ${CMAKE_COMMAND} -E copy crt0.o ${BANAN_LIB}/
|
||||||
COMMAND sudo cp crti.o ${BANAN_LIB}/
|
COMMAND ${CMAKE_COMMAND} -E copy crti.o ${BANAN_LIB}/
|
||||||
COMMAND sudo cp crtn.o ${BANAN_LIB}/
|
COMMAND ${CMAKE_COMMAND} -E copy crtn.o ${BANAN_LIB}/
|
||||||
DEPENDS crtx
|
DEPENDS crtx
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(libc ${LIBC_SOURCES})
|
add_library(libc ${LIBC_SOURCES})
|
||||||
|
@ -51,10 +49,9 @@ add_dependencies(libc headers crtx-install)
|
||||||
target_compile_options(libc PRIVATE -g -Wstack-usage=512)
|
target_compile_options(libc PRIVATE -g -Wstack-usage=512)
|
||||||
|
|
||||||
add_custom_target(libc-install
|
add_custom_target(libc-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/libc.a ${BANAN_LIB}/
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/libc.a ${BANAN_LIB}/
|
||||||
DEPENDS libc
|
DEPENDS libc
|
||||||
BYPRODUCTS ${BANAN_LIB}/libc.a
|
BYPRODUCTS ${BANAN_LIB}/libc.a
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CMAKE_STATIC_LIBRARY_PREFIX "")
|
set(CMAKE_STATIC_LIBRARY_PREFIX "")
|
||||||
|
|
|
@ -4,6 +4,12 @@ set -e
|
||||||
export BANAN_SCRIPT_DIR=$(dirname $(realpath $0))
|
export BANAN_SCRIPT_DIR=$(dirname $(realpath $0))
|
||||||
source $BANAN_SCRIPT_DIR/config.sh
|
source $BANAN_SCRIPT_DIR/config.sh
|
||||||
|
|
||||||
|
FAKEROOT_FILE="$BANAN_BUILD_DIR/fakeroot-context"
|
||||||
|
|
||||||
|
run_fakeroot() {
|
||||||
|
fakeroot -i $FAKEROOT_FILE -s $FAKEROOT_FILE -- /bin/bash -c '$@' bash $@
|
||||||
|
}
|
||||||
|
|
||||||
make_build_dir () {
|
make_build_dir () {
|
||||||
mkdir -p $BANAN_BUILD_DIR
|
mkdir -p $BANAN_BUILD_DIR
|
||||||
cd $BANAN_BUILD_DIR
|
cd $BANAN_BUILD_DIR
|
||||||
|
@ -19,7 +25,7 @@ build_target () {
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
cd $BANAN_BUILD_DIR
|
cd $BANAN_BUILD_DIR
|
||||||
ninja $1
|
run_fakeroot ninja $1
|
||||||
}
|
}
|
||||||
|
|
||||||
build_toolchain () {
|
build_toolchain () {
|
||||||
|
@ -39,11 +45,7 @@ build_toolchain () {
|
||||||
|
|
||||||
create_image () {
|
create_image () {
|
||||||
build_target install-sysroot
|
build_target install-sysroot
|
||||||
if [[ "$1" == "full" ]]; then
|
$BANAN_SCRIPT_DIR/image.sh "$1"
|
||||||
$BANAN_SCRIPT_DIR/image-full.sh
|
|
||||||
else
|
|
||||||
$BANAN_SCRIPT_DIR/image.sh
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
run_qemu () {
|
run_qemu () {
|
||||||
|
@ -56,7 +58,7 @@ run_bochs () {
|
||||||
$BANAN_SCRIPT_DIR/bochs.sh $@
|
$BANAN_SCRIPT_DIR/bochs.sh $@
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ "$(uname)" == "Linux" ]]; then
|
if [[ -c /dev/kvm ]]; then
|
||||||
QEMU_ACCEL="-accel kvm"
|
QEMU_ACCEL="-accel kvm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ export BANAN_TOOLCHAIN_TRIPLE_PREFIX=$BANAN_ARCH-banan_os
|
||||||
export BANAN_BUILD_DIR=$BANAN_ROOT_DIR/build
|
export BANAN_BUILD_DIR=$BANAN_ROOT_DIR/build
|
||||||
|
|
||||||
export BANAN_SYSROOT=$BANAN_BUILD_DIR/sysroot
|
export BANAN_SYSROOT=$BANAN_BUILD_DIR/sysroot
|
||||||
|
export BANAN_SYSROOT_TAR=$BANAN_SYSROOT.tar
|
||||||
|
|
||||||
export BANAN_DISK_IMAGE_PATH=$BANAN_BUILD_DIR/banan-os.img
|
export BANAN_DISK_IMAGE_PATH=$BANAN_BUILD_DIR/banan-os.img
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ sudo partprobe $LOOP_DEV
|
||||||
PARTITION1=${LOOP_DEV}p1
|
PARTITION1=${LOOP_DEV}p1
|
||||||
PARTITION2=${LOOP_DEV}p2
|
PARTITION2=${LOOP_DEV}p2
|
||||||
|
|
||||||
sudo mkfs.ext2 -d $BANAN_SYSROOT -b 1024 -q $PARTITION2
|
sudo mkfs.ext2 -b 1024 -q $PARTITION2
|
||||||
|
|
||||||
if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then
|
if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then
|
||||||
sudo mkfs.fat $PARTITION1 > /dev/null
|
sudo mkfs.fat $PARTITION1 > /dev/null
|
|
@ -1,44 +1,38 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ -z $BANAN_ROOT_DIR ]]; then
|
|
||||||
echo "You must set the BANAN_ROOT_DIR environment variable" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $BANAN_DISK_IMAGE_PATH ]]; then
|
if [[ -z $BANAN_DISK_IMAGE_PATH ]]; then
|
||||||
echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2
|
echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $BANAN_SYSROOT ]]; then
|
if [[ -z $BANAN_SYSROOT_TAR ]]; then
|
||||||
echo "You must set the BANAN_SYSROOT environment variable" >&2
|
echo "You must set the BANAN_SYSROOT_TAR environment variable" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then
|
if [[ "$1" == "full" ]] || [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then
|
||||||
$BANAN_SCRIPT_DIR/image-full.sh
|
$BANAN_SCRIPT_DIR/image-create.sh
|
||||||
exit 0
|
else
|
||||||
|
fdisk -l $BANAN_DISK_IMAGE_PATH | grep -q 'EFI System'; IMAGE_IS_UEFI=$?
|
||||||
|
[[ $BANAN_UEFI_BOOT == 1 ]]; CREATE_IS_UEFI=$?
|
||||||
|
|
||||||
|
if [[ $IMAGE_IS_UEFI -ne $CREATE_IS_UEFI ]]; then
|
||||||
|
echo Converting disk image to/from UEFI
|
||||||
|
$BANAN_SCRIPT_DIR/image-create.sh
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fdisk -l $BANAN_DISK_IMAGE_PATH | grep -q 'EFI System'; IMAGE_IS_UEFI=$?
|
LOOP_DEV=$(sudo losetup --show -f "$BANAN_DISK_IMAGE_PATH")
|
||||||
[[ $BANAN_UEFI_BOOT == 1 ]]; CREATE_IS_UEFI=$?
|
|
||||||
|
|
||||||
if [[ $IMAGE_IS_UEFI -ne $CREATE_IS_UEFI ]]; then
|
|
||||||
echo Converting disk image to/from UEFI
|
|
||||||
$BANAN_SCRIPT_DIR/image-full.sh
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
MOUNT_DIR=/mnt
|
|
||||||
|
|
||||||
LOOP_DEV=$(sudo losetup -f --show $BANAN_DISK_IMAGE_PATH)
|
|
||||||
sudo partprobe $LOOP_DEV
|
sudo partprobe $LOOP_DEV
|
||||||
|
|
||||||
ROOT_PARTITON=${LOOP_DEV}p2
|
ROOT_PARTITION=${LOOP_DEV}p2
|
||||||
|
MOUNT_DIR=/mnt
|
||||||
|
|
||||||
sudo mount $ROOT_PARTITON $MOUNT_DIR
|
sudo mount $ROOT_PARTITION $MOUNT_DIR
|
||||||
|
|
||||||
sudo rsync -a ${BANAN_SYSROOT}/* ${MOUNT_DIR}/
|
cd $MOUNT_DIR
|
||||||
|
sudo tar xf $BANAN_SYSROOT_TAR
|
||||||
|
cd
|
||||||
|
|
||||||
sudo umount $MOUNT_DIR
|
sudo umount $MOUNT_DIR
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,19 @@
|
||||||
if (NOT DEFINED ENV{BANAN_ARCH})
|
if (NOT DEFINED ENV{BANAN_ARCH})
|
||||||
message(FATAL_ERROR "environment variable BANAN_ARCH not defined")
|
message(FATAL_ERROR "environment variable BANAN_ARCH not defined")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(BANAN_ARCH $ENV{BANAN_ARCH})
|
set(BANAN_ARCH $ENV{BANAN_ARCH})
|
||||||
|
|
||||||
|
if (NOT DEFINED ENV{BANAN_SYSROOT})
|
||||||
|
message(FATAL_ERROR "environment variable BANAN_SYSROOT not defined")
|
||||||
|
endif ()
|
||||||
|
set(BANAN_SYSROOT $ENV{BANAN_SYSROOT})
|
||||||
|
|
||||||
|
if (NOT DEFINED ENV{BANAN_SYSROOT_TAR})
|
||||||
|
message(FATAL_ERROR "environment variable BANAN_SYSROOT_TAR not defined")
|
||||||
|
endif ()
|
||||||
|
set(BANAN_SYSROOT_TAR $ENV{BANAN_SYSROOT_TAR})
|
||||||
|
|
||||||
|
|
||||||
set(TOOLCHAIN_PREFIX ${CMAKE_SOURCE_DIR}/toolchain/local)
|
set(TOOLCHAIN_PREFIX ${CMAKE_SOURCE_DIR}/toolchain/local)
|
||||||
|
|
||||||
set(CMAKE_SYSTEM_NAME banan-os)
|
set(CMAKE_SYSTEM_NAME banan-os)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(Shell PUBLIC -O2 -g)
|
||||||
target_link_libraries(Shell PUBLIC libc ban)
|
target_link_libraries(Shell PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(Shell-install
|
add_custom_target(Shell-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/Shell ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/Shell ${BANAN_BIN}/
|
||||||
DEPENDS Shell
|
DEPENDS Shell
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cat-mmap PUBLIC -O2 -g)
|
||||||
target_link_libraries(cat-mmap PUBLIC libc)
|
target_link_libraries(cat-mmap PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(cat-mmap-install
|
add_custom_target(cat-mmap-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cat-mmap ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cat-mmap ${BANAN_BIN}/
|
||||||
DEPENDS cat-mmap
|
DEPENDS cat-mmap
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cat PUBLIC -O2 -g)
|
||||||
target_link_libraries(cat PUBLIC libc)
|
target_link_libraries(cat PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(cat-install
|
add_custom_target(cat-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cat ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cat ${BANAN_BIN}/
|
||||||
DEPENDS cat
|
DEPENDS cat
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(chmod PUBLIC -O2 -g)
|
||||||
target_link_libraries(chmod PUBLIC libc)
|
target_link_libraries(chmod PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(chmod-install
|
add_custom_target(chmod-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/chmod ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/chmod ${BANAN_BIN}/
|
||||||
DEPENDS chmod
|
DEPENDS chmod
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cp PUBLIC -O2 -g)
|
||||||
target_link_libraries(cp PUBLIC libc ban)
|
target_link_libraries(cp PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(cp-install
|
add_custom_target(cp-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cp ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cp ${BANAN_BIN}/
|
||||||
DEPENDS cp
|
DEPENDS cp
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -20,9 +20,8 @@ target_compile_options($PROGRAM_NAME PUBLIC -O2 -g)
|
||||||
target_link_libraries($PROGRAM_NAME PUBLIC libc)
|
target_link_libraries($PROGRAM_NAME PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target($PROGRAM_NAME-install
|
add_custom_target($PROGRAM_NAME-install
|
||||||
COMMAND sudo cp \${CMAKE_CURRENT_BINARY_DIR}/$PROGRAM_NAME \${BANAN_BIN}/
|
COMMAND \${CMAKE_COMMAND} -E copy \${CMAKE_CURRENT_BINARY_DIR}/$PROGRAM_NAME \${BANAN_BIN}/
|
||||||
DEPENDS $PROGRAM_NAME
|
DEPENDS $PROGRAM_NAME
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(dd PUBLIC -O2 -g)
|
||||||
target_link_libraries(dd PUBLIC libc)
|
target_link_libraries(dd PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(dd-install
|
add_custom_target(dd-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/dd ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/dd ${BANAN_BIN}/
|
||||||
DEPENDS dd
|
DEPENDS dd
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(echo PUBLIC -O2 -g)
|
||||||
target_link_libraries(echo PUBLIC libc)
|
target_link_libraries(echo PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(echo-install
|
add_custom_target(echo-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/echo ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/echo ${BANAN_BIN}/
|
||||||
DEPENDS echo
|
DEPENDS echo
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(id PUBLIC -O2 -g)
|
||||||
target_link_libraries(id PUBLIC libc ban)
|
target_link_libraries(id PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(id-install
|
add_custom_target(id-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/id ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/id ${BANAN_BIN}/
|
||||||
DEPENDS id
|
DEPENDS id
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(init PUBLIC -O2 -g)
|
||||||
target_link_libraries(init PUBLIC libc ban)
|
target_link_libraries(init PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(init-install
|
add_custom_target(init-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/init ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/init ${BANAN_BIN}/
|
||||||
DEPENDS init
|
DEPENDS init
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(ls PUBLIC -O2 -g)
|
||||||
target_link_libraries(ls PUBLIC libc)
|
target_link_libraries(ls PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(ls-install
|
add_custom_target(ls-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/ls ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/ls ${BANAN_BIN}/
|
||||||
DEPENDS ls
|
DEPENDS ls
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(meminfo PUBLIC -O2 -g)
|
||||||
target_link_libraries(meminfo PUBLIC libc)
|
target_link_libraries(meminfo PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(meminfo-install
|
add_custom_target(meminfo-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/meminfo ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/meminfo ${BANAN_BIN}/
|
||||||
DEPENDS meminfo
|
DEPENDS meminfo
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(mkdir PUBLIC -O2 -g)
|
||||||
target_link_libraries(mkdir PUBLIC libc)
|
target_link_libraries(mkdir PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(mkdir-install
|
add_custom_target(mkdir-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/mkdir ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/mkdir ${BANAN_BIN}/
|
||||||
DEPENDS mkdir
|
DEPENDS mkdir
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(mmap-shared-test PUBLIC -O2 -g)
|
||||||
target_link_libraries(mmap-shared-test PUBLIC libc)
|
target_link_libraries(mmap-shared-test PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(mmap-shared-test-install
|
add_custom_target(mmap-shared-test-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/mmap-shared-test ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/mmap-shared-test ${BANAN_BIN}/
|
||||||
DEPENDS mmap-shared-test
|
DEPENDS mmap-shared-test
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(poweroff PUBLIC -O2 -g)
|
||||||
target_link_libraries(poweroff PUBLIC libc)
|
target_link_libraries(poweroff PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(poweroff-install
|
add_custom_target(poweroff-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/poweroff ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/poweroff ${BANAN_BIN}/
|
||||||
DEPENDS poweroff
|
DEPENDS poweroff
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(rm PUBLIC -O2 -g)
|
||||||
target_link_libraries(rm PUBLIC libc ban)
|
target_link_libraries(rm PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(rm-install
|
add_custom_target(rm-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/rm ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/rm ${BANAN_BIN}/
|
||||||
DEPENDS rm
|
DEPENDS rm
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(snake PUBLIC -O2 -g)
|
||||||
target_link_libraries(snake PUBLIC libc)
|
target_link_libraries(snake PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(snake-install
|
add_custom_target(snake-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/snake ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/snake ${BANAN_BIN}/
|
||||||
DEPENDS snake
|
DEPENDS snake
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(stat PUBLIC -O2 -g)
|
||||||
target_link_libraries(stat PUBLIC libc ban)
|
target_link_libraries(stat PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(stat-install
|
add_custom_target(stat-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/stat ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/stat ${BANAN_BIN}/
|
||||||
DEPENDS stat
|
DEPENDS stat
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(sync PUBLIC -O2 -g)
|
||||||
target_link_libraries(sync PUBLIC libc)
|
target_link_libraries(sync PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(sync-install
|
add_custom_target(sync-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/sync ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/sync ${BANAN_BIN}/
|
||||||
DEPENDS sync
|
DEPENDS sync
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(tee PUBLIC -O2 -g)
|
||||||
target_link_libraries(tee PUBLIC libc)
|
target_link_libraries(tee PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(tee-install
|
add_custom_target(tee-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/tee ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/tee ${BANAN_BIN}/
|
||||||
DEPENDS tee
|
DEPENDS tee
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(test-globals PUBLIC -O2 -g)
|
||||||
target_link_libraries(test-globals PUBLIC libc)
|
target_link_libraries(test-globals PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(test-globals-install
|
add_custom_target(test-globals-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/test-globals ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test-globals ${BANAN_BIN}/
|
||||||
DEPENDS test-globals
|
DEPENDS test-globals
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(test PUBLIC -O2 -g)
|
||||||
target_link_libraries(test PUBLIC libc)
|
target_link_libraries(test PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(test-install
|
add_custom_target(test-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/test ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test ${BANAN_BIN}/
|
||||||
DEPENDS test
|
DEPENDS test
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(touch PUBLIC -O2 -g)
|
||||||
target_link_libraries(touch PUBLIC libc)
|
target_link_libraries(touch PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(touch-install
|
add_custom_target(touch-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/touch ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/touch ${BANAN_BIN}/
|
||||||
DEPENDS touch
|
DEPENDS touch
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(u8sum PUBLIC -O2 -g)
|
||||||
target_link_libraries(u8sum PUBLIC libc)
|
target_link_libraries(u8sum PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(u8sum-install
|
add_custom_target(u8sum-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/u8sum ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/u8sum ${BANAN_BIN}/
|
||||||
DEPENDS u8sum
|
DEPENDS u8sum
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(whoami PUBLIC -O2 -g)
|
||||||
target_link_libraries(whoami PUBLIC libc ban)
|
target_link_libraries(whoami PUBLIC libc ban)
|
||||||
|
|
||||||
add_custom_target(whoami-install
|
add_custom_target(whoami-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/whoami ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/whoami ${BANAN_BIN}/
|
||||||
DEPENDS whoami
|
DEPENDS whoami
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(yes PUBLIC -O2 -g)
|
||||||
target_link_libraries(yes PUBLIC libc)
|
target_link_libraries(yes PUBLIC libc)
|
||||||
|
|
||||||
add_custom_target(yes-install
|
add_custom_target(yes-install
|
||||||
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/yes ${BANAN_BIN}/
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/yes ${BANAN_BIN}/
|
||||||
DEPENDS yes
|
DEPENDS yes
|
||||||
USES_TERMINAL
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue