Firepear Informatics
GNUstep, works

Turns out that even if you don’t want to compile with gcc-objc, you need it installed because it’s where the base ObjC headers are. Once that was done, this worked:

[mdxi@fornax test]$ make
This is gnustep-make 2.4.0. Type 'make print-gnustep-make-help' for help.
Making all for tool Hello...
 Compiling file hello.m ...
 Linking tool Hello ...

Nice! But clang kept complaining of the same error as before. Turns out that the objc headers do not get put in the perfectly standard place that all system-wide includes go (/usr/include), which is the place clang looks for them. They are, instead, put in

/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/include/objc/

So once I symlinked that into /usr/include:

[mdxi@fornax test]$ make CC=clang
This is gnustep-make 2.4.0. Type 'make print-gnustep-make-help' for help.
Making all for tool Hello...
 Compiling file hello.m ...
 Linking tool Hello ...

[mdxi@fornax test]$ ls
GNUmakefile  hello.m  obj

[mdxi@fornax test]$ ls -lh obj/
total 24K
-rwxr-xr-x 1 mdxi users  17K Aug 16 23:58 Hello
drwxr-xr-x 2 mdxi users 4.0K Aug 16 23:58 Hello.obj

[mdxi@fornax test]$ ./obj/Hello
2010-08-16 22:58:57.350 Hello[619] hello, world

There we go. Now I just need to, you know, finish speccing Roundabout. And implement it. And learn ObjC and the Foundation framework. And reimplement Roundabout in it. And I’ll be good to go.

Awesome.

BTW, here is the program itself, which I forgot to paste into the last entry:

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  NSLog (@"hello, world");

  [pool drain];
  return 0;
}