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:10:20 +0000

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.





reply via email to

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