summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/rockboxdev.sh49
1 files changed, 39 insertions, 10 deletions
diff --git a/tools/rockboxdev.sh b/tools/rockboxdev.sh
index f5283f9c90..b4f5832e97 100755
--- a/tools/rockboxdev.sh
+++ b/tools/rockboxdev.sh
@@ -51,7 +51,7 @@ if [ -z $LINUX_MIRROR ] ; then
51fi 51fi
52 52
53# These are the tools this script requires and depends upon. 53# These are the tools this script requires and depends upon.
54reqtools="gcc g++ bzip2 gzip make patch makeinfo automake libtool autoconf flex bison" 54reqtools="gcc g++ xz bzip2 gzip make patch makeinfo automake libtool autoconf flex bison"
55 55
56############################################################################## 56##############################################################################
57# Functions: 57# Functions:
@@ -179,14 +179,23 @@ gettool() {
179 srv_file="gcc-core-$version" 179 srv_file="gcc-core-$version"
180 fi 180 fi
181 url="$GNU_MIRROR/gcc/gcc-$version" 181 url="$GNU_MIRROR/gcc/gcc-$version"
182 if ! version_lt "$version" "7.2"; then
183 ext="tar.xz"
184 fi
182 ;; 185 ;;
183 186
184 binutils) 187 binutils)
185 url="$GNU_MIRROR/binutils" 188 url="$GNU_MIRROR/binutils"
189 if ! version_lt "$version" "2.28.1"; then
190 ext="tar.xz"
191 fi
186 ;; 192 ;;
187 193
188 glibc) 194 glibc)
189 url="$GNU_MIRROR/glibc" 195 url="$GNU_MIRROR/glibc"
196 if ! version_lt "$version" "2.11"; then
197 ext="tar.xz"
198 fi
190 ;; 199 ;;
191 200
192 alsa-lib) 201 alsa-lib)
@@ -281,7 +290,7 @@ run_cmd() {
281 echo "Running '$@'" >>$logfile 290 echo "Running '$@'" >>$logfile
282 if ! $@ >> "$logfile" 2>&1; then 291 if ! $@ >> "$logfile" 2>&1; then
283 echo "ROCKBOXDEV: an error occured, please see $logfile" 292 echo "ROCKBOXDEV: an error occured, please see $logfile"
284 exit 293 exit 1
285 fi 294 fi
286} 295}
287 296
@@ -332,8 +341,7 @@ buildtool() {
332 echo "ROCKBOXDEV: mkdir build-$toolname" 341 echo "ROCKBOXDEV: mkdir build-$toolname"
333 mkdir "build-$toolname" 342 mkdir "build-$toolname"
334 343
335 echo "ROCKBOXDEV: cd build-$toolname" 344 cd build-$toolname
336 cd "build-$toolname"
337 345
338 # in-tree/out-of-tree build 346 # in-tree/out-of-tree build
339 case "$tool" in 347 case "$tool" in
@@ -383,9 +391,14 @@ buildtool() {
383 echo "ROCKBOXDEV: $toolname/make (install)" 391 echo "ROCKBOXDEV: $toolname/make (install)"
384 run_cmd "$logfile" $make $install_opts 392 run_cmd "$logfile" $make $install_opts
385 393
386 echo "ROCKBOXDEV: rm -rf build-$toolname $toolname"
387 cd .. 394 cd ..
395
396 echo "ROCKBOXDEV: rm -rf build-$toolname $toolname"
388 rm -rf build-$toolname 397 rm -rf build-$toolname
398 if [ "$stepname" != "gcc-stage1" ] ; then
399 echo "ROCKBOXDEV: rm -rf $toolname"
400 rm -rf $toolname
401 fi
389} 402}
390 403
391build() { 404build() {
@@ -395,6 +408,14 @@ build() {
395 patch="$4" 408 patch="$4"
396 configure_params="$5" 409 configure_params="$5"
397 needs_libs="$6" 410 needs_libs="$6"
411 logfile="$builddir/build-$toolname.log"
412
413 stepname=${RESTART_STEP:-$toolname}
414 if ! check_restart "$stepname"; then
415 echo "ROCKBOXDEV: Skipping step '$stepname' as requested per RBDEV_RESTART"
416 return
417 fi
418 echo "ROCKBOXDEV: Starting step '$stepname'"
398 419
399 # create build directory 420 # create build directory
400 if test -d $builddir; then 421 if test -d $builddir; then
@@ -463,23 +484,31 @@ build() {
463 cd $builddir 484 cd $builddir
464 fi 485 fi
465 486
487 # GCC is special
488 if [ "$toolname" == "gcc" ] ; then
489 configure_params="--enable-languages=c --disable-libssp $configure_params"
490 fi
491
492 echo "ROCKBOXDEV: logging to $logfile"
493 rm -f "$logfile"
494
466 echo "ROCKBOXDEV: mkdir build-$toolname" 495 echo "ROCKBOXDEV: mkdir build-$toolname"
467 mkdir build-$toolname 496 mkdir build-$toolname
468 497
469 echo "ROCKBOXDEV: cd build-$toolname"
470 cd build-$toolname 498 cd build-$toolname
471 499
472 echo "ROCKBOXDEV: $toolname/configure" 500 echo "ROCKBOXDEV: $toolname/configure"
473 CFLAGS='-U_FORTIFY_SOURCE -fgnu89-inline -fcommon' CXXFLAGS='-std=gnu++03' ../$toolname-$version/configure --target=$target --prefix=$prefix --enable-languages=c --disable-libssp --disable-docs $configure_params 501 CFLAGS='-U_FORTIFY_SOURCE -fgnu89-inline -fcommon -O2' CXXFLAGS='-std=gnu++03' run_cmd "$logfile" ../$toolname-$version/configure --target=$target --prefix=$prefix --disable-docs $configure_params
474 502
475 echo "ROCKBOXDEV: $toolname/make" 503 echo "ROCKBOXDEV: $toolname/make"
476 $make $make_parallel 504 run_cmd "$logfile" $make $make_parallel
477 505
478 echo "ROCKBOXDEV: $toolname/make install" 506 echo "ROCKBOXDEV: $toolname/make install"
479 $make install 507 run_cmd "$logfile" $make install
480 508
481 echo "ROCKBOXDEV: rm -rf build-$toolname $toolname-$version"
482 cd .. 509 cd ..
510
511 echo "ROCKBOXDEV: rm -rf build-$toolname $toolname-$version"
483 rm -rf build-$toolname $toolname-$version 512 rm -rf build-$toolname $toolname-$version
484} 513}
485 514