files
ports/toolchain/CMakeLists.txt
2025-03-23 17:15:53 +03:00

60 lines
1.5 KiB
CMake

# Rules for building the i586-kolibrios-gcc toolchain
# Binutils
set(BINUTILS_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/binutils)
ExternalProject_Add(
binutils
SOURCE_DIR ${BINUTILS_SRC_DIR}
CONFIGURE_COMMAND
${BINUTILS_SRC_DIR}/configure
--target=i586-kolibrios
--prefix=${SDK_TOOLCHAIN_DIR}
--with-sysroot=${SDK_SYSROOT_DIR}
--disable-werror
--disable-nls
--disable-intl
--disable-sim
--disable-gdb
--enable-shared
BUILD_COMMAND make -j${JOBS}
INSTALL_COMMAND make install-strip
)
# GCC
set(GCC_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gcc)
ExternalProject_Add(
gcc
SOURCE_DIR ${GCC_SRC_DIR}
CONFIGURE_COMMAND
${GCC_SRC_DIR}/configure
--target=i586-kolibrios
--with-sysroot=${SDK_SYSROOT_DIR}
--prefix=${SDK_TOOLCHAIN_DIR}
--disable-multilib
--disable-nls
--enable-shared
--enable-languages=c
BUILD_COMMAND
make -j${JOBS} all-gcc all-target-libgcc
INSTALL_COMMAND
make install-strip-gcc install-target-libgcc
DEPENDS
binutils
)
add_dependencies(gcc copy-newlib-headers)
# Copy kos-app.lds
add_custom_target(copy-kos-app-lds
COMMAND
${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_SOURCE_DIR}/kos-app.lds"
"${SDK_TOOLCHAIN_DIR}/i586-kolibrios/lib/"
)
# Toolchain
add_custom_target(toolchain)
add_dependencies(toolchain gcc copy-kos-app-lds kos-crt-stub)