#1922: Review Parrot's 'make help'
---------------------+------------------------------------------------------
 Reporter:  jkeenan  |       Owner:  jkeenan 
     Type:  cage     |      Status:  assigned
 Priority:  normal   |   Milestone:          
Component:  docs     |     Version:  2.10.0  
 Severity:  low      |    Keywords:          
     Lang:           |       Patch:          
 Platform:           |  
---------------------+------------------------------------------------------

Comment(by jkeenan):

 In separate tickets, nwellnhof++ and NotFound++ took care of some warnings
 that appeared when we run `make apilist`, `make exportlist` and `make
 malloclist`.

 But as I worked on those issues I realized that the way these targets are
 currently defined in ''config/gen/makefiles/root.in'' implicitly requires
 that ''./parrot'' already have been built.
 {{{
 apilist: src/core_pmcs.c
     $(HEADERIZER) --macro=PARROT_API $(HEADERIZER_O_FILES)

 exportlist: src/core_pmcs.c
     $(HEADERIZER) --macro=PARROT_EXPORT $(HEADERIZER_O_FILES)

 malloclist: src/core_pmcs.c
     $(HEADERIZER) --macro=PARROT_MALLOC $(HEADERIZER_O_FILES)
 }}}
 ''src/core_pmcs.c'' is a Configure-generated file.  But the headerizer has
 a dependency which is not fulfilled until ''src/extend_vtable.c'' gets
 generated at some point during `make`:
 {{{
 headerizer : src/core_pmcs.c src/extend_vtable.c
     $(HEADERIZER) $(HEADERIZER_O_FILES) compilers/imcc/imcc.y
 }}}
 So when I call `make apitest`, I am prone to get this:
 {{{
 couldn't read 'src/extend_vtable.c':
   No such file or directory at
     lib/Parrot/Headerizer/Functions.pm line 124.
 make: *** [apilist] Error 2
 }}}
 IMHO, once I've configured I feel I should be able to call '''any'''
 `make` target and have `make` build as needed until my target is built.
 In other words, I feel that if I really want `make apilist`, as much of
 Parrot as needs to get built to get to that target ought to be built.

 I therefore propose the patch attached, which adds ''src/extend_vtable.c''
 to those three `make *list` targets.

 Thank you very much.

 kid51

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1922#comment:21>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to