Open kriegaex opened 12 years ago
On Fri, Mar 16, 2012 at 2:08 AM, Alexander Kriegisch reply@reply.github.com wrote:
Because you told me that for Makefile::GraphViz makesimple is a good makefile preprocessor, I just tried to install it and got the following report:
Oh, it looks weird.
Regards, -agentzh
Because you told me that for Makefile::GraphViz makesimple is a good makefile preprocessor, I just tried to install it and got the following report:
Oh, it looks weird.
Yeah, and just like Makefile::GraphViz, it works anyway if installed without tests.
The thing is: It is unusable for my purposes because on my system it runs for 20 minutes. The results look nice, but it throws a few warnings anyway. I guess I am going to use my own makefile simplification script (which you saw in the other ticket) for the time being because it terminates within seconds. Can you tell me what takes makesimple so long?
$ time makesimple -f Makefile precompiled > Makefile.makesimple
warning: line 10685: Unknown directive: else
warning: line 10687: Unknown directive: endif
warning: line 10688: Unknown directive: endif
warning: line 14399: Unknown directive: endif
warning: line 16594: Unknown directive: else
warning: line 16596: Unknown directive: endif
warning: line 17428: Unknown directive: endif
warning: line 18289: Unknown directive: endif
warning: line 19055: Unknown GNU make database struct: Konnte nicht geöffnet werden.
warning: line 19157: Unknown GNU make database struct: Konnte nicht geöffnet werden.
warning: line 19236: Unknown GNU make database struct: Konnte nicht geöffnet werden.
warning: line 19289: Unknown GNU make database struct: Konnte nicht geöffnet werden.
warning: line 19297: Unknown GNU make database struct: Konnte nicht geöffnet werden.
warning: line 19328: Unknown GNU make database struct: Konnte nicht geöffnet werden.
Use of uninitialized value in numeric gt (>) at /usr/local/share/perl/5.12.4/Makefile/AST/Evaluator.pm line 223.
Use of uninitialized value in numeric gt (>) at /usr/local/share/perl/5.12.4/Makefile/AST/Evaluator.pm line 223.
real 20m27.241s
user 19m47.154s
sys 0m3.548s
On Fri, Mar 16, 2012 at 5:25 PM, Alexander Kriegisch reply@reply.github.com wrote:
The thing is: It is unusable for my purposes because on my system it runs for 20 minutes.
Wow...how large is your makefile?
Basically, makesimple calls Gnu make to plot the internal dependency trees (without all those magic) and then dump that tree as normal makefiles.
Regards, -agentzh
The thing is: It is unusable for my purposes because on my system it runs for 20 minutes.
Wow...how large is your makefile?
Large (41,000 lines) because it has a lot of recursive includes. Freetz is some kind of distribution which builds a kernel forn an embedded router system and has options for many Linux packages such as openvpn, mc etc.
Basically, makesimple calls Gnu make to plot the internal dependency trees (without all those magic) and then dump that tree as normal makefiles.
My shell script does the very same, as you can see in the other ticket. Basically I call:
LC_ALL=C make -j1 -pnsq ...
I have not checked your Perl script, but maybe you do something else which results in slower and/or mor thorough evaluation.
On Fri, Mar 16, 2012 at 6:08 PM, Alexander Kriegisch reply@reply.github.com wrote:
The thing is: It is unusable for my purposes because on my system it runs for 20 minutes.
Wow...how large is your makefile?
Large (41,000 lines) because it has a lot of recursive includes. Freetz is some kind of distribution which builds a kernel forn an embedded router system and has options for many Linux packages such as openvpn, mc etc.
Awesome :) Then the resulting image must be huge too ;)
Basically, makesimple calls Gnu make to plot the internal dependency trees (without all those magic) and then dump that tree as normal makefiles.
My shell script does the very same, as you can see in the other ticket. Basically I call:
LC_ALL=C make -j1 -pnsq ...
I have not checked your Perl script, but maybe you do something else which results in slower and/or mor thorough evaluation.
It's likely that Makefile::DOM is the bottleneck for huge Makefile ASTs.
Best, -agentzh
The thing is: It is unusable for my purposes because on my system it runs for 20 minutes.
Wow...how large is your makefile?
Large (41,000 lines) because it has a lot of recursive includes. Freetz is some kind of distribution which builds a kernel forn an embedded router system and has options for many Linux packages such as openvpn, mc etc.
Awesome :) Then the resulting image must be huge too ;)
No, because I create separate images for separate targets and intelligently use "end_with" as well as "exclude" in order to prune the resulting trees. ;-)
@kriegaex Are you still seeing the test failures while installing Makefile::Parser?
I tried the official source tarball of Gnu make 3.81 (downloaded from here: http://ftp.gnu.org/gnu/make/make-3.81.tar.gz ) and I could not reproduce any problems. Will you try the official Gnu make on your side? Maybe your local gmake is just a 3rd-party-patched version?
Because you told me that for Makefile::GraphViz makesimple is a good makefile preprocessor, I just tried to install it and got the following report: