On 2 Nov 2012, at 17:32, Richard Frith-Macdonald <[email protected]> wrote:
> > On 2 Nov 2012, at 17:20, Tom Davie wrote: > >> >> On 2 Nov 2012, at 17:10, Richard Frith-Macdonald >> <[email protected]> wrote: >> >>> >>> On 2 Nov 2012, at 16:11, Tom Davie wrote: >>> >>>> >>>> On 2 Nov 2012, at 15:04, Richard Frith-Macdonald >>>> <[email protected]> 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 _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
