BuildSystem: Install base sysroot only once

Base sysroot is not only installed when creating the syroot directory
for the first time. To get it installed again, you have to either delete
the old sysroot diretory or run clean target

This makes it so its actually possible to edit files specified in the
base sysroot without random hacks.
This commit is contained in:
Bananymous 2024-12-10 16:44:59 +02:00
parent 8b612ba547
commit 581caff638
3 changed files with 8 additions and 8 deletions

View File

@ -6,8 +6,6 @@ endif ()
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_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)
@ -57,8 +55,3 @@ add_subdirectory(kernel)
add_subdirectory(bootloader) add_subdirectory(bootloader)
add_subdirectory(BAN) add_subdirectory(BAN)
add_subdirectory(userspace) add_subdirectory(userspace)
add_custom_target(sysroot
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT}
COMMAND cd ${BANAN_SYSROOT} && tar xf ${BANAN_BASE_SYSROOT}
)

View File

@ -66,6 +66,14 @@ run_bochs () {
$BANAN_SCRIPT_DIR/bochs.sh $@ $BANAN_SCRIPT_DIR/bochs.sh $@
} }
if [ ! -d $BANAN_SYSROOT ]; then
mkdir -p $BANAN_SYSROOT
pushd $BANAN_SYSROOT
run_fakeroot tar xf ${BANAN_ROOT_DIR}/base-sysroot.tar.gz
popd
fi
if [ -v QEMU_ACCEL ]; then if [ -v QEMU_ACCEL ]; then
: :
elif type kvm-ok &> /dev/null; then elif type kvm-ok &> /dev/null; then

View File

@ -58,7 +58,6 @@ target_compile_options(objlibc PUBLIC -Wall -Wextra -Werror -Wno-error=stack-usa
function(add_crtx crtx) function(add_crtx crtx)
add_custom_target(${crtx} add_custom_target(${crtx}
COMMAND ${CMAKE_CXX_COMPILER} -c -o ${CMAKE_INSTALL_LIBDIR}/${crtx}.o ${CMAKE_CURRENT_SOURCE_DIR}/arch/${BANAN_ARCH}/${crtx}.S COMMAND ${CMAKE_CXX_COMPILER} -c -o ${CMAKE_INSTALL_LIBDIR}/${crtx}.o ${CMAKE_CURRENT_SOURCE_DIR}/arch/${BANAN_ARCH}/${crtx}.S
DEPENDS sysroot
) )
add_dependencies(objlibc ${crtx}) add_dependencies(objlibc ${crtx})
endfunction() endfunction()