<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    If you've followed LLVM/Clang you'd know already that cmake is the
    defacto moving forward and has been for most of 2014.<br>
    <br>
    - Marc<br>
    <br>
    <div class="moz-cite-prefix">On 01/10/2015 06:15 PM, Jeffrey Walton
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAH8yC8nS8s=Gk1vhjGTf3zATM_2nUdXq-HU_c_5Mr=-8iir_dA@mail.gmail.com"
      type="cite">
      <pre wrap="">Thanks Dan.

Perhaps it would be a good idea to touch up some of the documentation.

Other have been having problems (dating back to at least 2012), and
I've wasted 3 days on it (on and off). I can't speak for others, but I
can say for certain my problems are because the documentation is
telling me otherwise (I'm attempting to do things that should work).

-----

The first change should be in `configure --help`. State that you can't
specify the libcxx package and the libcxxabi package.

This is something me and other folks try when dropping libcxx into
llvm/projects and running configure fails to build the project.
There's really no manual for configure options, so we end up asking
dumb questions on CFE-Dev.

-----

The second change should be at <a class="moz-txt-link-freetext" href="http://llvm.org/docs/LLVMBuild.html">http://llvm.org/docs/LLVMBuild.html</a>
under Build Integrations. State that the project does not support
Makefiles under all cases. Specifically name libcxx and libcxxabi as
examples that don't support it.

This is a RTFM item, and its an important to state it. Otherwise,
folks like me go down rabbit holes that are dead ends. And then we ask
dumb questions on CFE-Dev.

-----

The third change should be at <a class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>. State the
libcxx and libcxxabi projects do not support Makefiles - period.

This is a RTFM item, and its an important to state it. Otherwise,
folks like me go down rabbit holes that are dead ends. And then we ask
dumb questions on CFE-Dev.

-----

There's a related change that could be helpful at
<a class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>. I seem to recall LLVM does not really support
building components in-tree (maybe this has changed, but I seem to
recall problems in the past). So, effectively, we need to drop libc++
in-tree so `make install` installs the headers, but we're not supposed
to build components from there.

So the helpful change would be: provide instruction when you have the
following directory structure (or similar):

  + clang-project
      |
      + build
      |
      + llvm


On Sat, Jan 10, 2015 at 8:28 PM, Dan Albert <a class="moz-txt-link-rfc2396E" href="mailto:danalbert@google.com"><danalbert@google.com></a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">The configure scripts probably just don't support it. We've really only been
adding features to the cmake flow for libc++.

Also, if you're trying to use libc++abi as well, that project doesn't
support configure at all, so you'll have to use cmake.

On Jan 10, 2015 17:21, "Jeffrey Walton" <a class="moz-txt-link-rfc2396E" href="mailto:noloader@gmail.com"><noloader@gmail.com></a> wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">
TLDR:

I'm fetching packages from <a class="moz-txt-link-freetext" href="http://llvm.org/releases/download.html">http://llvm.org/releases/download.html</a>.

Unpacking libcxx, placing it llvm/projects and running configure does
not pickup libc++. That is, 'make' does not build libc++. How do I
integrate libc++ into the build process?

Manually running 'make cxx' per <a class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a> does not work.
There is no 'cxx' target. That's from both the top level llvm
directory and the llvm/projects/libcxx directory. Why does it not
work? (I know its kind of a broad question, but I don't know how to
start zeroing-in what's wrong).

The llvm/projects/libcxx/Makefile does not have build rules (only
install rules). The LLVM projects support both Make and Cmake
(<a class="moz-txt-link-freetext" href="http://llvm.org/docs/LLVMBuild.html">http://llvm.org/docs/LLVMBuild.html</a>). I don't use Cmake, and I'm
using the Make based gear. What makefile should I be using?

Trying to specify the packages with --with-libcxx --with-libcxxabi to
configure does not work. What are the package names? How do I specify
the packages so they are included during build?

-----

I have a recipe that builds LLVM, Compiler Front End (Clang), Compiler
RT and Extra tools. It works fine. I am trying to add libc++ to the
process because my Clang 3.5.0 install is having troubles on OX S 10.9
and 10.10 (it can't find C++ headers or libraries) (OS X 10.7 and 10.8
are OK).

I downloaded libcxx-3.5.0.src.tar.xz from
<a class="moz-txt-link-freetext" href="http://llvm.org/releases/3.5.0/libcxx-3.5.0.src.tar.xz">http://llvm.org/releases/3.5.0/libcxx-3.5.0.src.tar.xz</a>. I unpacked it,
and moved it to llvm/projects/libcxx (so its where the build system
expects it per <a class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>).

I then configure with the following command (this is the same
configure that works without libc++):

    # 'build' is next to 'llvm', and its the staging directory
    mkdir -p build
    cd build
    ../llvm/configure --enable-optimized --disable-assertions
--enable-cxx11 \
        $OTHER_OPTIONS --prefix=$(PREFIX)

OTHER_OPTIONS is --enable-libcpp on OS X; and PREFIX is /usr/local.

After configure and make, libc++ is not built. Performing a `find llvm
-iname libc++*` reveals no artifacts, like `libc++.a or libc++.dylib.
(It does find pre-existing files, like libc++abi.exp and
libc++abi2.exp from llvm/projects/libcxx/lib/).

----------

I cannot run `make cxx` from the 'build' directory per
<a class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>. And manually running libc++'s make:

    cd clang-scratch
    mkdir -p build
    DSTROOT=build; make -f llvm/projects/libcxx/Makefile

Results in:

    Use make install DSTROOT=<destination>

Its as if the library was not even configured (it only has an install
recipe).

----------

I tried adding packages to the configure line:

    ../llvm/configure --enable-optimized --disable-assertions
--enable-cxx11 \
        --with-libcxx --with-libcxxabi $OTHER_OPTIONS --prefix=$(PREFIX)

But that results in:

    configure: WARNING: Unknown project (libcxx) won't be configured
automatically
    configure: WARNING: Unknown project (libcxxabi) won't be
configured automatically

----------

A lot of this was already asked at "Questions about libc++ for linux
and its git repository (if any)",
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-July/thread.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-July/thread.html</a>
(scroll down about 3/5'ths of the page). But most of the questions
went unanswered.
</pre>
        </blockquote>
      </blockquote>
      <pre wrap="">_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>
</pre>
    </blockquote>
    <br>
    <div class="moz-signature">-- <br>
      <p style="color:rgba(128,128,128,.75);font-family:sans;">Marc J.
        Driftmeyer<br>
        <br>
        email:<a href="mailto:%27mjd@reanimality.com%27">mjd@reanimality.com</a><br>
        www:<a href="http://www.reanimality.com">www.reanimality.com</a><br>
      </p>
    </div>
  </body>
</html>