Skip to content

Commit 5952820

Browse files
committed
first commit
0 parents  commit 5952820

File tree

12 files changed

+153
-0
lines changed

12 files changed

+153
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build/
2+
.idea/

CMakeLists.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
cmake_minimum_required(VERSION 3.25)
2+
3+
project(buildroot_ports C)
4+
5+
if (NOT CMAKE_C_COMPILER_ID STREQUAL "GNU")
6+
message(FATAL_ERROR "To build the toolchain, you'll need GCC on your machine")
7+
endif ()
8+
9+
set(CMAKE_C_STANDARD 11)
10+
11+
set(BUILDROOT_RELEASE "webos-71307ba")
12+
string(REGEX REPLACE ".*-" "" BUILDROOT_BUILD_ID "${BUILDROOT_RELEASE}")
13+
set(BUILDROOT_TRIPLE "arm-webos-linux-gnueabi")
14+
15+
set(BUILDROOT_PORT_PREFIX "${CMAKE_BINARY_DIR}/br-prefix")
16+
set(BUILDROOT_PORT_DOWNLOADS "${CMAKE_BINARY_DIR}/downloads")
17+
18+
set(GCC_MIRROR "http://ftp.tsukuba.wide.ad.jp/software/gcc")
19+
20+
if (NOT DEFINED CMAKE_C_COMPILER_TARGET)
21+
execute_process(COMMAND "${CMAKE_C_COMPILER}" "-v" ERROR_VARIABLE GCC_VERSION_INFO)
22+
string(REGEX REPLACE ".*Target: ([^\n]+).*" "\\1" CMAKE_C_COMPILER_TARGET "${GCC_VERSION_INFO}")
23+
endif ()
24+
25+
include(FetchContent)
26+
include(ExternalProject)
27+
28+
FetchContent_Declare(
29+
buildroot-nc4
30+
GIT_REPOSITORY "https://github.com/openlgtv/buildroot-nc4.git"
31+
GIT_TAG "${BUILDROOT_RELEASE}")
32+
33+
FetchContent_MakeAvailable(buildroot-nc4)
34+
35+
add_subdirectory(sysroot)
36+
add_subdirectory(package)
37+
add_subdirectory(toolchain)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# buildroot-nc4-ports

package/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function(br_get_var PATH VAR OUT_VAR)
2+
file(STRINGS "${buildroot-nc4_SOURCE_DIR}/${PATH}" FIND_LINE REGEX "^${VAR} = (.*)$")
3+
if (NOT FIND_LINE)
4+
unset(${OUT_VAR} PARENT_SCOPE)
5+
return()
6+
endif ()
7+
string(REGEX REPLACE "^${VAR} = (.*)$" "\\1" VAR_VALUE "${FIND_LINE}")
8+
set(${OUT_VAR} "${VAR_VALUE}" PARENT_SCOPE)
9+
endfunction()
10+
11+
include(ProcessorCount)
12+
ProcessorCount(NPROC)
13+
14+
add_subdirectory(gmp)
15+
add_subdirectory(mpfr)
16+
add_subdirectory(mpc)
17+
add_subdirectory(isl)
18+
add_subdirectory(binutils)
19+
add_subdirectory(gcc)

package/binutils/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
set(BINUTILS_VERSION 2.38)
2+
3+
set(PREFIX "${BUILDROOT_PORT_PREFIX}")
4+
set(SYSROOT "${PREFIX}/${BUILDROOT_TRIPLE}/sysroot")
5+
6+
ExternalProject_Add(binutils DEPENDS sysroot
7+
URL "https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.bz2"
8+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
9+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc --disable-multilib
10+
--disable-werror --target=${BUILDROOT_TRIPLE} --disable-shared --enable-static --with-sysroot=${SYSROOT}
11+
--enable-poison-system-directories --without-debuginfod --enable-plugins --enable-lto --disable-sim
12+
--disable-gdb --enable-gold --disable-gprofng
13+
BUILD_COMMAND make
14+
INSTALL_COMMAND make install)

