make[1]: Entering directory '/home/portage/media-libs/libsidplay-2.1.1-r4/work/sidplay-libs-2.1.1-abi_x86_32.x86/libsidplay' make[1]: *** No rule to make target 'all'. Stop. Correct, that file is empty. In fact all but the top level Makefiles in each of the ABI specific directories are empty.
Created attachment 461868 [details] media-libs:libsidplay-2.1.1-r4:20170129-221009.log config.status: creating src/xsid/Makefile sed: file ./confstatdMPKmA/subs-1.sed line 29: unterminated `s' command config.status: creating unix/Makefile sed: file ./confstatdMPKmA/subs-1.sed line 29: unterminated `s' command config.status: creating unix/libsidplay2.spec sed: file ./confstatdMPKmA/subs-1.sed line 29: unterminated `s' command config.status: creating unix/libsidplay2.qpg sed: file ./confstatdMPKmA/subs-1.sed line 29: unterminated `s' command That's interesting. [ebuild N ] media-libs/libsidplay-2.1.1-r4:2::gentoo USE="-static-libs" ABI_X86="32 (64) (-x32)" 0 KiB
I hit this while doing the post-gcc-upgrade revdep-rebuild, and discovered that I only hit the bug when /bin/sh is set to dash. After setting it to bash the merge completed successfully. One difference in my case, though, was that the amd64 Makefile wasn't empty, but "all" called the target "all-recursive", which didn't exist. Specifically, the error message was: >>> Compiling source in /var/tmp/portage/media-libs/libsidplay-2.1.1-r4/work/sidplay-libs-2.1.1 ... * abi_x86_64.amd64: running multilib-minimal_abi_src_compile make -s -j4 -l4 Making all in libsidplay make[1]: *** No rule to make target 'all'. Stop. make: *** [Makefile:181: all-recursive] Error 1
Created attachment 475104 [details, diff] patch to allow building with dash as /bin/sh I encountered this issue as well and found that a simple sed -i 's/\/bin\/sh/\/bin\/bash/' configure was sufficient to fix the issue. I suggest that this line be added to src_prepare() in the ebuild. In the meantime, to avoid manually editing the ebuild, I've created a patch (attached) which can be placed in /etc/portage/patches to accomplish the same task.