gnustep-dev
[Top][All Lists]
Advanced

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

Re: Install location for libobjc2


From: Tom Davie
Subject: Re: Install location for libobjc2
Date: Fri, 2 Nov 2012 17:34:45 +0000

On 2 Nov 2012, at 17:32, Richard Frith-Macdonald <address@hidden> wrote:

> 
> 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.


Hi again Richard,

Well, oddly, this is all working fine if I install version 1.5.1 of libojbc2, 
so there must be something that has changed in the make system since then.

Thanks

Tom Davie


reply via email to

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