# 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 /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 /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 kos-app-ldscript) # Copy kos-app.lds add_custom_target(kos-app-ldscript COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/kos-app.lds" "${KOS_SDK_DIR}/i586-kolibrios/lib/" COMMENT "Copy KolibriOS executable linker script" )