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
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:After that, things started working
You can try to check with the following things to fix the issue:
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.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
).Ensure you are in the correct working directory to run the
make
command as mentioned above.