skip to Main Content

I’m trying to run Buildroot in an Azue pipeline and have a problem. I’m executing a Bash task in a Ubuntu-22.04 image with the commands:

make my_defconfig
make

the command I would normally use to run my build. When the are executed inside a pipeline, the first command fails:

make my_defconfig
make: *** No rule to make target '/home/vsts/work/1/s/output/.br-external.mk'.  Stop.

and the following make command dies. I have verified that my commands are being run from the right directory (the root directory for my Buildroot files).

I added "ls" and a "find" commands to my pipeline script and that file is definitely nowhere to be found in my Buildroot tree when my Pipeline job runs. It is also no present in my Buildroot tree when I first clone my Buildroot tree from my git repository. It IS there after I run make my_defconfig.

Does anyone know why this is happening?

2

Answers


  1. Chosen as BEST ANSWER

    So after hitting this problem with a hammer many times, I finally found the solution. I added the following two command to my pipeline script before my make my_defconfig, executed from the Buildroot root directory:

    mkdir output
    touch output/.br-external.mk
    

    After that, things started working


  2. You can try to check with the following things to fix the issue:

    1. Ensure the ‘.br-external.mk‘ file is existing under the working directory. If it is a legacy file used before but no longer needed now, remove it from the makefile.

    2. Check whether the ‘.br-external.mk‘ file is in the subdirectories of the working directory. If so, update the makefile using the correct relative path of this file (relative/path/to/.br-external.mk), instead of only providing the file name (.br-external.mk).

    3. Ensure you are in the correct working directory to run the make command as mentioned above.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search