<div dir="ltr"><br><br><div class="gmail_quote">On Tue, Mar 10, 2015 at 9:39 AM Jonathan Roelofs <<a href="mailto:jonathan@codesourcery.com">jonathan@codesourcery.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 2/28/15 11:01 PM, Nick Lewycky wrote:<br>
> Eric Christopher wrote:<br>
>><br>
>><br>
>> On Sat, Feb 28, 2015 at 11:45 AM Nick Lewycky <<a href="mailto:nicholas@mxc.ca" target="_blank">nicholas@mxc.ca</a><br>
>> <mailto:<a href="mailto:nicholas@mxc.ca" target="_blank">nicholas@mxc.ca</a>>> wrote:<br>
>><br>
>>     Jonathan Roelofs wrote:<br>
>>      > Author: jroelofs<br>
>>      > Date: Fri Feb 27 17:35:47 2015<br>
>>      > New Revision: 230812<br>
>>      ><br>
>>      > URL: <a href="http://llvm.org/viewvc/llvm-" target="_blank">http://llvm.org/viewvc/llvm-</a> project?rev=230812&view=rev<br>
>>     <<a href="http://llvm.org/viewvc/llvm-project?rev=230812&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=230812&view=rev</a>><br>
>>      > Log:<br>
>>      > Discourage in-source autoconf builds (as we already do for the<br>
>>     cmake build)<br>
>><br>
>>     I have reverted this patch. Please explain yourselves.<br>
>><br>
>><br>
>> Pretty rude way of putting it but sure.<br>
><br>
> Hey, sorry. I was upset, and neither of you deserved that sort of tone.<br>
> I'm truly sorry, and thank you for taking the time to write an<br>
> explanation in spite of my poor attitude!<br>
Sorry about my end of this too. I had assumed there was consensus on<br>
this from discussing it on #llvm. I probably should have mailed the list<br>
first explaining what I had intended to do.<br>
><br>
>> Best practices.<br>
>><br>
>> <a href="https://www.sourceware.org/autobook/autobook/autobook_14.html#SEC14" target="_blank">https://www.sourceware.org/<u></u>autobook/autobook/autobook_14.<u></u>html#SEC14</a><br>
>><br>
>> In general you want to keep your source directory pristine (readonly)<br>
>> and configuring inside the source directory is fraught with problems.<br>
+1<br>
<br>
This is a small step toward allowing the source dir to be kept readonly<br>
during builds.<br>
><br>
> Got it.<br>
><br>
> If it matters, I've been using this configuration for a long time, and I<br>
> haven't seen any glitch for years, though I do remember a time when that<br>
> wasn't true. I understand why it risks continuing problems.<br>
><br>
> The two main things I get from in-tree builds are that I can grep<br>
> through the source including the generated source,<br>
This one you can work around (somewhat) by doing a<br>
subdirectory-of-source build, i.e.:<br>
<br>
   $ svn co <a href="http://llvm.org/svn/llvm-project/llvm/trunk" target="_blank">http://llvm.org/svn/llvm-<u></u>project/llvm/trunk</a> llvm<br>
   $ mkdir -p llvm/build && cd llvm/build<br>
   $ ../configure [options]<br>
