gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Install location for libobjc2


From: Richard Frith-Macdonald
Subject: Re: Install location for libobjc2
Date: Fri, 2 Nov 2012 17:32:28 +0000

On 2 Nov 2012, at 17:20, Tom Davie wrote:

> 
> On 2 Nov 2012, at 17:10, Richard Frith-Macdonald <address@hidden> wrote:
> 
>> 
>> On 2 Nov 2012, at 16:11, Tom Davie wrote:
>> 
>>> 
>>> On 2 Nov 2012, at 15:04, Richard Frith-Macdonald <address@hidden> wrote:
>>> 
>>>> 
>>>> On 2 Nov 2012, at 14:54, Tom Davie wrote:
>>>> 
>>>>> Hi all,
>>>>> 
>>>>> I'm slightly confused just right now.  It's been a while since I 
>>>>> installed libobjc2, and I'm having trouble installing the svn trunk 
>>>>> version.
>>>>> 
>>>>> It appears that libojbc2 is being installed into /usr/local/lib, rather 
>>>>> than /usr/GNUstep/Local/Library/Libraries as I'd expect.  This is causing 
>>>>> configuring GNUstep-base to die saying my obj-c compiler does not work 
>>>>> (as it can't find the runtime).
>>>>> 
>>>>> The only way I can see this happening is if Makefile is being used rather 
>>>>> than GNUmakefile.  In what circumstances will this happen?  How would I 
>>>>> go about restoring correct behaviour?
>>>> 
>>>> Using code from svn then all you shuld need to do is:
>>>> 
>>>> 1. install gnustep-make ... so you have a gnustep environment to install 
>>>> libobjc2 into.
>>>> 2. build/install libobjc2 using gnu-make ... which should use the 
>>>> GNUmakefile (perhaps you are an a system which uses another 'make' and 
>>>> call gnu-make 'gmake')
>>>> 
>>>> The GNUmakefile should install things into the right place.
>>> 
>>> Hiya Richard,
>>> 
>>> Trying to convince libobjc2 to live in the GNUstep hierarchy is not working 
>>> well.  make on my system is GNU make 3.81 and gnustep-make is installed, 
>>> unfortunately though, the library is still being stuck in /usr/local/lib.
>>> 
>>> Meanwhile David Chisnall tells me off-list that /usr/local/lib is in fact 
>>> the correct location for libobjc2 to live.  
>> 
>> Only if you are using the FHS layout...
>> The traditional location is, as you say, 
>> /usr/GNUstep/Local/Library/Libraries,
>> And the 'correct' location iis whatever you configured gnustep-make to use 
>> as the filesystem layout.
>> 
>> Anyway, you can type 'gnustep-config --variable=GNUSTEP_LOCAL_LIBRARIES' to 
>> find out where your gnustep-make is configured to put things.
>> And in the libobjc2 directory you should be able to type 'make messages=yes 
>> install' to produce a log of where it *actually* puts things, which ought to 
>> be something like:
>> 
>> $ make messages=yes install
>> echo Installing libraries...
>> Installing libraries...
>> install -d /usr/GNUstep/Local/Library/Libraries
>> install -m 444 `if [ "" = "yes" ] ; then echo -s ; fi` libobjc.so.4.6.0 
>> /usr/GNUstep/Local/Library/Libraries
>> install -m 444 `if [ "" = "yes" ] ; then echo -s ; fi` libobjcxx.so.4.6.0 
>> /usr/GNUstep/Local/Library/Libraries
>> install -m 444 `if [ "" = "yes" ] ; then echo -s ; fi` libobjc.a 
>> /usr/GNUstep/Local/Library/Libraries
>> 
>> Then you need to reconfigure/install gnustep-make (so it sees the new 
>> libobc2 is installed and decides to use it instead of the standard libobjc)
>> 
>> Then, things like base will build with libobjc2.
>> 
>> That being said, if you are like me you might find tyhat the current 
>> libobjc2 from svn doesn't work because of linker errors:
>> /usr/GNUstep/Local/Library/Libraries/libobjc.so: undefined reference to 
>> `__sync_sub_and_fetch_4'
>> /usr/GNUstep/Local/Library/Libraries/libobjc.so: undefined reference to 
>> `__sync_bool_compare_and_swap_4'
>> 
>> but that's another issue with libobjc2, not an installation issue.
> 
> Hi again Richard,
> 
> GNUstep config reports:
> $ gnustep-config --variable=GNUSTEP_LOCAL_LIBRARIES
> /usr/GNUstep/Local/Library/Libraries
> as expected.
> make messages=yes install though does not report any additional information.  
> In addition, adding echo lines to the GNUmakefile causes them to not be 
> printed, while adding echo lines to the Makefile causes them to be printed, 
> so it's definitely the case that the wrong Makefile is being used.  Hence the 
> location /usr/local/lib being used, as the Makefile does not use 
> gnustep-config to find out where to put things.

Then it sounds like you have a problem with your version of make.
Maybe you have a bad version of make in your PATH before the gnu make program?  
if so, you could find that and move/delete it.
You could also try 'make -f GNUmakefile', though if you are using a bad make 
program, that probably won't help.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]