0

RISCV-GCC Makefile.in

# The target built for a native non-bootstrap build.
all:
@if gcc-bootstrap
    [ -f stage_final ] || echo stage3 > stage_final
    @r=`${PWD_COMMAND}`; export r; \
    s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
    $(MAKE) $(RECURSE_FLAGS_TO_PASS) `cat stage_final`-bubble
@endif gcc-bootstrap
    @: $(MAKE); $(unstage)
    @r=`${PWD_COMMAND}`; export r; \
    s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@if gcc-bootstrap
    if [ -f stage_last ]; then \
      TFLAGS="$(STAGE$(shell test ! -f stage_last || sed s,^stage,, stage_last)_TFLAGS)"; \
      $(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target; \
    else \
@endif gcc-bootstrap
      $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-host all-target \
@if gcc-bootstrap
        ; \
    fi \
@endif gcc-bootstrap
    && :

What does this statement, @: $(MAKE); $(unstage), do in this recipe for target all?

I have tried to remove other statements but this one, and make this Makefile, it does nothing. However, according to the mechanism of make, it should invoke the recipe for first target if without dependencies, therefore it will spawn a new shell process to call make in current directory, which may lead to a indefinitively recursive call. But it just does nothing and terminate.

I am confused about what that statement, @: $(MAKE); $(unstage) do, and why need it there in recipe.

Keith
  • 111
  • 1
  • 6
  • This is not a Makefile. [See, for instance, this Q&A](https://stackoverflow.com/questions/2531827/what-are-makefile-am-and-makefile-in). – Renaud Pacalet Jul 25 '22 at 15:09
  • I know it is not a exact Makefile, but it will generate the Makefile after ./configure. Moreover, that statement is still generated without any modifications. Therefore, I am still confused how that statement works in the context. – Keith Jul 26 '22 at 02:29

0 Answers0