Qucs / qucs

Qucs Project official mirror
http://qucs.sourceforge.net/
GNU General Public License v2.0
1.15k stars 213 forks source link

unable to compile qucs-core #512

Closed raychenv closed 7 years ago

raychenv commented 8 years ago

Hi,all I am meeting an error when I compile qucs-0.0.19(master branch) according to the README file. It stops in the qucs-core compiliation. Then I make the qucs-core after commands(./bootstrap ./configure), it reports: Projects/qucs/qucs-core# make make all-recursive make[1]: Entering directory /home/leiyc/Projects/qucs/qucs-core' Making all in src make[2]: Entering directory/home/leiyc/Projects/qucs/qucs-core/src' g++ -DHAVE_CONFIG_H -I. -I.. -I../src/math -I../src/components -I../src/components -I../src/interface -I. -O2 -std=gnu++11 -pipe -fno-exceptions -fno-check-new -ldl -rdynamic -MT gperfappgen.o -MD -MP -MF .deps/gperfappgen.Tpo -c -o gperfappgen.o gperfappgen.cpp mv -f .deps/gperfappgen.Tpo .deps/gperfappgen.Po /bin/bash ../libtool --tag=CXX --mode=link g++ -O2 -std=gnu++11 -pipe -fno-exceptions -fno-check-new -ldl -rdynamic -o gperfappgen gperfappgen.o -lm libtool: link: g++ -O2 -std=gnu++11 -pipe -fno-exceptions -fno-check-new -rdynamic -o gperfappgen gperfappgen.o -ldl -lm ./gperfappgen > gperfapphash.gph /usr/bin/gperf -I -m 8 gperfapphash.gph | sed -e 's/{""},/{"",0},/g' > gperfapphash.cpp make[2]: * No rule to make target parse_citi.hpp', needed byall'. Stop. make[2]: Leaving directory `/home/leiyc/Projects/qucs/qucs-core/src' make[1]: * [all-recursive] Error 1 make[1]: Leaving directory`/home/leiyc/Projects/qucs/qucs-core' make: *\ [all] Error 2 The environment info of my compilation is that: Debian 3.2.68-1+deb7u2 i686 GNU/Linux gperf 3.0.3 automake (GNU automake) 1.10.3 gcc (Debian 4.7.2-5) 4.7.2 bison (GNU Bison) 2.5 lex 2.5.35... Am I missing something important? Any guess?

Thanks in advance Best Regard

guitorri commented 8 years ago

Seems related to #295 and #492.

raychenv commented 8 years ago

I check that the output of command "/usr/bin/gperf -I -m 8 gperfapphash.gph | sed -e 's/{""},/{"",0},/g' > gperfapphash.cpp" is fine without the error in #295 and #492 . According to the line 132 to 140 of qucs/qucs-core/src/Makefile.am BUILT_SOURCES = equation.cpp \ gperfappgen.h \ parse_citi.hpp \ parse_csv.hpp \ parse_dataset.hpp \ parse_mdl.hpp \ parse_netlist.hpp \ parse_touchstone.hpp \ parse_zvr.hpp does it mean the make process need to check the existence of *hpp files? but I cannot find them in the qucs-core/src directory. When and how are this files generated? I am confusing. Maybe @felix-salfelder know about it.

felix-salfelder commented 8 years ago

BUILT_SOURCES lists stuff that is built "before everything else" (c.f. the manual for details). its unrelated to creating the rules. remove them from BUILT_SOURCES, and it will likely fail later, with an error much less obvious than

make[2]: *** No rule to make target parse_citi.hpp', needed byall'. Stop.

the parse_stuff.hpp rules are supposed to be there, simply because these are intermediate files required to compile libqucs.la from parse_stuff.ypp (listed in libqucs_la_SOURCES).

.. we've been there already. see qucs-core/bootstrap line 29ff. there, we had blackliststed automake 1.11*. and we should likely blacklist 1.10* for the very same reason (can anybody check?).

long answer: there might be a way to make things work as intended, even with older automake. older automake uses .h as the extension for headers related to yacc stuff, and creates rules accordingly. theoretically, this is not a problem. but afair there are places with hardcoded .hpp extension in non-automatic files. i couldn't figure it out...

raychenv commented 8 years ago

hi, @guitorri , @felix-salfelder I used automake1.15 to compile qucs-core. It seems to be ok now. :) qucsator is made successfully. :) Much thanks for your help.