agentzh / makefile-parser-pm

Perl CPAN module Makefile::Parser - A simple parser for Makefiles
http://search.cpan.org/perldoc?Makefile::Parser
11 stars 5 forks source link

Tests for makesimple during CPAN installation failed #1

Open kriegaex opened 12 years ago

kriegaex commented 12 years ago

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:

cpanm (App::cpanminus) 1.4008 on perl 5.012004 built for x86_64-linux-gnu-thread-multi
Work directory is /home/kriegaex/.cpanm/work/1331834563.3937
You have make /usr/bin/make
You have LWP 6.02
You have /bin/tar: tar (GNU tar) 1.25
Copyright © 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl.html>
Dies ist freie Software: Sie dürfen sie ändern und weiter verbreiten.
Es gibt KEINERLEI GARANTIE, so weit das Gesetz es erlaubt.

Geschrieben von John Gilmore und Jay Fenlason.
You have /usr/bin/unzip
Searching makesimple on cpanmetadb ...
-> FAIL Finding makesimple on cpanmetadb failed.
Searching makesimple on search.cpan.org ...
--> Working on makesimple
Fetching http://search.cpan.org/CPAN/authors/id/A/AG/AGENT/Makefile-Parser-0.215.tar.gz
-> OK
Unpacking Makefile-Parser-0.215.tar.gz
Entering Makefile-Parser-0.215
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.62)
Configuring Makefile-Parser-0.215
Running Makefile.PL
*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
*** Since we're running under CPAN, I'll just let it take care
    of the dependency's installation later.
[Core Features]
- Test::More            ...loaded. (0.92)
- IPC::Run3             ...loaded. (0.045 >= 0.036)
- Text::Balanced        ...loaded. (2.02)
- List::Util            ...loaded. (1.22)
- List::MoreUtils       ...loaded. (0.33)
- File::Spec            ...loaded. (3.3101)
- Class::Accessor::Fast ...loaded. (0.34)
- Cwd                   ...loaded. (3.31)
- File::Slurp           ...loaded. (9999.19)
- Makefile::DOM         ...loaded. (0.006 >= 0.005)
- Class::Trigger        ...loaded. (0.14 >= 0.13)
- Time::HiRes           ...loaded. (1.9719)
- Filter::Util::Call    ...loaded. (1.08)
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Writing Makefile for Makefile::Parser
Writing MYMETA.yml and MYMETA.json
Writing MYMETA.yml
-> OK
Checking dependencies from MYMETA.yml ...
Finding PREREQ from Makefile ...
Checking if you have File::Spec 0 ... Yes (3.31_01)
Checking if you have Time::HiRes 0 ... Yes (1.9719)
Checking if you have Class::Accessor::Fast 0 ... Yes (0.34)
Checking if you have List::Util 0 ... Yes (1.22)
Checking if you have Filter::Util::Call 0 ... Yes (1.08)
Checking if you have Class::Trigger 0.13 ... Yes (0.14)
Checking if you have Text::Balanced 0 ... Yes (2.02)
Checking if you have Makefile::DOM 0.005 ... Yes (0.006)
Checking if you have List::MoreUtils 0 ... Yes (0.33)
Checking if you have Cwd 0 ... Yes (3.31)
Checking if you have File::Slurp 0 ... Yes (9999.19)
Checking if you have Test::More 0 ... Yes (0.94)
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.62)
Checking if you have IPC::Run3 0.036 ... Yes (0.045)
Checking if you have File::Spec 0 ... Yes (3.31_01)
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.62)
Checking if you have Time::HiRes 0 ... Yes (1.9719)
Checking if you have Class::Accessor::Fast 0 ... Yes (0.34)
Checking if you have List::Util 0 ... Yes (1.22)
Checking if you have Test::More 0 ... Yes (0.94)
Checking if you have Filter::Util::Call 0 ... Yes (1.08)
Checking if you have Class::Trigger 0.13 ... Yes (0.14)
Checking if you have Text::Balanced 0 ... Yes (2.02)
Checking if you have Makefile::DOM 0.005 ... Yes (0.006)
Checking if you have IPC::Run3 0.036 ... Yes (0.045)
Checking if you have List::MoreUtils 0 ... Yes (0.33)
Checking if you have Cwd 0 ... Yes (3.31)
Checking if you have File::Slurp 0 ... Yes (9999.19)
Building and testing Makefile-Parser-0.215
cp lib/Makefile/AST/Rule/Base.pm blib/lib/Makefile/AST/Rule/Base.pm
cp lib/Makefile/AST/Rule.pm blib/lib/Makefile/AST/Rule.pm
cp lib/Makefile/AST.pm blib/lib/Makefile/AST.pm
cp lib/Makefile/AST/Variable.pm blib/lib/Makefile/AST/Variable.pm
cp lib/Makefile/Parser/GmakeDB.pm blib/lib/Makefile/Parser/GmakeDB.pm
cp lib/Makefile/AST/Command.pm blib/lib/Makefile/AST/Command.pm
cp lib/Makefile/AST/Evaluator.pm blib/lib/Makefile/AST/Evaluator.pm
cp lib/Makefile/AST/StemMatch.pm blib/lib/Makefile/AST/StemMatch.pm
cp lib/Makefile/AST/Rule/Implicit.pm blib/lib/Makefile/AST/Rule/Implicit.pm
cp lib/Makefile/Parser.pm blib/lib/Makefile/Parser.pm
cp script/pgmake-db blib/script/pgmake-db
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pgmake-db
cp script/makesimple blib/script/makesimple
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/makesimple
cp script/plmake blib/script/plmake
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/plmake
Manifying blib/man1/pgmake-db.1p
Manifying blib/man1/makesimple.1p
Manifying blib/man1/plmake.1p
Manifying blib/man3/Makefile::Parser::GmakeDB.3pm
Manifying blib/man3/Makefile::AST::Evaluator.3pm
Manifying blib/man3/Makefile::AST.3pm
Manifying blib/man3/Makefile::Parser.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/99-pod-coverage.t t/99-pod.t t/ast-basic.t t/ast-rule.t t/ast-stem.t t/ast-var.t t/Makefile-Parser.t t/makesimple.t
t/99-pod-coverage.t .. skipped: We know we don't have enough POD :(
t/99-pod.t ........... ok
t/ast-basic.t ........ ok
t/ast-rule.t ......... ok
t/ast-stem.t ......... ok
t/ast-var.t .......... ok
t/Makefile-Parser.t .. ok
GNU Make 3.81

