Version: (using KDE KDE 3.3.1) Installed from: Gentoo Packages OS: Linux The smoke/qt, smoke/kde Makefile.ams are missing rules that say all the x_*.cpp files depend on smokedata.cpp. Thus, make -jN where N>=2 fails like this: Making all in kde make[3]: Entering directory `/var/tmp/portage/smoke-3.3.1/work/smoke-3.3.1/smoke/kde' perl generate.pl make[3]: *** No rule to make target `x_1.cpp', needed by `x_1.lo'. Stop. make[3]: *** Waiting for unfinished jobs.... Found 'qtdefines'. Reading preprocessor symbols from there... kalyptus: processing /usr/qt/3/include/qhttp.h Patch in next comment...
Created attachment 8089 [details] parallel-make.diff Manually adds the missing targets. I'm not an (auto)make guy, so there may be a way to do this with one line per file. I'm going to use this in the gentoo ebuild.
Dan, you can get by by using something like this instead: libsmokeqt_la_COMPILE_FIRST = smokedata.cpp
CVS commit by ctennis: Parallel make compilation fix CCMAIL:92362-done@bugs.kde.org M +2 -0 Makefile.am 1.20 --- kdebindings/smoke/qt/Makefile.am #1.19:1.20 @@ -17,4 +17,6 @@ x_16.cpp x_17.cpp x_18.cpp x_19.cpp x_20.cpp +libsmokeqt_la_COMPILE_FIRST = smokedata.cpp + smokedata.cpp: perl generate.pl
Doesn't work for me in beta2. make -j2 consistently fails like this: ================================== ake all-recursive make[1]: Entering directory `/var/tmp/portage/smoke-3.4.0_beta2/work/smoke-3.4.0_beta2' Making all in kalyptus make[2]: Entering directory `/var/tmp/portage/smoke-3.4.0_beta2/work/smoke-3.4.0_beta2/kalyptus' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/var/tmp/portage/smoke-3.4.0_beta2/work/smoke-3.4.0_beta2/kalyptus' Making all in smoke make[2]: Entering directory `/var/tmp/portage/smoke-3.4.0_beta2/work/smoke-3.4.0_beta2/smoke' Making all in qt make[3]: Entering directory `/var/tmp/portage/smoke-3.4.0_beta2/work/smoke-3.4.0_beta2/smoke/qt' perl generate.pl make[3]: *** No rule to make target `x_1.cpp', needed by `x_1.lo'. Stop. make[3]: *** Waiting for unfinished jobs.... Found 'qtdefines'. Reading preprocessor symbols from there... kalyptus: processing /usr/qt/3/include/qhttp.h ========================== (it goes on to generate smokedata.cpp before aborting) My patch does work.
*** Bug 96748 has been marked as a duplicate of this bug. ***