Bug 92362

Summary: Parallel make fix for smoke makefiles
Product: [Developer tools] bindings Reporter: danarmak
Component: generalAssignee: kde-bindings
Status: RESOLVED FIXED    
Severity: normal CC: caleb, eric
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: parallel-make.diff

Description danarmak 2004-10-30 00:51:20 UTC
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...
Comment 1 danarmak 2004-10-30 00:53:03 UTC
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.
Comment 2 Caleb Tennis 2005-01-19 01:25:55 UTC
Dan, you can get by by using something like this instead:

libsmokeqt_la_COMPILE_FIRST = smokedata.cpp
Comment 3 Caleb Tennis 2005-02-01 17:29:41 UTC
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


Comment 4 danarmak 2005-02-06 18:34:16 UTC
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.
Comment 5 Dirk Mueller 2005-06-08 23:19:18 UTC
*** Bug 96748 has been marked as a duplicate of this bug. ***