#   Failed test 'TEST 1: basics - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo hello
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo hello world
# '

#   Failed test 'TEST 2: canned sequence of commands - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo
#   @-touch
#   @:
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo
#   @-touch
#   @:
# '

#   Failed test 'TEST 3: double-colon rules - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo
# 
# bar:
# 
# foo:: bar
#   @echo foo bar
# 
# blah:
# 
# blue:
# 
# foo:: blah blue
#   -echo blah blue
# 
# makesimple.tmp.mk:
# 
# .DEFAULT:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo
# 
# foo:: bar
#   @echo foo bar
# 
# foo:: blah blue
#   -echo blah blue
# '

#   Failed test 'TEST 3: double-colon rules - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `bar', needed by `foo'.  Ignored.
# makesimple: *** No rule to make target `blah', needed by `foo'.  Ignored.
# makesimple: *** No rule to make target `blue', needed by `foo'.  Ignored.
# '

#   Failed test 'TEST 4: double-colon rules (no warnings) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo
# 
# bar:
# 
# foo:: bar
#   @echo foo bar
# 
# blah:
# 
# blue:
# 
# foo:: blah blue
#   -echo blah blue
# 
# makesimple.tmp.mk:
# 
# .DEFAULT:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo
# 
# foo:: bar
#   @echo foo bar
# 
# foo:: blah blue
#   -echo blah blue
# '

#   Failed test 'TEST 5: .DEFAUL_GOAL - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo
#   @echo foo
# 
# bah:
# 
# foo: bah
#   :
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'foo: bah
#   :
# 
# all: foo
#   @echo foo
# '

#   Failed test 'TEST 5: .DEFAUL_GOAL - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `bah', needed by `foo'.  Ignored.
# '

#   Failed test 'TEST 6: order-only prereqs - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'a:
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# c:
# 
# b:
# 
# .SUFFIXES:
# 
# all: a b | c
#   echo
# '
#     expected: 'all: a b | c
#   echo
# '

#   Failed test 'TEST 6: order-only prereqs - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `a', needed by `all'.  Ignored.
# makesimple: *** No rule to make target `b', needed by `all'.  Ignored.
# makesimple: *** No rule to make target `c', needed by `all'.  Ignored.
# '

