82 lines
2.2 KiB
CMake
82 lines
2.2 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 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"
|
|
)
|