Files
ports/toolchain/CMakeLists.txt
Max Logaev 4d8e694c2e toolchain: Added autoconf-2.69 and automake-1.15.1
Environment variables changed:
- KOS_SDK_DIR to install libraries
- KOS_PORTS_DIR for ported applications to KolibriOS

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-12-24 17:25:22 +03:00

80 lines
2.1 KiB
CMake

# Rules for building the i586-kolibrios-gcc toolchain
# Autoconf
set(AUTOCONF_VER 2.69)
ExternalProject_Add(
autoconf
URL https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VER}.tar.gz
URL_HASH SHA256=954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${KOS_SDK_DIR}
BUILD_COMMAND make
INSTALL_COMMAND make install
)
# Automake
set(AUTOMAKE_VER 1.15.1)
ExternalProject_Add(
automake
CONFIGURE_COMMAND
URL https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VER}.tar.gz
URL_HASH SHA256=988e32527abe052307d21c8ca000aa238b914df363a617e38f4fb89f5abf6260
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/automake/add-kolibrios.diff
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${KOS_SDK_DIR}
BUILD_COMMAND make -j${JOBS}
INSTALL_COMMAND make install
)
# 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=${KOS_SDK_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=${KOS_SDK_DIR}/i586-kolibrios
--prefix=${KOS_SDK_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 newlib-headers)
# Copy kos-app.lds
file(
COPY "${CMAKE_CURRENT_SOURCE_DIR}/kos-app.lds"
DESTINATION "${KOS_SDK_DIR}/i586-kolibrios/lib/"
)