shashlik / shashlik-build

175 stars 20 forks source link

make: *** No rule to make target 'bootstrap.bash', needed by 'out/soong/.soong.bootstrap'. Stop. #19

Open rafaelsoaresbr opened 8 years ago

rafaelsoaresbr commented 8 years ago

Hello guys, trying to build Shashlik on Arch Linux with this commands: $ repo init -u https://github.com/shashlik/shashlik-manifest $ repo sync $ source build/envsetup.sh $ make and got the following error:

repo has been initialized in /var/cache/makepkg/gitlab-ci/tmp/shashlik/src

including device/asus/deb/vendorsetup.sh including device/asus/flo/vendorsetup.sh including device/asus/fugu/vendorsetup.sh including device/htc/flounder/vendorsetup.sh including device/lge/hammerhead/vendorsetup.sh including device/moto/shamu/vendorsetup.sh

including sdk/bash_completion/adb.bash

PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=6.0.1 TARGET_PRODUCT=aosp_arm TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a TARGET_CPU_VARIANT=generic TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 HOST_2ND_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-4.4.5-1-ARCH-x86_64-with-arch HOST_CROSS_OS=windows HOST_CROSS_ARCH=x86 HOST_CROSS_2ND_ARCH=x86_64 HOST_BUILD_TYPE=release BUILD_ID=MASTER

OUT_DIR=out

make: *\ No rule to make target 'bootstrap.bash', needed by 'out/soong/.soong.bootstrap'. Stop.

mdeguzis commented 8 years ago

Same issue here, see latest comments at http://www.shashlik.io/what-is/. You're not alone. That piece of code is in build/core/soong.mk

If you run git remote show you'll see the branch in the build/core folder is "aosp." Then, git remote show aosp will show that this code comes from "https://android.googlesource.com/platform/build".

Here is the debug log / verbose output from make -nd (dry run debug). Maybe some clues in there possibly.

In the master branch, bootstrap.bash can be found at this code path

The main chunk appears to be this:

Updating goal targets....
Considering target file 'droid'.
 File 'droid' does not exist.
  Considering target file 'ninja_wrapper'.
   File 'ninja_wrapper' does not exist.
    Considering target file 'out/build-aosp_arm.ninja'.
     File 'out/build-aosp_arm.ninja' does not exist.
      Considering target file 'prebuilts/sdk/tools/linux/bin/ckati'.
       Looking for an implicit rule for 'prebuilts/sdk/tools/linux/bin/ckati'.
       No implicit rule found for 'prebuilts/sdk/tools/linux/bin/ckati'.
       Finished prerequisites of target file 'prebuilts/sdk/tools/linux/bin/ckati'.
      No need to remake target 'prebuilts/sdk/tools/linux/bin/ckati'.
      Considering target file 'prebuilts/sdk/tools/linux/bin/makeparallel'.
       Looking for an implicit rule for 'prebuilts/sdk/tools/linux/bin/makeparallel'.
       No implicit rule found for 'prebuilts/sdk/tools/linux/bin/makeparallel'.
       Finished prerequisites of target file 'prebuilts/sdk/tools/linux/bin/makeparallel'.
      No need to remake target 'prebuilts/sdk/tools/linux/bin/makeparallel'.
      Considering target file 'out/Android.mk'.
       Finished prerequisites of target file 'out/Android.mk'.
      No need to remake target 'out/Android.mk'.
      Considering target file 'out/CleanSpec.mk'.
       Finished prerequisites of target file 'out/CleanSpec.mk'.
      No need to remake target 'out/CleanSpec.mk'.
      Considering target file 'run_soong'.
       File 'run_soong' does not exist.
        Considering target file 'out/soong/.soong.bootstrap'.
         File 'out/soong/.soong.bootstrap' does not exist.
          Considering target file 'bootstrap.bash'.
           File 'bootstrap.bash' does not exist.
           Looking for an implicit rule for 'bootstrap.bash'.
           No implicit rule found for 'bootstrap.bash'.
           Finished prerequisites of target file 'bootstrap.bash'.
          Must remake target 'bootstrap.bash'.
Thaodan commented 8 years ago

Maybe the buiid settings are enterly wrong? I thought Android should be build for x86 not for ARM.

EDIT: I've think I got it. Try to clone this repo in the build dir and replace it with the old build dir in the repo.

xiaokc commented 8 years ago

@ProfessorKaos64 @rafaelsoaresbr Hey, did you solve this problem? I am building brillo OS, and I meet this error too. make: *\ No rule to make target bootstrap.bash', needed byout/soong/.soong.bootstrap'. Stop.` Could you please share your solution or some tips? Thank you very much. :)

mdeguzis commented 8 years ago

@xiaokc I haven't, no. I am have been busy with other things, but perhaps I could look more this week. This doesn't seem to have been reviewed by a dev yet.

Harpik commented 8 years ago

this is not a complete solution, but helps a bit: from source root dir git clone https://android.googlesource.com/platform/build/soong build/soong git clone https://android.googlesource.com/platform/build/blueprint/ build/blueprint/ git clone https://android.googlesource.com/platform/prebuilts/go/linux-x86 prebuilts/go/linux-x86 ln -s build/soong/bootstrap.bash

But it complains about missing Android.bp and if you link build/soong/Android.bp, starts complaining about some more directories. Edit: ln -s build/soong/root.bp Android.bp <- does the trick Edit2: keeps complaining about missing dependencies: libunwind_llvm libcrypto liblz4 libgoogle-benchmark libgmock libselinux ...