Make: *** No rule to make target 'distclean'. Stop

I am following procedure of U-boot Customization for creating u-boot.when i run command “make distclean” error arises like :

make: *** No rule to make target ‘distclean’. Stop.

All commands related to make are not working.
what should i do to resolve it and why it is important?

Ahh… I’m not familiar withe the U-boot customization but I can tell you a few things. The distclean make target is a standard target that emerges from using the autotools (autoconf, automake). Make distclean is going to delete all the built files and return the directory to a state where you would need to run the autotools chain again. This assumes that the thing you’re looking at really did come from the autotools packaging stuff. It’s also possible that someone just named their make target distclean – in which case, all that i’ve said is moot.

If it is autotools, I’d expect you would see configure.ac and Makefile.am files. If so, you can try autoreconf with no arguments and see what happens. (You would not see a Makefile or configure script since distclean deliberately gets rid of those.

But it seems pretty strange to me that U-boot would expect you to rebuild a package. Though I’ve seen stranger.

Hello,

Which software release are you using? Want to see if I can hit same problem.

Actually, in the below provided link procedure it is written that after source syncing go to the u-boot source tree folder and run following set of command of make but i am facing problem in first make command. Also, i don’t see Makefile in any of my u-boot or sources directory.

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fuboot_guide.html%23

I am using L4T of 32.5 version and toolchain of latest version.

I have downloaded the l4t driver package, extracted it. then i downloaded sample root file system and extracted it in /Linux_For_Tegra/roots directory. Toolchain i have used is linaro toolchain.
After that i have performed the steps given in the below link. But u-boot directory seems empty after performing the step git clone -n git://nv-tegra.nvidia.com/3rdparty/u-boot.git. thus make command is not working.
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fuboot_guide.html%23

Please tell me where i m going wrong?

my browser didn’t take me to the make commands exactly, but i’m guessing you mean these:

make distclean make <board_and_rev>_defconfig
$ make

the autotools will expect Makefile.am (not .in) and will write the
Makefile.in – BUT THAT’S PROBABLY A MOOT POINT.
more and more i’m convinced that this is NOT an autotools
package because after the distclean, you would have to do
something like this:

libtoolize
aclocal -I /usr/share/aclocal -I . -I m4
autoconf
automake --foreign --add-missing
configure
make
PLUS, and likely even more to the point, the autotools
distclean target would delete the Makefile (no extension)
so the 2nd make up there would fail completely.

SO I’M PRETTY SURE ALL OF MY ORIGINAL REMARKS ARE NOT
RELEVANT to your problem. sorry. i saw “distclean” and
then guessed wrong.
I’m still puzzled that you mentioned Makefile.in, though, that still
suggests somebody used the autotools somewhere.

i’m useless. sorry for wasting your time.

j.

@WayneWWW hello
i have mentioned all the steps i have done. Can you help me in this, why make is not working and makefile is not formed.

I don’t know about the specific case, but in general what you will find is that the kernel source is actually a set of sources. You’ll find it is organized like this:

sources
├── hardware
│   └── nvidia
└── kernel
    ├── kernel-4.9
    ├── nvgpu
    └── nvidia

…where “kernel/kernel-4.9/” is the kernel source, and when building a kernel with certain configurations, it will use relative paths to find the other content, e.g., to find “hardware/nvidia/”. I know the distclean target works for kernel source, thus you can make distclean at:
sources/kernel/kernel-4.9/

Perhaps other directories also have this, but I think you might first try from the kernel source and and then configure the kernel to match what you are looking for. Following this, then go to the bootloader tree and see if that configuration makes any difference (it might not help, but it is worth a try).