libecj-bootstrap-native: simplify build
PATCH 1/1 libecj-bootstrap-native: simplify build
From: André Draszik <[email protected]>
Piping 'find' output into multiple files to re-read them seems inelegant and is error prone - just use a pipe with appropriate options instead.
This avoids potential problems with funny file names, and now also makes use of BB_NUMBER_THREADS to speed up compilation.
This is a better example to copy from now...
--- recipes-core/ecj/libecj-bootstrap.inc | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)
recipes-core/ecj/libecj-bootstrap.inc +7 -18
@@ -17,13 +17,8 @@ JAR = "ecj-bootstrap-${PV}.jar" do_unpackpost[dirs] = "${B}" do_unpackpost() { - if [ ! -d source ]; then - mkdir source - fi - - if [ ! -d build ]; then - mkdir build - fi + mkdir -p source + mkdir -p build # Remove crap. rm -f about.html build.xml
@@ -44,24 +39,18 @@ do_unpackpost() { cp -R source/org build/ # Remove source code and other stuff. - find build -name '*.java' -exec rm -f {} \; - find build -name '*.html' -exec rm -f {} \; + find build -depth \( -name '*.java' -o -name '*.html' \) -delete } addtask unpackpost after do_unpack before do_patch do_compile() { - find source -name '*.java' | LC_ALL=C sort > sourcefiles - split -l 25 sourcefiles ecj-sources. - # Compiling in place is done because the sources contain # property files which need to be available at runtime. - for list in `find . -name 'ecj-sources.*'`; do - echo "building files in $list ..."; - echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; - jikes-initial \ - -d build -source 1.4 -sourcepath source `cat $list`; - done + find source -name '*.java' -print0 \ + | LC_ALL=C sort -z \ + | xargs -0 -n25 -P ${BB_NUMBER_THREADS} \ + jikes-initial -d build -source 1.4 -sourcepath source fastjar -c -C build . -f ${JAR} }
Signature · 1 line
2.16.2
Quoted 6 lines · André Draszik
From: André Draszik <[email protected]>
Piping 'find' output into multiple files to re-read them seems inelegant and is error prone - just use a pipe with appropriate options instead.
Quoted 7 lines
This avoids potential problems with funny file names, and now also makes use of
BB_NUMBER_THREADSto speed up compilation.This is a better example to copy from now...
Signed-off-by André Draszik <[email protected]>
Quoted 55 lines
--- recipes-core/ecj/libecj-bootstrap.inc | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)recipes-core/ecj/libecj-bootstrap.inc +7
-18@@ -17,13 +17,8 @@ JAR = "ecj-bootstrap-${PV}.jar" do_unpackpost[dirs] = "${B}" do_unpackpost() { - if [ ! -d source ]; then - mkdir source - fi - - if [ ! -d build ]; then - mkdir build - fi + mkdir -p source + mkdir -p build # Remove crap. rm -f about.html build.xml@@ -44,24 +39,18 @@ do_unpackpost() { cp -R source/org build/ # Remove source code and other stuff. - find build -name '*.java' -exec rm -f {} \; - find build -name '*.html' -exec rm -f {} \; + find build -depth \( -name '*.java' -o -name '*.html' \) -delete } addtask unpackpost after do_unpack before do_patch do_compile() { - find source -name '*.java' | LC_ALL=C sort > sourcefiles - split -l 25 sourcefiles ecj-sources. - # Compiling in place is done because the sources contain # property files which need to be available at runtime. - for list in `find . -name 'ecj-sources.*'`; do - echo "building files in $list ..."; - echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; - jikes-initial \ - -d build -source 1.4 -sourcepath source `cat $list`; - done + find source -name '*.java' -print0 \ + | LC_ALL=C sort -z \ + | xargs -0 -n25 -P ${BB_NUMBER_THREADS} \ + jikes-initial -d build -source 1.4 -sourcepath source fastjar -c -C build . -f ${JAR} }
Hi,
this is a note to let you know that I've just added this patch to the master-next branch of the meta-java repository at
git://git.yoctoproject.org/meta-java
As soon as it has gone through some more testing it will likely be merged to the master branch.
If you have any questions, please let me know.
regards;Richard.L
Quoted 68 lines · André Draszik
From: André Draszik <[email protected]>
Piping 'find' output into multiple files to re-read them seems inelegant and is error prone - just use a pipe with appropriate options instead.
This avoids potential problems with funny file names, and now also makes use of
BB_NUMBER_THREADSto speed up compilation.This is a better example to copy from now...
Signed-off-by André Draszik <[email protected]>--- recipes-core/ecj/libecj-bootstrap.inc | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)recipes-core/ecj/libecj-bootstrap.inc +7
-18@@ -17,13 +17,8 @@ JAR = "ecj-bootstrap-${PV}.jar" do_unpackpost[dirs] = "${B}" do_unpackpost() { - if [ ! -d source ]; then - mkdir source - fi - - if [ ! -d build ]; then - mkdir build - fi + mkdir -p source + mkdir -p build # Remove crap. rm -f about.html build.xml@@ -44,24 +39,18 @@ do_unpackpost() { cp -R source/org build/ # Remove source code and other stuff. - find build -name '*.java' -exec rm -f {} \; - find build -name '*.html' -exec rm -f {} \; + find build -depth \( -name '*.java' -o -name '*.html' \) -delete } addtask unpackpost after do_unpack before do_patch do_compile() { - find source -name '*.java' | LC_ALL=C sort > sourcefiles - split -l 25 sourcefiles ecj-sources. - # Compiling in place is done because the sources contain # property files which need to be available at runtime. - for list in `find . -name 'ecj-sources.*'`; do - echo "building files in $list ..."; - echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; - jikes-initial \ - -d build -source 1.4 -sourcepath source `cat $list`; - done + find source -name '*.java' -print0 \ + | LC_ALL=C sort -z \ + | xargs -0 -n25 -P ${BB_NUMBER_THREADS} \ + jikes-initial -d build -source 1.4 -sourcepath source fastjar -c -C build . -f ${JAR} }