diff options
Diffstat (limited to 'tools/rockboxdev.sh')
-rwxr-xr-x | tools/rockboxdev.sh | 49 |
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 | |||
51 | fi | 51 | fi |
52 | 52 | ||
53 | # These are the tools this script requires and depends upon. | 53 | # These are the tools this script requires and depends upon. |
54 | reqtools="gcc g++ bzip2 gzip make patch makeinfo automake libtool autoconf flex bison" | 54 | reqtools="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 | ||
391 | build() { | 404 | build() { |
@@ -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 | ||