Qucs / qucsator

Circuit simulator of the Qucs project
http://qucs.sourceforge.net
GNU General Public License v2.0
23 stars 10 forks source link

qucs can not be built with make -j8 #10

Open slazav opened 5 years ago

slazav commented 5 years ago

It fails with

...
make[5]: Entering directory `/home/sla/RPM/BUILD/qucs-0.0.19/qucs-core/src/converter'
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
/bin/sh ../../build-aux/ylwrap parse_spice.ypp y.tab.c parse_spice.cpp y.tab.h `echo parse_spice.cpp | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e
/bin/sh ../../build-aux/ylwrap scan_spice.lpp lex.spice_.c scan_spice.cpp -- flex --nounistd..
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
/bin/sh ../../build-aux/ylwrap parse_vcd.ypp y.tab.c parse_vcd.cpp y.tab.h `echo parse_vcd.cpp | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++
/bin/sh ../../build-aux/ylwrap scan_vcd.lpp lex.vcd_.c scan_vcd.cpp -- flex --nounistd..
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
/home/sla/RPM/BUILD/qucs-0.0.19/qucs-core/src/converter/scan_spice.lpp:628: warning, rule cannot be matched
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
/home/sla/RPM/BUILD/qucs-0.0.19/qucs-core/src/converter/parse_spice.ypp: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
/home/sla/RPM/BUILD/qucs-0.0.19/qucs-core/src/converter/parse_spice.ypp: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
updating parse_vcd.hpp
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -pipe -Wall -O2 -std=gnu++11 -pipe -fno-exceptions -fno-che
scan_spice.lpp:51:27: fatal error: parse_spice.hpp: No such file or directory
compilation terminated.
make[5]: *** [scan_spice.o] Error 1
make[5]: *** Waiting for unfinished jobs....
updating parse_spice.hpp
make[5]: Leaving directory `/home/sla/RPM/BUILD/qucs-0.0.19/qucs-core/src/converter'
...

With make -j1 everything works.

This means that for make parse_spice.lpp does not depend on parse_spice.hpp and make does not care about correct building order.

Adding explicit dependency: scan_spice.lpp: parse_spice.hpp to qucs/qucs-core/src/converter/Makefile.am fixes the problem.

slazav commented 5 years ago

The same problem with parse_vcd.hpp (it will appear at different number of parallel tasks in -j). Similar dependency is needed:

scan_spice.lpp: parse_spice.hpp
scan_vcd.lpp: parse_vcd.hpp
guitorri commented 5 years ago

Related to Qucs/qucs#545