<div dir="ltr"><div>Yes, you're right that clearing the build phase doesn't prove anything, but I'm not sure I'm following your other point. Are you saying that "make install" will compile the source code? I was under the impression that you need to manually run "make" in order to actually compile the source code, hence the traditional magic formula of './configure ; make ; make install'. Without the first make, the "make install" shouldn't have anything to install. Or am I wrong about that?<br></div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>-- </div><div>Jason Liu<br></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 15, 2023 at 2:54 PM Joshua Root <<a href="mailto:jmr@macports.org">jmr@macports.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 16/8/2023 04:29, Jason Liu wrote:<br>
> Hi everyone,<br>
> <br>
> I'm working on a Portfile that uses the xcode PortGroup, and I've <br>
> noticed something that surprised me: It seems that the MacPorts build is <br>
> compiling the source code during the build phase, and then compiling the <br>
> source code AGAIN during the destroot phase? Is this correct, or am I <br>
> starting to hallucinate? Because when I add a 'build {}' to my Portfile, <br>
> which in theory should cause nothing to be compiled, all of the compiled <br>
> products are still somehow coming into existence and getting placed into <br>
> ${destroot}.<br>
<br>
I don't know if your project is in fact building things twice, but <br>
clearing the build phase doesn't prove anything one way or the other, <br>
because the install target depends on the targets that build the program <br>
and will thus run them first. You will usually see a similar thing <br>
happen if you just run 'make install' with a makefile based project.<br>
<br>
- Josh<br>
</blockquote></div>