On Tue, May 28, 2019 at 9:12 PM Christoph Hellwig <hch@xxxxxx> wrote: > > A few kernel modules have source files in multiple subdirectories. > Trying to build just a single object of a source file in such a > subdirectory currently doesn't work. > > For example: > > hch@brick:~/work/xfs$ make fs/xfs/libxfs/xfs_alloc.o > CALL scripts/checksyscalls.sh > CALL scripts/atomic/check-atomics.sh > DESCEND objtool > scripts/Makefile.build:42: fs/xfs/libxfs/Makefile: No such file or directory > make[1]: *** No rule to make target 'fs/xfs/libxfs/Makefile'. Stop. > make: *** [Makefile:1747: fs/xfs/libxfs/xfs_alloc.o] Error 2 > > Is there any reasonably easy way to get this to work? While single targets are useful, they never work correctly. subdir-ccflags-y from upper Makefiles are not inherited. I want to implement single targets correctly, but I have never got around to it. "make fs/xfs/" is an alternative solution although it will compile much more than you want. Another solution is to put a dummy fs/xfs/libxfs/Makefile -- Best Regards Masahiro Yamada