package/gcc/CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
set(GCC_VERSION 12.2.0)
2+
3+
set(PREFIX "${BUILDROOT_PORT_PREFIX}")
4+
set(SYSROOT "${PREFIX}/${BUILDROOT_TRIPLE}/sysroot")
5+
6+
file(GLOB GCC_PATCHES "${buildroot-nc4_SOURCE_DIR}/package/gcc/12.2.0/*.patch")
7+
list(TRANSFORM GCC_PATCHES PREPEND "COMMAND;patch;-p1;<;" OUTPUT_VARIABLE GCC_PATCH_COMMANDS)
8+
9+
ExternalProject_Add(gcc DEPENDS binutils gmp mpc mpfr isl
10+
URL "${GCC_MIRROR}/releases/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.xz"
11+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
12+
PATCH_COMMAND ${GCC_PATCH_COMMANDS}
13+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc --enable-static
14+
--build=${CMAKE_C_COMPILER_TARGET} --target=${BUILDROOT_TRIPLE} --with-sysroot=${SYSROOT} --enable-__cxa_atexit
15+
--with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float --enable-plugins --enable-lto
16+
--with-gmp=${PREFIX} --with-mpc=${PREFIX} --with-mpfr=${PREFIX}
17+
"--with-pkgversion=Buildroot -g${BUILDROOT_BUILD_ID}" "--with-bugurl=http://bugs.buildroot.net"
18+
--without-zstd --disable-libquadmath --disable-libquadmath-support --enable-tls --enable-threads
19+
--with-isl=${PREFIX} --with-abi=aapcs-linux --with-cpu=cortex-a9 --with-fpu=neon-fp16 --with-float=softfp
20+
--with-mode=arm --enable-languages=c,c++ --with-build-time-tools=${PREFIX}/arm-webos-linux-gnueabi/bin
21+
--enable-shared --disable-libgomp
22+
BUILD_COMMAND make -j${NPROC}
23+
INSTALL_COMMAND make install)

package/gmp/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
br_get_var("package/gmp/gmp.mk" GMP_VERSION GMP_VERSION)
2+
3+
set(PREFIX ${BUILDROOT_PORT_PREFIX})
4+
5+
ExternalProject_Add(gmp
6+
URL "${GCC_MIRROR}/infrastructure/gmp-${GMP_VERSION}.tar.bz2"
7+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
8+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc
9+
BUILD_COMMAND make -j${NPROC}
10+
INSTALL_COMMAND make install)

package/isl/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
set(ISL_VERSION 0.24)
2+
3+
set(PREFIX ${BUILDROOT_PORT_PREFIX})
4+
5+
ExternalProject_Add(isl DEPENDS gmp
6+
URL "${GCC_MIRROR}/infrastructure/isl-${ISL_VERSION}.tar.bz2"
7+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
8+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc --with-gmp=${PREFIX}
9+
BUILD_COMMAND make -j${NPROC}
10+
INSTALL_COMMAND make install)

package/mpc/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
br_get_var("package/mpc/mpc.mk" MPC_VERSION MPC_VERSION)
2+
3+
set(PREFIX ${BUILDROOT_PORT_PREFIX})
4+
5+
ExternalProject_Add(mpc DEPENDS gmp mpfr
6+
URL "${GCC_MIRROR}/infrastructure/mpc-${MPC_VERSION}.tar.gz"
7+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
8+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc --with-gmp=${PREFIX}
9+
BUILD_COMMAND make -j${NPROC}
10+
INSTALL_COMMAND make install)

package/mpfr/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
br_get_var("package/mpfr/mpfr.mk" MPFR_VERSION MPFR_VERSION)
2+
3+
set(PREFIX ${BUILDROOT_PORT_PREFIX})
4+
5+
ExternalProject_Add(mpfr DEPENDS gmp
6+
URL "${GCC_MIRROR}/infrastructure/mpfr-${MPFR_VERSION}.tar.bz2"
7+
DOWNLOAD_EXTRACT_TIMESTAMP FALSE
8+
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${PREFIX} --sysconfdir=${PREFIX}/etc --with-gmp=${PREFIX}
9+
BUILD_COMMAND make -j${NPROC}
10+
INSTALL_COMMAND make install)

0 commit comments

Comments
 (0)