#   Failed test 'TEST 7: multi-target rules - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'foo: blah a.h
#   echo blah > foo
# 
# blah:
# 
# a.h:
# 
# .DEFAULT:
# 
# bar: a.h
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'foo: blah a.h
#   echo blah > foo
# 
# bar: a.h
# '

#   Failed test 'TEST 7: multi-target rules - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `blah', needed by `foo'.  Ignored.
# makesimple: *** No rule to make target `a.h', needed by `foo'.  Ignored.
# '

#   Failed test 'TEST 8: pattern rules (no match) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo.x bar.w
# 
# foo.x:
# 
# bar.w:
# 
# bar.w:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo.x bar.w
# '

#   Failed test 'TEST 8: pattern rules (no match) - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `foo.x', needed by `all'.  Ignored.
# makesimple: *** No rule to make target `bar.w', needed by `all'.  Ignored.
# '

#   Failed test 'TEST 9: pattern rules (no warnings) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo.x bar.w
# 
# foo.x:
# 
# bar.w:
# 
# bar.w:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo.x bar.w
# '

#   Failed test 'TEST 10: pattern rules (with match) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo.x bar.w
# 
# foo.h:
# 
# foo.x: foo.h
#   touch foo.x
# 
# bar.w: bar.hpp
#   echo ''
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo.x bar.w
# 
# foo.x: foo.h
#   touch foo.x
# 
# bar.w: bar.hpp
#   echo ''
# '

#   Failed test 'TEST 11: chained implicit rules - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo.a bar.a baz.a
# 
# foo.d:
# 
# foo.b: foo.d
#   @touch foo.b
# 
# foo.a: foo.b
#   @touch foo.a
# 
# bar.b: bar.d
#   @touch bar.b
# 
# bar.a: bar.b
#   @touch bar.a
# 
# baz.b: baz.d
#   @touch baz.b
# 
# baz.a: baz.b
#   @touch baz.a
# 
# makesimple.tmp.mk:
# 
# .DEFAULT:
# 
# .SUFFIXES:
# '
#     expected: 'all: foo.a bar.a baz.a
# 
# foo.b: foo.d
#   @touch foo.b
# 
# foo.a: foo.b
#   @touch foo.a
# 
# bar.b: bar.d
#   @touch bar.b
# 
# bar.a: bar.b
#   @touch bar.a
# 
# baz.b: baz.d
#   @touch baz.b
# 
# baz.a: baz.b
#   @touch baz.a
# '

#   Failed test 'TEST 12: extra goals given from the command line - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: foo.a
# 
# bar.b: bar.d
#   @touch bar.b
# 
# bar.a: bar.b
#   @touch bar.a
# 
# .DEFAULT:
# 
# foo.d:
# 
# foo.b: foo.d
#   @touch foo.b
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# 
# foo.a: foo.b
#   @touch foo.a
# '
#     expected: 'all: foo.a
# 
# bar.b: bar.d
#   @touch bar.b
# 
# bar.a: bar.b
#   @touch bar.a
# 
# foo.b: foo.d
#   @touch foo.b
# 
# foo.a: foo.b
#   @touch foo.a
# '

#   Failed test 'TEST 13: target-specific variables - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo ; echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# 
# any:
#   @echo ; echo  end
# 
# default: all any
# '
#     expected: 'default: all any
# 
# all:
#   @echo foo one two three; echo bar baz
# 
# any:
#   @echo foo; echo  end
# '

#   Failed test 'TEST 14: ditto (override cmd line vars) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo foo
# '

#   Failed test 'TEST 15: ditto (cmd line vars) (2) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo cmd
# '

#   Failed test 'TEST 16: static pattern rules - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'bar.c:
# 
# .DEFAULT:
# 
# foo.c:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# 
# foo.o: foo.c
#   -c  foo.c -o foo.o
# 
# bar.o: bar.c
#   -c  bar.c -o bar.o
# 
# all: foo.o bar.o
# '
#     expected: 'all: foo.o bar.o
# 
# foo.o: foo.c
#   gcc -c  foo.c -o foo.o
# 
# bar.o: bar.c
#   gcc -c  bar.c -o bar.o
# '

#   Failed test 'TEST 16: static pattern rules - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `foo.c', needed by `foo.o'.  Ignored.
# makesimple: *** No rule to make target `bar.c', needed by `bar.o'.  Ignored.
# '

