[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems building gnustep-base on Ubuntu Linux with clang/llvm-3.7
From: |
David Chisnall |
Subject: |
Re: Problems building gnustep-base on Ubuntu Linux with clang/llvm-3.7 |
Date: |
Mon, 28 Sep 2015 10:16:25 +0100 |
Hi David,
> On 24 Sep 2015, at 20:14, David Lobron <dlobron@akamai.com> wrote:
>
> Hi All,
>
> I am trying to build gnustep-base-1.24.8 on Ubuntu Linux, and hitting a few
> snags. I would be very grateful if someone could suggest where I'm going
> wrong.
>
> I first installed the llvm compiler, clang-3.8.0. I tried to build
> gnustep-base after that with clang, but the configure script failed because
> it could not find objc/objc.h. I presumed this was because the runtime
> wasn't installed, so I grabbed the source for libobjc2-1.7, unpacked it, and
> ran the suggested build command in the source dir:
Please try the most recent release (1.8.1, see:
https://github.com/gnustep/libobjc2/releases ), which incorporates some more
error checking and recovery into the build process (not to mention a number of
other bug fixes).
> mkdir Build; cd Build; cmake .. -DCMAKE_C_COMPILER=clang
> -DCMAKE_CXX_COMPILER=clang++
>
> This resulted in the following error:
>
> -- Untested version of LLVM (3.8.0svn) found.
> -- Disabling LLVM options unless explicitly enabled.
> -- No C++ runtime library found
> -- GNUstep install type set to NONE
> CMake Error at CMakeLists.txt:310 (install):
> install TARGETS given no LIBRARY DESTINATION for shared library target
> "objc".
>
>
> -- Configuring incomplete, errors occurred!
> See also "/home/dlobron/clang/libobjc2-1.7/Build/CMakeFiles/CMakeOutput.log".
> See also "/home/dlobron/clang/libobjc2-1.7/Build/CMakeFiles/CMakeError.log".
>
> I worked around this by simply running "make; make install". That produced a
> warning that I should have used the cmake command, but it built the runtime
> and installed the headers.
I have no idea what that will actually produce. There is a reason for those
warnings...
> When I then tried to compile gnustep-base with clang, I was able to build
> Source, Additions, and libgnustep-base, but I hit some error in the
> ObjectiveC2 subproject. The first few of these look like this:
>
> Making all for subproject ObjectiveC2…
This subproject is to provide modern runtime APIs to old versions of the GCC
runtime. It should not be being built if you have a modern runtime installed,
so something has gone wrong with an earlier configuration stage.
> - Is there a way to work around the "install TARGETS given no LIBRARY
> DESTINATION" error when building libobjc2 with cmake? Is this the source of
> my errors above?
Try building a newer version.
> - Is libobjc2 the right runtime for gnustep-base?
Yes.
> Any help would be appreciated here.
The correct install sequence is:
1) Build and install libobjc2. If you are on a GNU/Linux platform, you
probably want to set the default prefix to /usr (not /usr/local).
2) Install GNUstep-make
3) Install GNUstep-base (and any dependencies)
4) Install GNUstep-gui
For reference on packaging, I’d suggest looking at the FreeBSD ports, which
build packages providing a modern GNUstep environment.
David
-- Sent from my brain