<br>
> and that I can rename<br>
> the directory trees. Out of tree builds bake in a directory name.<br>
Doesn't this just mean that renames have to happen in two steps (i.e.<br>
rename the src version of the dir, then rename the build version of the<br>
dir)? Or is there something fundamentally different here that I'm missing?<br>
> I can<br>
> try this again and see whether it's still a problem, or if there's<br>
> something we can fix here.<br>
><br>
>> This also ensures that the occasional report I get of someone not being<br>
>> able to do a make distclean in the source directory will go away. I will<br>
>> also take a working make distclean if you'd like to do that instead<br>
>> (though, obviously, I'd prefer the current patch).<br>
><br>
> Reducing support burden is a perfectly reasonable reason. As someone who<br>
> uses this configuration, I find that I very rarely run make clean and<br>
> don't think I've tried make distclean. I would not be surprised to learn<br>
> that I've accidentally learned to avoid the things that don't work.<br>
><br>
> As you've probably already surmised, I'm not super interested in writing<br>
> a patch that fixes "make distclean". :) Which I guess means that you can<br>
:) Especially with the whole "autotools is going away once we have<br>
feature parity with the cmake build" push.<br>
> ignore me and un-revert? I do have one review comment though, please<br>
> change the error message from "discouraged" to "are no longer<br>
> supported". In part, I was confused by the combination of the term<br>
> discouragement (in the error message and in the commit log) with a hard<br>
> error.<br>
Sorry about that... how about "In-source builds are not allowed. Please<br>
configure from a separate build directory."? This would better match the<br>
message printed by the cmake build in this situation.<br>
<br></blockquote><div><br></div><div>This works for me. Nick?</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
<br>
Jon<br>
><br>
> Nick<br>
><br>
>><br>
>> -eric<br>
>><br>
>><br>
>>      ><br>
>>      > <a href="http://reviews.llvm.org/D7961" target="_blank">http://reviews.llvm.org/D7961</a><br>
>>      ><br>
>>      > Modified:<br>
>>      >      llvm/trunk/autoconf/configure. ac <<a href="http://configure.ac" target="_blank">http://configure.ac</a>><br>
>>      >      llvm/trunk/configure<br>
>>      ><br>
>>      > Modified: llvm/trunk/autoconf/configure. ac <<a href="http://configure.ac" target="_blank">http://configure.ac</a>><br>
>>      > URL: <a href="http://llvm.org/viewvc/llvm-" target="_blank">http://llvm.org/viewvc/llvm-</a> project/llvm/trunk/autoconf/<br>
>>     <a href="http://configure.ac?rev=230812&r1=" target="_blank">configure.ac?rev=230812&r1=</a> 230811&r2=230812&view=diff<br>
>><br>
>> <<a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/autoconf/configure.ac?rev=230812&r1=230811&r2=230812&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/autoconf/<u></u>configure.ac?rev=230812&r1=<u></u>230811&r2=230812&view=diff</a>><br>
>><br>
>>      > ============================== ==============================<br>
>>     ==================<br>
>>      > --- llvm/trunk/autoconf/configure. ac <<a href="http://configure.ac" target="_blank">http://configure.ac</a>><br>
>>     (original)<br>
>>      > +++ llvm/trunk/autoconf/configure. ac <<a href="http://configure.ac" target="_blank">http://configure.ac</a>> Fri<br>
>>     Feb 27 17:35:47 2015<br>
>>      > @@ -73,6 +73,11 @@ if test ${srcdir} != "." ; then<br>
>>      >     fi<br>
>>      >   fi<br>
>>      ><br>
>>      > +dnl Quit if it is an in-source build<br>
>>      > +if test ${srcdir} == "." ; then<br>
>>      > +  AC_MSG_ERROR([In-source builds are discouraged. Configure from<br>
>>     a separate build directory.])<br>
>>      > +fi<br>
>>      > +<br>
>>      >   dnl Default to empty (i.e. assigning the null string to) CFLAGS<br>
>>     and CXXFLAGS,<br>
>>      >   dnl instead of the autoconf default (for example, '-g -O2' for<br>
>>     CC=gcc).<br>
>>      >   : ${CFLAGS=}<br>
>>      ><br>
>>      > Modified: llvm/trunk/configure<br>
>>      > URL: <a href="http://llvm.org/viewvc/llvm-" target="_blank">http://llvm.org/viewvc/llvm-</a> project/llvm/trunk/configure?<br>
>>     rev=230812&r1=230811&r2= 230812&view=diff<br>
>><br>
>> <<a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/configure?rev=230812&r1=230811&r2=230812&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/configure?<u></u>rev=230812&r1=230811&r2=<u></u>230812&view=diff</a>><br>
>><br>
>>      > ============================== ==============================<br>
>>     ==================<br>
>>      > --- llvm/trunk/configure (original)<br>
>>      > +++ llvm/trunk/configure Fri Feb 27 17:35:47 2015<br>
>>      > @@ -1999,6 +1999,12 @@ echo "$as_me: error: Already configured<br>
>>      >     fi<br>
>>      >   fi<br>
>>      ><br>
>>      > +if test ${srcdir} == "." ; then<br>
>>      > +  { { echo "$as_me:$LINENO: error: In-source builds are<br>
>>     discouraged. Configure from a separate build directory.">&5<br>
>>      > +echo "$as_me: error: In-source builds are discouraged. Configure<br>
>>     from a separate build directory.">&2;}<br>
>>      > +   { (exit 1); exit 1; }; }<br>
>>      > +fi<br>
>>      > +<br>
>>      >   : ${CFLAGS=}<br>
>>      >   : ${CXXFLAGS=}<br>
>>      ><br>
>>      ><br>
>>      ><br>
>>      > ______________________________ _________________<br>
>>      > llvm-commits mailing list<br>
>>      > <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a> <mailto:<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.<u></u>edu</a>><br>
>>      > <a href="http://lists.cs.uiuc.edu/" target="_blank">http://lists.cs.uiuc.edu/</a> mailman/listinfo/llvm-commits<br>
>>     <<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvm-commits</a>><br>
>>      ><br>
>><br>
><br>
<br>
--<br>
Jon Roelofs<br>
<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a><br>
CodeSourcery / Mentor Embedded<br>
</blockquote></div></div>