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:41:27 +0000

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

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

You said:
> 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

That means that your make program is not even trying to use the GNUmakefile ... 
I don't see how installing anb older version of libobjc2 could effect whether 
your make program reads makefiles or not.




reply via email to

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