Hi Jens, I've recently done a complete build of everything up to and including having a working foundation, with blocks support on Ubuntu. I didn't use the packages for most of this stuff as I found similar issues to you. Here's what I did to get to a working setup:
sudo apt-get install subversion sudo apt-get install g++ sudo apt-get install gobjc sudo apt-get install vim sudo apt-get install curl sudo apt-get install libffi-dev sudo apt-get install libxml2-dev sudo apt-get install libicu-dev sudo apt-get install libgnutls-dev svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang cd ../projects svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt cd ../../ mkdir build cd build ../llvm/configure --enable-optimized make sudo make install cd ../ curl http://www.openssl.org/source/openssl-1.0.1-beta3.tar.gz > openssl-1.0.1-beta3.tar.gz # Ignore the bit about openssl if you don't need a recent one, I needed more recent than ubuntu's package manager provides tar xvfz openssl-1.0.1-beta3.tar.gz cd openssl-1.0.1-beta3 ./config make sudo make install cd .. svn co http://svn.gna.org/svn/gnustep/tools/make/trunk/ gnustep-make svn co http://svn.gna.org/svn/gnustep/libs/base/trunk/ gnustep-base svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/1.6/ libobjc2 cd gnustep-make ./configure --prefix=/usr/GNUstep --enable-native-objc-exceptions --with-layout=gnustep --with-config-file=/usr/GNUstep/Local/Configuration/GNUstep.conf make sudo make install vim ~/.bashrc # Add . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh exit # And reopen shell ./configure --with-openssl-include=/usr/local/ssl/include --with-openssl-library=/usr/local/ssl/lib/ --enable-libffi --with-default-config=/usr/GNUstep/Local/Configuration/GNUstep.conf make sudo -E make install cd ../libobjc2 export CC=clang make sudo -E make install cd ../gnustep-make ./configure --prefix=/usr/GNUstep --enable-native-objc-exceptions --with-layout=gnustep --with-config-file=/usr/GNUstep/Local/Configuration/GNUstep.conf sudo make install cd ../gnustep-base make clean ./configure --with-openssl-include=/usr/local/ssl/include --with-openssl-library=/usr/local/ssl/lib/ --enable-libffi --with-default-config=/usr/GNUstep/Local/Configuration/GNUstep.conf make sudo -E make install You should now have a working GNUstep Foundation :) Hope that helps Bob On 25 Feb 2012, at 17:42, Jens Alfke wrote: > I’m trying to get started with GNUstep development but running into problems > getting the LLVM compiler and libobjc2 set up correctly. > > My story: I’ve got some Foundation-level Cocoa code (i.e. no UI) that runs on > OS X 10.7 and iOS 5, and I’d like to get it running in GNUstep on Linux. > Syntactically, this code uses properties and blocks pretty heavily (but not > GCD). > > So I’ve installed Ubuntu 11.10 x86 inside VirtualBox on my MacBook Pro, and > installed the following packages via apt-get: > * gnustep > * gnustep-devel > * llvm > * clang > * libobjc2 > > I can build & run a trivial app that calls NSLog (the example from the > makefile tutorial.) And I’ve set up a makefile for my code, but when I try to > build it I run into compiler problems. > > If I just run “make”, GCC [4.6.1] barfs on the first use of the “^” > character. So apparently it doesn’t have the Apple block extensions: >> Source/Header.h:19:11: error: expected identifier or ‘(’ before ‘^’ token > > OK, according to instructions on the gnustep site, I can enter “make CC=clang > LD=gcc” to build with Clang. But when I do this, Clang [2.9] can’t find > objc.h: > >> /usr/include/GNUstep/GNUstepBase/preface.h:112:11: fatal error: >> 'objc/objc.h' file not found >> #include <objc/objc.h> > > The only copy of objc.h on my system is > /usr/lib/gcc/i686-linux-gnu/4.6/include/objc/objc.h. > So apparently I either need to > (a) configure Clang to search that directory (which I’m reluctant to do > because it may have GCC-specific stuff in it), or > (b) copy the objc/ header directory into Clang’s header search path (where?), > or > (c) reconfigure libobjc2 to understand that I have Clang installed and put > its headers in the right place > > I’m not sure which of these is appropriate. Actually I’m confused because it > sounds from what I’ve read (i.e. the libobjc2 1.6 announcement) as though > libobjc2 has Clang/LLVM specific functionality, so I expected that the two > would play nicely together if I installed both, without need for further > customization. But I’m fairly clueless about Linux and apt-get so I may just > have done something wrong… > > Thanks! > > —Jens > > > _______________________________________________ > Discuss-gnustep mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnustep _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
