On 2 Nov 2012, at 17:34, Tom Davie wrote: > > 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.
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. _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