#   Failed test 'TEST 17: static pattern rules (no warnings) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'bar.c:
# 
# .DEFAULT:
# 
# foo.c:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# 
# foo.o: foo.c
#   -c  foo.c -o foo.o
# 
# bar.o: bar.c
#   -c  bar.c -o bar.o
# 
# all: foo.o bar.o
# '
#     expected: 'all: foo.o bar.o
# 
# foo.o: foo.c
#   gcc -c -O foo.c -o foo.o
# 
# bar.o: bar.c
#   gcc -c -O bar.c -o bar.o
# '

#   Failed test 'TEST 18: conditionals - ifdef $(foo) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo hello
#   -rm blahblah
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo hello
#   -rm blahblah
# '

#   Failed test 'TEST 19: conditionals - ifdef foo - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo hello
#   -rm blahblah
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo hello
#   -rm blahblah
# '

#   Failed test 'TEST 20: conditionals - override var foo via cmd line options - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'foo: bar
#   touch foo
#   -rm blahblah
# 
# bar:
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'foo: bar
#   touch foo
#   -rm blahblah
# '

#   Failed test 'TEST 20: conditionals - override var foo via cmd line options - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `bar', needed by `foo'.  Ignored.
# '

#   Failed test 'TEST 21: functions in the first pass - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'bar.c:
# 
# baz.c:
# 
# .DEFAULT:
# 
# foo.c:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# 
# all: foo.c bar.c baz.c
#   @echo foo.c bar.c baz.c
# '
#     expected: 'all: foo.c bar.c baz.c
#   @echo foo.c bar.c baz.c
# '

#   Failed test 'TEST 21: functions in the first pass - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `foo.c', needed by `all'.  Ignored.
# makesimple: *** No rule to make target `bar.c', needed by `all'.  Ignored.
# makesimple: *** No rule to make target `baz.c', needed by `all'.  Ignored.
# '

#   Failed test 'TEST 22: functions in the second pass - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   echo foo.c bar.c baz.c
# '

#   Failed test 'TEST 23: functions in the both passes - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   echo bar.c baz.c foo.c
# '

#   Failed test 'TEST 24: commands spanning multiple lines - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo  \
#    \
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo hello \
#   my \
#   world
# '

#   Failed test 'TEST 25: dynamics - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   @echo all
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   @echo all
# '

#   Failed test 'TEST 26: dynamics (2) - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all: bar
#   @echo all
# 
# bar:
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all: bar
#   @echo all
# '

#   Failed test 'TEST 26: dynamics (2) - script/makesimple generated the right error'
#   at t/makesimple.t line 61.
#          got: ''
#     expected: 'makesimple: *** No rule to make target `bar', needed by `all'.  Ignored.
# '

#   Failed test 'TEST 27: ifeq/endif - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   echo
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   echo bar
# '

#   Failed test 'TEST 28: define/endef - script/makesimple generated the right output'
#   at t/makesimple.t line 59.
#          got: 'all:
#   echo bar
# 
# .DEFAULT:
# 
# makesimple.tmp.mk:
# 
# .SUFFIXES:
# '
#     expected: 'all:
#   echo bar
# '
# Looks like you failed 37 tests of 84.
t/makesimple.t ....... 
Dubious, test returned 37 (wstat 9472, 0x2500)
Failed 37/84 subtests 

Test Summary Report
-------------------
t/makesimple.t     (Wstat: 9472 Tests: 84 Failed: 37)
  Failed tests:  2, 5, 8-9, 11, 14-15, 17-18, 20-21, 23-24
                26, 29, 32, 35, 38, 41, 44, 47-48, 50, 53
                56, 59-60, 62-63, 65, 68, 71, 74, 77-78
                80, 83
  Non-zero exit status: 37
Files=8, Tests=343, 43 wallclock secs ( 0.36 usr  0.08 sys + 38.25 cusr  2.83 csys = 41.52 CPU)
Result: FAIL
Failed 1/8 test programs. 37/343 subtests failed.
make: *** [test_dynamic] Fehler 37
-> FAIL Installing makesimple failed. See /home/kriegaex/.cpanm/build.log for details.
agentzh commented 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

kriegaex commented 12 years ago

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
agentzh commented 12 years ago

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

kriegaex commented 12 years ago

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.

agentzh commented 12 years ago

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

kriegaex commented 12 years ago

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. ;-)

agentzh commented 9 years ago

@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?