id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,lang,patch,platform
677,Which tools/*/*.pl programs belong in which tools/* directory?,jkeenan,jkeenan,"(I posed this question in [http://rt.perl.org/rt3/Ticket/Display.html?id=41912 RT #41912] two months ago but got no response.  I want to close that ticket because its main concerns have been addressed.  So I am re-posing the question here in Trac.)

We have many Perl 5 programs stored in subdirectories of ''tools/''.  Do we have a rule as to which programs ought to be under ''tools/build/'', which under ''tools/dev'', and which under, say, ''tools/util/''?

I thought the rule -- or a rule -- went like this: If the program is invoked by ''make'', put it under ''tools/build''. (Example: ''tools/build/pmc2c.pl''.) If the program is one a Parrot developer uses as a one-off aid, put it under ''tools/dev''. (Example: ''tools/dev/nopaste.pl''.)

However, today I noticed that there are quite a few ''tools/dev/'' programs that make their way into the top-level Makefile:
{{{
$ grep -n 'tools/dev' Makefile
116:RECONFIGURE      := $(PERL) tools/dev/reconfigure.pl
640:    @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) """" $(CFLAGS) -I$(@D) -o $@ -c $<
645:    @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) """" $(CFLAGS) -I$(@D) -o $@ -c $<
647:#UNLESS(win32)      @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) """" $(CFLAGS) -I$(@D) -o $@ -c $<
866:    @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS echo $(CC) $(CFLAGS) -I$(@D) -o  xx$(O) -c xx.c
882:$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT)
883:    $(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
956:    $(PERL) tools/dev/lib_deps.pl object $(O_FILES)
959:    $(PERL) tools/dev/lib_deps.pl source all_source
2851:   $(PERL) tools/dev/svnclobber.pl
2857:   $(PERL) tools/dev/manicheck.pl
2860:   $(PERL) tools/dev/opsrenumber.pl $(OPS_FILES)
2863:   $(PERL) tools/dev/pmcrenumber.pl $(SRC_DIR)/pmc/pmc.num
3183:   $(PERL) tools/dev/install_files.pl \
3196:   $(PERL) tools/dev/install_dev_files.pl \
3227:   $(PERL) tools/dev/mk_inno.pl
}}}
Of the above, ''tools/dev/cc_flags.pl'' seems to be one which really should be in ''tools/build/''.

And I don't know what rule applies to ''tools/util'':
{{{
$ grep -n 'tools/util' Makefile
886:$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
887:    $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
985:    $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
3292:   perlcritic --profile tools/util/perlcritic.conf $(CRITIC_FILES)
3296:   perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES)
}}}
For example, why should ''perlcritic-cage.conf'' be under ''tools/util/'' rather than ''tools/dev/''?

Thoughts?",cage,closed,minor,,configure,1.1.0,low,fixed,tools,Coke allison,,applied,
