#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):
Here's a case where I bump up against my limited understanding of
''make''. Reviewing the description in `make help` for `miniparrot`, I
grepped:
{{{
$ grep -in miniparrot Makefile
532:MINIPARROT = ./miniparrot$(EXE)
859: runtime/parrot/include/datatypes.pasm $(MINIPARROT)
860: $(MINIPARROT) -Iruntime/parrot/include config_lib.pir > $@
864: $(MINIPARROT)
889:$(MINIPARROT) : frontend/parrot/main$(O)
include/parrot/api.h include/parrot/longopt.h $(LIBPARROT) \
9295: $(MINIPARROT) \
9343: $(MINIPARROT) \
}}}
Note that while there is an assignment to macro `$(MINIPARROT)` (line
532), there is no entry in the conventional format for targets for
`miniparrot`, i.e., nothing like this:
{{{
miniparrot: <pre-requisites>
<TAB>action
}}}
Nonetheless, when you start from completed configuration, `make
miniparrot` works and builds a ''./miniparrot'' executable.
{{{
$ ls -l ./miniparrot
-rwxr-xr-x 1 jimk jimk 32851 Jan 20 06:30 ./miniparrot
}}}
Moreover, this works for `make parrot` as well!
{{{
$ grep -nE '^parrot(:| )' Makefile
# no output, but ...
$ make parrot
# builds parrot executable
}}}
So what is it about ''make'' or the Makefile that enables us to build a
target without defining it?
Thank you very much.
kid51
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1922#comment:28>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets